Professional Version Basis of AI Backprop Hypertext Documentation

Copyright (c) 1990-97 by Donald R. Tveter

Making the Programs

When you unzip these files everything lands in the current directory. Some files should to be moved around to reasonable locations. After you make bp I recommend moving it to /usr/local/bin if you are the only user of the system. You probably will also want to move the source code to an out of the way place. For this professional version place the files in places where unauthorized users cannot get to them.

The C++ program assumes the bp.tcl file will be in /usr/local/bin, if you need to place it somewhere else look for "bp.tcl" near the end of the file bp.cpp and change the path to the file.

There is a help function that uses lynx to view the hypertext files included. If you want to use a browser other than lynx you need to find the string "lynx" in the bp.html file and substitute the browser of your choice but note that lynx is extremely fast and is adequate to the task.

The default location to put the hypertext documentation is /usr/local/doc/bp, if you don't want it there look for the variable htmlpath in the file bp.tcl and change its value to the location of your choice. You can move all the html files to /usr/local/doc/bp with:

mv *.html /usr/local/doc/bp

The bp.tcl file gets its geometry parameters from the bp.cpp file, the default is 800x600+0+0, if you want to change this go to the function init in the file bp.cpp and change the values of windwidth, windheight, upperleftx, upperlefty. In the same place you will find the other GUI variables: textcolor, backgroundcolor, maxlines and currentfont which you may want to set to different values.

The bp.tcl program uses the VGA font for most of the entry boxes however some systems do not have this font so you may need to change the entryboxfont variable.

This code has been written to use either 32-bit floating point (float) or 64-bit floating point (double) arithmetic. On System V machines the standard seems to be that all floating point arithmetic is done with double precision arithmetic so double arithmetic is faster than float and therefore this is the default. Other versions of C (e.g. ANSI C) will do single precision real arithmetic. To get 32-bit floating point set the compiler flag FLOAT in the makefile. The function, exp, defined in real.c is double since System V specifies it as double. If your C uses float, change this definition as well.

For the gcc compiler and LINUX you will probably want to use this definition for CFLAGS:

CFLAGS= -s -m486 -O3 -DFLOAT -DLINUX
If you have a BSD or SOLARIS system substitute -DBSD or -DSOLARIS. (The SOLARIS entry should be enough to do the trick since someone with a SOLARIS system gave it to me but the BSD specifics are incomplete, while MCS is a FreeBSD system I haven't figured out the arcane details yet.) If you have something else you are on your own at the moment but probably LINUX will work. If you work out a definition for your system please let me know so I can include it here.

Systems without gcc probably use cc so you need to edit the makefile.

The particular libraries and their locations vary from system type to system type and even from machine to machine running the same OS. A couple of definitions are present in the makefile, comment out the ones you don't need and uncomment the one you do need. If you find something odd about your system please let me know so I can include it here.

In an old version there was a problem found with the free student version where it crashed on a Sun when the program hits a call to free in the file bp.cpp. This can be solved by removing the two calls to free and the amount of space you waste is minimal.

If you do get bugs on an odd system and you can let me telnet in to your system, preferably on a separate login, not your personal login I will try and fix the problem for you.