
#ifndef MNEWT_H
# define MNEWT_H

# ifndef STD_H
#  include <std.h>
# endif
# ifndef MATRIX_H
#  include <matrix.h>
# endif

typedef matrix (*mnewt_function)(C matrix&, C double *, int);

matrix mnewt(mnewt_function fun, C double *c, int nc,
				C matrix& x0, C abstract_matrix& del, C abstract_matrix& scale,
				matrix (*jacobian)(C matrix&, C double *, int));
matrix mnewtL(mnewt_function fun, C double *c, int nc,
				C matrix& x0, C abstract_matrix& del, C abstract_matrix& scale,
				matrix (*jcb)(C matrix&, C double *, int));

IMPORT Objection mnewt_fail;
IMPORT BOOL mnewt_trace;
IMPORT double mnewt_smallest;
IMPORT double mnewt_diagbump;
#endif
