#ifndef _NM_H_
#define _NM_H_

#define     NM_MAX_ITERATIONS	1000
#define     NM_COF_EXPAND		2.0
#define     NM_COF_CONTRACT		0.5
#define     NM_COF_REFLECT		1.0

typedef struct _VECT2D {
    double x;
    double y;
} VECT2D;

typedef struct _VECT3D {
    double x;
    double y;
    double z;
} VECT3D;


double nm(
	double (*func)(double x, double y),
	double xi,
	double yi,
	double threshold,
	void (*callback)(VECT3D* v));

#endif
