public class amoeba { public delegate double function (vector x); public int d,hi,lo; public vector[] p; vector p_ce,zero; public vector values; public function f; public double size; void update() { hi=0; for(int i=1;ivalues[hi]) hi=i; lo=0; for(int i=1;isize) size=n;} } public void downhill(double simplex_size_goal) { while(size>simplex_size_goal) { vector p_re = p_ce+(p_ce-p[hi]); // try reflection double f_re = f(p_re); if(f_re