# EXAMPLE 1. # koho.ode # implements kohonen algorithm with help from an external function export {z,ntot} {ihot} par ntot=100,k=1 z=2*ran(1)-1 h(u)=(.5+.5*cos(2*pi*u*k/ntot))^sig par sig=20,eps=.1 ihot=0 w[0..99]'=w[j]+eps*(z-w[j])*h(ihot-[j]) ip'=ihot aux zz=z @ meth=discrete,total=2000 done 1. save the C file as getmax.c 2. Compile it as below 3. xpp koho.ode 4. File Edit Load DLL getmax.so -- function is called fun --------------------- cut below line and save as getmax.c --------------- /* external function gcc -shared -o getmax.so -fpic getmax.c */ /* getmax.c finds the closest in a list */ #include fun(double *in,double *out,int nin,int nout,double *var,double *con) { double z=in[0]; int nmax=(int)in[1]; int i,ihot=0; double d=1000,dnew; for(i=1;i<=nmax;i++){ dnew=fabs(var[i]-z); if(dnew