/*------------------------------------------------------------------------*/ /* Author: R. Timothy Edwards Date: March 29, 1991 -- April 12, 1991 (Version 0.0) Revisions: Version 1.0 completed April 25, 1991 (I/O graphs added) Version 2.0 completed (Makefile version) */ /*------------------------------------------------------------------------*/ /* Global variables and definitions: Networks */ /*------------------------------------------------------------------------*/ #define max(e,f) (((e) > (f)) ? (e) : (f)) #define min(g,h) (((g) < (h)) ? (g) : (h)) #define MAXPATTERNS 150 /* Maximum number of presented patterns */ #define MAXLAYERS 5 /* Maximum number of network layers allowed */ #define MAXNODES 13 /* Maximum number of nodes per layer */ #define MAXTAPS 45 /* Maximum number of taps per node */ #define MAXACCUM 60 /* Maximum number of virtual taps per node */ extern unsigned long RANDVAL; /* A random number seed */ extern struct NetStruct { int layers; int nodes[MAXLAYERS]; int taps[MAXLAYERS]; float weight[MAXLAYERS-1][MAXTAPS][MAXNODES][MAXNODES]; float state[MAXLAYERS][MAXACCUM][MAXNODES]; float threshold[MAXLAYERS-1][MAXNODES]; } Network; /* A time-delay neural network */ extern float traininput[MAXPATTERNS][MAXNODES]; extern float sampleinput[MAXPATTERNS][MAXNODES]; extern float traindesired[MAXPATTERNS][MAXNODES]; extern float outputhistory[MAXPATTERNS][MAXNODES]; extern int pattern, no_patterns, no_samples; extern Boolean Interrupt, Step, LRunTrain, LRunSample, Recurrent; extern Boolean trainsamp; /* TRUE for sample run, FALSE during training */ extern Boolean Digital; /* Output restricted to binary values */ extern Boolean LLastPat, LSelf; extern float weightnorm, RanMag; extern float eta, epsilon, eps_eff; extern int starteps, endeps; extern int update, count;