www.pudn.com > BPËã·¨Ô´Âë.zip > makereal
# # This makefile is designed to make only the bp program AND TO KEEP # all the .obj files, so you can apply changes to one file without # recompiling all the others. # # Below, where I say 32-bit floating point or 64-bit floating point, # note that all the programs use some floating point instructions even # the integer versions, bp and sbp. In standard UNIX C all floating # point arithmetic is done as double so using double values actually is # faster than using float values (because all the conversions take # time). To use float rather than double define FLOAT like so: -DFLOAT # # To get the compiler to use 32-bit DOS settings include: -DDOS32 # To get the compiler to use 16-bit DOS settings include: -DDOS16 # # If you want bp to use the exact derivative when D != 1 when computing # weight changes use: -DEXACTDERIV. There is really no reason to do # this unless you are a purist. The originators of the method used a # value for eta that is divided by D and this cancels the D you get by # doing the exact derivative so you are in good company if you also skip # it. Plus you also save the time required for a floating pointing # multiply. # # Below are the settings I've been using for Zortech C 3.1. The -f flag # in the Zortech CFLAGS forces hardware floating point instructions to # be generated. This flag also has the compiler generate code compatible # with the IEEE standard 754 where checks are make that comparisons # involving NaNs are handled correctly. To avoid these checks you can # use -ff and the code will be around 1.6% faster on a 486/33. Zortech # 3.0 does not have the -ff option. The -o is for optimize, -m is used # to give the memory model, -4 for a 486, -3 for a 386, -2 for a 286. # # use the following line for DOS/ZORTECH (486) CFLAGS= -mx -4 -f -DFLOAT -DDOS32 # use the following line for DOS/ZORTECH (386) #CFLAGS= -mx -3 -f -DFLOAT -DDOS32 # use the following line for DOS/ZORTECH (286) #CFLAGS= -mz -2 -f -DFLOAT -DDOS16 # use the following line for DOS/ZORTECH (8088) large memory model #CFLAGS= -ml -f -DFLOAT -DDOS16 bp: bp.obj io.obj misc.obj real.obj makereal rbp.h ztc $(CFLAGS) bp.obj io.obj misc.obj real.obj -obp.exe bp.obj: bp.c rbp.h makereal ztc $(CFLAGS) bp.c -c io.obj: io.c rbp.h makereal ztc $(CFLAGS) io.c -c -o misc.obj: misc.c rbp.h makereal ztc $(CFLAGS) misc.c -c -o real.obj: real.c rbp.h makereal ztc $(CFLAGS) real.c -c -o dummy: forward.obj dummy.obj forward.h makereal ztc $(CFLAGS) forward.obj dummy.obj -odummy.exe forward.obj: forward.c forward.h makereal ztc $(CFLAGS) forward.c -c -o dummy.obj: forward.h dummy.c makereal ztc $(CFLAGS) dummy.c -c -o rdummy: forward.obj rdummy.obj forward.h makereal ztc $(CFLAGS) forward.obj rdummy.obj -ordummy.exe rdummy.obj: forward.h rdummy.c makereal ztc $(CFLAGS) rdummy.c -c -o predict: predict.c ztc $(CFLAGS) predict.c -opredict.exe scale: scale.c ztc $(CFLAGS) scale.c -oscale.exe