Generic ComputeEM with Ramsay (1975) acceleration
[openmx:openmx.git] / src / types.h
1 /*
2  *  Copyright 2013 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 _OPENMX_TYPES_H_
18 #define _OPENMX_TYPES_H_
19
20 // Put forward type declarations here
21
22 #include <vector>
23
24 enum omxFFCompute {
25         FF_COMPUTE_PARAMFLAVOR  = 1<<0,
26         FF_COMPUTE_PREOPTIMIZE  = 1<<1,
27         FF_COMPUTE_MAXABSCHANGE = 1<<2,
28         FF_COMPUTE_FIT          = 1<<3,
29         FF_COMPUTE_ESTIMATE     = 1<<4,
30         FF_COMPUTE_GRADIENT     = 1<<5,
31         FF_COMPUTE_HESSIAN      = 1<<6,
32         FF_COMPUTE_IHESSIAN     = 1<<7,
33         FF_COMPUTE_HGPROD       = 1<<8,
34         FF_COMPUTE_INFO         = 1<<9   // Fisher information
35 };
36
37 typedef struct omxMatrix omxMatrix;
38 typedef struct omxState omxState;
39 class FitContext;
40 struct FreeVarGroup;
41 typedef struct omxFitFunction omxFitFunction;
42 typedef struct omxExpectation omxExpectation;
43 typedef struct omxDefinitionVar omxDefinitionVar;
44 typedef struct omxRFitFunction omxRFitFunction;
45 typedef struct SEXPREC *SEXP;
46 typedef std::vector< std::pair<SEXP, SEXP> > MxRList;
47 class omxCompute;
48 struct Matrix;
49 struct Param_Obj;
50
51 #endif