For state space expectation, reset initial state (x) and error cov (P) whenever start...
[openmx:openmx.git] / src / omxStateSpaceExpectation.h
1 /*\r
2  *  Copyright 2007-2012 The OpenMx Project\r
3  *\r
4  *  Licensed under the Apache License, Version 2.0 (the "License");\r
5  *  you may not use this file except in compliance with the License.\r
6  *  You may obtain a copy of the License at\r
7  *\r
8  *       http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  *   Unless required by applicable law or agreed to in writing, software\r
11  *   distributed under the License is distributed on an "AS IS" BASIS,\r
12  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  *  See the License for the specific language governing permissions and\r
14  *  limitations under the License.\r
15  *\r
16  */\r
17  \r
18 #ifndef _OMXSTATESPACEEXPECTATION_H_\r
19 #define _OMXSTATESPACEEXPECTATION_H_\r
20 \r
21 typedef struct {\r
22         omxMatrix *cov, *means;\r
23         omxMatrix *A, *B, *C, *D, *Q, *R; // State Space model Matrices\r
24         omxMatrix *r, *s, *u, *x, *y, *z; // Data and place holder vectors\r
25         omxMatrix *K, *P, *S, *Y, *Z; // Behind the scenes state space matrices (P, S, and K) and place holder matrices\r
26         omxMatrix *x0, *P0; // Placeholders for initial state and initial error cov\r
27         \r
28 } omxStateSpaceExpectation;\r
29 \r
30 \r
31 void omxKalmanPredict(omxStateSpaceExpectation* ose);\r
32 void omxKalmanUpdate(omxStateSpaceExpectation* ose);\r
33 \r
34 void omxInitStateSpaceExpectation(omxExpectation* ox, SEXP rObj);\r
35 \r
36 omxMatrix* omxGetStateSpaceExpectationComponent(omxExpectation* ox, omxFitFunction* off, const char* component);\r
37 \r
38 void omxSetStateSpaceExpectationComponent(omxExpectation* ox, omxFitFunction* off, const char* component, omxMatrix* om);\r
39 \r
40 \r
41 #endif /* _OMXSTATESPAACEEXPECTATION_H_ */\r