/* LINEFIT.C */
/*-
test function for nonlinear least squares minimizaton by the
Nelder-Mead simplex algorithm.

Powell's quartic function - see Nelder-Mead paper.
Example of a dataless function.

J.A. Rupley, Tucson, Arizona
rupley!local@cs.arizona.edu
*/

#define STANDALONE

#include "simpdefs.h"		/* externals are read from <simpdefs> */

/* DEFINES SPECIAL TO FITTING FUNCTION */

#define X1	0		/* defines for elements of struct pstruct */
#define X2	1		/* (mnemonic) */
#define X3	2
#define X4	3

int
func(pnam)
	struct pstruct *pnam;
{
	pnam->val =
		pow((pnam->parm[X1] + 10 * pnam->parm[X2]), 2) +
		5 * pow((pnam->parm[X3] - pnam->parm[X4]), 2) +
		pow((pnam->parm[X2] - 2 * pnam->parm[X3]), 4) +
		10 * pow((pnam->parm[X1] - pnam->parm[X4]), 4);
	return (OK);
}				/* END OF FUNC        			 */

/*-
FDATPRINT
	PRINT DATA AND COMPARE WITH CALCULATED VALUES
	CODED ACCORDING TO MODEL AND DATA
*/

void
fdatprint(fptr)
	FILE           *fptr;
{
	return;			/* noop place holder */
}				/* END OF FDATPRINT			 */
