#ifndef H_NELDER_MEAD_H #define H_NELDER_MEAD_H struct nelder_mead { double ( *f ) ( double *x, int n, void *params ); int n; double **s; double *x; double h; double tol; int maxevals; double minval; void *params; }; int done ( double **s, int n, double *y, int ia, int iz, double err2 ); void get_centroid ( double **s, int n, int iz, double *C ); int nelder_mead ( struct nelder_mead *nm ); void rank_vertices ( double *y, int m, int *ia, int *iy, int *iz ); void replace_row ( double **s, int i, double **r ); void shrink ( double **s, int n, int ia ); void transform ( double *P, double *Q, int n, double beta, double *R ); #endif