Gradients for the latent distribution
[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_FIT          = 1<<0,
26         FF_COMPUTE_PREOPTIMIZE  = 1<<1,
27         FF_COMPUTE_ESTIMATE     = 1<<2,
28         FF_COMPUTE_GRADIENT     = 1<<3,
29         FF_COMPUTE_HESSIAN      = 1<<4,
30         FF_COMPUTE_POSTOPTIMIZE = 1<<5
31 };
32
33 typedef struct omxMatrix omxMatrix;
34 typedef struct omxState omxState;
35 class FitContext;
36 struct FreeVarGroup;
37 typedef struct omxFitFunction omxFitFunction;
38 typedef struct omxExpectation omxExpectation;
39 typedef struct omxDefinitionVar omxDefinitionVar;
40 typedef struct omxRFitFunction omxRFitFunction;
41 typedef std::vector< std::pair<SEXP, SEXP> > MxRList;
42 class omxCompute;
43
44 #endif