home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume28 / backprop / part03 / rbp.h < prev   
C/C++ Source or Header  |  1992-02-23  |  3KB  |  91 lines

  1. /* ***************************************************** */
  2. /* file rbp.h:  contains definitions for the rbp program */
  3. /*              that uses 64-bit floating point weights  */
  4. /*                                                       */
  5. /* Copyright (c) 1991 by Donald R. Tveter                */
  6. /*                                                       */
  7. /* *******************************************************/
  8.  
  9. #define maxformat 21
  10. #define buffsize 257
  11.  
  12. #ifdef FLOAT
  13. #define WTTYPE float
  14. #define WTSIZE 4
  15. #define REAL float
  16. #else
  17. #define WTTYPE double
  18. #define WTSIZE 8
  19. #define REAL double
  20. #endif
  21.  
  22. #ifdef DOS16
  23. #define INT32 long
  24. #define MAXINT 32767
  25. #else
  26. #define INT32 int
  27. #define MAXINT 2147483647
  28. #endif
  29.  
  30. #define HCODE -32768          /* code number for a layer h (2) unit */
  31. #define ICODE -32767          /* code number for a layer i (3) unit */
  32. #define JCODE -32766          /* code number for a layer j (4) unit */
  33. #define KCODE -32765          /* code number for a layer k (5) unit */
  34. #define GT 0                  /* a symbol meaning > */
  35. #define GE 1                  /* a symbol meaning >= */
  36. #define OUTSTRSIZE 257        /* max length of output string */
  37. #define scale(x) x            /* scale not used in real version */
  38. #define unscale(x) x          /* unscale not used in real version */
  39. #define unscaleint(x) x       /* unscaleint not used in real version */
  40.  
  41. typedef struct seednode
  42.    {
  43.      unsigned val;            /* a seed value */
  44.      struct seednode *next;   /* pointer to next node */
  45.    } SEEDNODE;
  46. typedef struct patlist
  47.    {
  48.      int bypass;              /* number of times to bypass pattern */
  49.      WTTYPE *pats;            /* the list of patterns */
  50.      struct patlist *next;    /* pointer to the next pattern */
  51.    } PATLIST;
  52. typedef struct unit
  53.    {
  54.      short layernumber;       /* layer number of the unit */
  55.      short unitnumber;        /* position within layer */
  56.      REAL error;              /* to sum error factors */
  57.      WTTYPE oj;               /* state of activation of node */
  58.      WTTYPE tj;               /* output target for the node */
  59.      struct unit *wtlist;     /* to list of weights to prev layer */
  60.      struct unit *next;       /* link to next unit in this layer */
  61.    } UNIT;
  62.  
  63. typedef struct wtnode
  64.    {
  65. #ifdef SYMMETRIC
  66.      WTTYPE *weight;          /* weight from here to backunit */
  67.      WTTYPE *olddw;           /* delta wji from previous iteration */
  68.      WTTYPE *total;           /* total of changes for batch updates */
  69.      WTTYPE *eta;             /* the eta of the DBD method */
  70.      WTTYPE *slope;           /* previous slope */
  71. #else
  72.      WTTYPE weight;           /* weight from here to backunit */
  73.      WTTYPE olddw;            /* delta wji from previous iterataion */
  74.      WTTYPE total;            /* total of changes for batch updates */
  75.      WTTYPE eta;              /* the eta of the DBD method */
  76.      WTTYPE slope;            /* previous slope */
  77. #endif
  78.      struct wtnode *next;     /* link to next node */
  79.      UNIT *backunit;          /* ptr to unit the weight comes from */
  80.    } WTNODE;
  81.  
  82. typedef struct layer
  83.    {
  84.      int unitcount;           /* number of units in this layer */
  85.      struct layer *backlayer; /* pointer to previous layer */
  86.      struct layer *next;      /* pointer to next layer */
  87.      UNIT *units;             /* start of list of units in this layer */
  88.      PATLIST *patstart;       /* to the list of patterns */
  89.      PATLIST *currentpat;     /* the current pattern */
  90.    } LAYER;
  91.