/* * som.h */ #ifndef __SOM_H #define __SOM_H typedef struct { int n1; /* number of input units.入力信号の次元 */ int n2; /* number of units of SOM. 素子の数 */ int dim; /* SOM の配列(神経場)の次元 */ double mu; double sigma; double *x; /* input vector */ int winner; double **m; /* m[i][j]: refference vector of i-th units.j=0,1,2,...,n1-1*/ double **dm; // バッチ学習用 double **r; /* r[i][k] i番目の素子の神経場上の位置.k=0,..,dim-1 */ } SOM; #define INPUT_SIZE 1000 #define RAND_SEED 20150518 SOM* som_new(int n1, int n2, int dim); void free_som(SOM* this); void som_reset_dm(SOM* this, int n1, int n2); void som_init_m(SOM* this, int n1, int n2, double mu, double sigma, double **digit); #endif /* __SOM_H */