Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

kernel.h File Reference


Detailed Description

Public headers for kernel.c.

Header
/u/nn/cvsroot/lissom/src/kernel.h,v 1.45 2001/10/06 04:55:24 jbednar Exp

Definition in file kernel.h.

#include <vector>
#include "globals.h"
#include "tristate.h"
#include "matrix.h"

Include dependency graph for kernel.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Compounds

class  BasicLissomMap
 Deprecated abstract base class offering old-style interface to routines in kernel.c, for use only by other deprecated classes. More...

struct  Neuron
struct  Wts
 The weights of a single neuron. More...


Defines

#define PARTIAL_LAT_INDEX(ui, uj, k, radius, width)   (((k)-(ui)+(radius))*(width)-(uj)+(radius))
 Wrappers to hide lateral connection index calculations for a given unit (ui,uj):.

#define FULL_LAT_INDEX(partial_index, l)   ((partial_index)+(l))
#define LAT_INDEX(ui, uj, k, l, radius, width)   FULL_LAT_INDEX(PARTIAL_LAT_INDEX((ui),(uj),(k),(radius),(width)),(l))
#define MAPROW(localrow)   (ARBITRARY_MAPROW((localrow),MyPE))
 Returns the corresponding row in the map for a given local row on the given PE.

#define ARBITRARY_MAPROW(localrow, pe)   (pe+(localrow)*NPEs)
#define LOCALROW(maprow)   ((maprow)/NPEs)
 Returns the corresponding locally-stored wts row for a given row in the global map.

#define PEFORROW(maprow)   ((maprow)%NPEs)
 Returns the number of the PE which holds the data for the given map row.

#define ROWISLOCAL(maprow)   (ARBITRARY_ROWISLOCAL((maprow),MyPE))
 Returns T if the given map row is stored on the given PE.

#define ARBITRARY_ROWISLOCAL(maprow, pe)   ((pe)==PEFORROW(maprow))
#define PARTIAL_INP_INDEX(eye, x)   ((eye)*(RN*RN)+(x)*(RN))
 Wrappers to hide input vector index calculations to a given location (x,y) on a given eye:.

#define FULL_INP_INDEX(partial_inp_index, y)   ((partial_inp_index)+(y))
#define INP_INDEX(eye, x, y)   FULL_INP_INDEX(PARTIAL_INP_INDEX((eye),(x)),(y))
#define INP_INDEX_OTHER_EYE(eye, first_inp_index)   ((first_inp_index) + ((eye)*RN*RN))


Define Documentation

#define PARTIAL_INP_INDEX eye,
     ((eye)*(RN*RN)+(x)*(RN))
 

Wrappers to hide input vector index calculations to a given location (x,y) on a given eye:.

index(eye,x,y) = eye*RN*RN + x*RN + y

The first term should be optimized out by any decent compiler if eye=0, and it should be precomputed by the compiler if eye=1. The second term can be optimized out of loop calculations by precomputing the partial index below, and then adding in the last term inside the loop using FULL_INP_INDEX.

Given the index `idx' for a location in the first eye, the index for the same location in another eye may be obtained using INP_INDEX_OTHER_EYE(idx,eye).

Definition at line 88 of file kernel.h.

#define PARTIAL_LAT_INDEX ui,
uj,
k,
radius,
width       (((k)-(ui)+(radius))*(width)-(uj)+(radius))
 

Wrappers to hide lateral connection index calculations for a given unit (ui,uj):.

    index(k,l) = (k-(ui-radius))*array_width + l - (uj-radius)
  

The first term and last terms can be optimized out of loop calculations by precomputing the partial index below, and then adding in the middle term inside the loop using FULL_LAT_INDEX.

Definition at line 32 of file kernel.h.

Referenced by LissomMap::lat_resp(), LissomMap::modify_latwt_loop(), and LissomMap::reduce_lateral_radius().


Generated on Mon Jan 20 02:36:14 2003 for RF-LISSOM by doxygen1.3-rc2