qub_dfpmin.h.html mathcode2html   
 Source file:   qub_dfpmin.h
 Converted:   Tue Apr 17 2012 at 11:03:38
 This documentation file will not reflect any later changes in the source file.

$$\phantom{******** If you see this on the webpage then the browser could not locate *********}$$
$$\phantom{******** jsMath/easy/load.js or the variable root is set wrong in this file *********}$$
$$\newcommand{\vector}[1]{\left[\begin{array}{c} #1 \end{array}\right]}$$ $$\newenvironment{matrix}{\left[\begin{array}{cccccccccc}} {\end{array}\right]}$$ $$\newcommand{\A}{{\cal A}}$$ $$\newcommand{\W}{{\cal W}}$$

/* Copyright 1998-2011 Research Foundation State University of New York   */

/* This file is part of QUB Express.                                      */

/* QUB Express is free software; you can redistribute it and/or modify    */
/* it under the terms of the GNU General Public License as published by   */
/* the Free Software Foundation, either version 3 of the License, or      */
/* (at your option) any later version.                                    */

/* QUB Express is distributed in the hope that it will be useful,         */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of         */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          */
/* GNU General Public License for more details.                           */

/* You should have received a copy of the GNU General Public License,     */
/* named LICENSE.txt, in the QUB Express program directory.  If not, see  */
/* <http://www.gnu.org/licenses/>.                                        */

#ifndef QUB_DFMPIN_H
#define QUB_DFPMIN_H

#ifdef __cplusplus
extern "C" {
#endif


// return 0 for success
typedef int (*dfp_func)(void*, double*, double*, double*, int*, int*, int);
//                          caller, params,  grads,   ll,      nf,   ndf,  (bool) computeGrads
typedef int (*dfp_check)(void*, int, int, int, double, double*, double*);
//                          caller, iters, nf, ndf,   ll     params,  grads



QUBFAST_API double qub_dfpmin( void *call_obj, int npar, double *initPar, double *hessianOut,
			       dfp_func func, dfp_check check,
			       int maxIter, double convLL, double convGrad, double stepMax,
			       int *errOut );
// errOut:  0   success
//          -1  func returned error
//          -2  check returned error
//          -3  exceeded max iter


#ifdef __cplusplus
}
#endif

#endif