home *** CD-ROM | disk | FTP | other *** search
- /*
- * $Id: NetFeedForward.c 1.6 1995/03/21 10:52:01 projects Exp $
- *
- * Function NetFeedForward
- * Programmer Nicholas d'Alterio
- * Gideon Denby
- * Date 20/02/95
- *
- * Synopsis: This function feeds forwards an input vectors through n layers
- * containing n nodes. On each layer before the output layer
- * there is one bias node.
- *
- * NOTE Assumes fully connected net.
- *
- * $Log: NetFeedForward.c $
- * Revision 1.6 1995/03/21 10:52:01 projects
- * Made code more readable
- *
- * Revision 1.5 1995/03/20 23:38:00 daltern
- * Added gain factor
- *
- * Revision 1.4 1995/03/20 22:37:38 daltern
- * Updated to correct transfer function
- *
- * Revision 1.3 1995/03/14 23:21:12 daltern
- * Commented and cleaned up
- *
- *
- */
-
- #include "Neural.h"
-
- void NetFeedForward( float ***Weight, float **Node, NET netI, float gain )
-
- {
-
-
- register int layer, s_node, e_node;
-
- int nodes_in_layer;
- int nodes_in_prev_layer;
-
- float val;
-
- /*
- * Loop over each layer above inputs.
- */
-
- for ( layer = 1;layer < netI.NumLayers; layer++ ) {
-
- nodes_in_layer = netI.LayerSize[layer]+1;
- nodes_in_prev_layer = netI.LayerSize[layer-1]+1;
-
- /*
- * For each element in layer sum inputs * weight coming to it.
- */
-
- for ( e_node=1; e_node < nodes_in_layer; e_node++ ) {
-
- /*
- * Loop for each node on previous layer including the bias node.
- */
-
- val = 0.0;
- for ( s_node = 0; s_node < nodes_in_prev_layer; s_node++ ) {
-
- val+=Node[layer-1][s_node]*Weight[layer-1][s_node][e_node];
-
- } /* end for s_node */
-
- /*
- * Use transfer function to calculate the output of node based on
- * sum of inputs * weights.
- */
-
- Node[layer][e_node] = NetTransFunc( val, gain );
-
- } /* end for e_node */
-
- } /* end for layer */
-
- return;
-
- } /* end function NetFeedForward */
-
-