/* Self-Organizing Map (2D): 2006.5.14 A.Date Last modified at 1 May 2009 % gcc sample090501gp5.c -lm */ #include #include #include #define N_XUNITS 10 #define N_YUNITS 10 #define DIM_INPUT 2 /* #dimensions of input signal*/ double X_RANGE=1.0; double Y_RANGE=1.0; int SLEEP=100000; double ALPHA=0.2; double SIGMA=0.8; int N_LEARNING = 200; int N_SUB_LEARNING = 100; double S[2]; /* input */ double RV[N_XUNITS][N_YUNITS][DIM_INPUT]; int T[N_XUNITS][N_YUNITS]; FILE *gp; void som2d(); void init_reference(); void write_data(); typedef struct _Position Position; struct _Position { int x; int y; }; int main (int argc, char *argv[] ) { int i,j; double x,y; long seed = 1234567; /* set your favorite number */ for (i=1; i