CSOLNP
[openmx:openmx.git] / src / omxCsolnp.h
1 /*
2  *  Copyright 2007-2012 The OpenMx Project
3  *
4  *  Licensed under the Apache License, Version 2.0 (the "License");
5  *  you may not use this file except in compliance with the License.
6  *  You may obtain a copy of the License at
7  *
8  *       http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *   Unless required by applicable law or agreed to in writing, software
11  *   distributed under the License is distributed on an "AS IS" BASIS,
12  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License.
15  */
16
17 #ifndef _OMX_CSOLNP_SPECIFIC_H
18 #define _OMX_CSOLNP_SPECIFIC_H
19
20 #include "omxMatrix.h"
21 #include "matrix.h"
22
23 struct Matrix fillMatrix(int cols, int rows, double* array);
24
25 void omxInvokeCSOLNP(omxMatrix *fitMatrix, FitContext *fc, int *inform_out, int *iter_out, bool useGradient, FreeVarGroup *freeVarGroup, int verbose);
26
27 //void omxNPSOLConfidenceIntervals(double *f, double *x, double *g, double *R, int ciMaxIterations);
28
29 Param_Obj solnp( Matrix solPars, double (*solFun)( Matrix),  Matrix solEqB, Matrix (*solEqBFun)(Matrix), Matrix (*myineqFun)( Matrix) , Matrix solLB,  Matrix solUB,  Matrix solIneqUB,  Matrix solIneqLB,  Matrix solctrl, bool debugToggle);
30
31 double csolnpObjectiveFunction(Matrix myPars);
32 struct Matrix csolnpEqualityFunction(Matrix myEqBFun_arg);
33 //struct Matrix csolnpEqB(Matrix* EqB_arg[]);
34 //struct Matrix csolnpEqB();
35 //struct Matrix csolnpIneqUB(Matrix* IneqUB_arg[]);
36 //struct Matrix csolnpIneqUB();
37 //struct Matrix csolnpIneqLB(Matrix* IneqLB_arg[]);
38 //struct Matrix csolnpIneqLB();
39 struct Matrix csolnpIneqFun(Matrix myPars);
40
41 #endif // #define _OMX_CSOLNP_SPECIFIC_H