Updated copyright to 2013 for R/ demo/ models/passing and src/ folders, and also...
[openmx:openmx.git] / src / omxLISRELExpectation.h
1 /*
2  *  Copyright 2007-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  
18 #ifndef _OMXLISRELEXPECTATION_H_
19 #define _OMXLISRELEXPECTATION_H_
20
21 typedef struct {
22
23         omxMatrix *cov, *means; // expected covariance and means
24         omxMatrix *LX, *LY, *BE, *GA, *PH, *PS, *TD, *TE, *TH; // LISREL model Matrices
25         omxMatrix *TX, *TY, *KA, *AL; //LISREL Means Matrices
26         omxMatrix *A, *B, *C, *D, *E, *F, *G, *H, *I, *J, *K, *L; // Place holder matrices used in computations.  Note: L is analogous to Ax in RAM and is used in I-BE inverse
27         omxMatrix *TOP, *BOT; // Place holder matrices for building covariance matrix from blocks
28         omxMatrix *MUX, *MUY; //Place holder matrices for building means from blocks
29         //omxMatrix *C, *P, *V, *Mns; // Other Matrices, not sure what these are for.
30
31         int numIters; // used by omxFastRAM/LISRELInverse
32         double logDetObserved;
33         double n;
34         //double* work; // used by omxFastRAM/LISRELInverse
35         //int lwork; // used by omxFastRAM/LISRELInverse
36
37         int usePPML;
38         omxData *ppmlData;
39         omxMatrix *ppmlCov, *ppmlMeans;
40
41         omxMatrix **args;
42
43 } omxLISRELExpectation;
44
45 void omxCalculateLISRELCovarianceAndMeans(omxLISRELExpectation* oro);
46
47 void omxInitLISRELExpectation(omxExpectation* oo, SEXP rObj);
48
49 omxMatrix* omxGetLISRELExpectationComponent(omxExpectation* ox, omxFitFunction* off, const char* component);
50
51 /*
52 void omxFastLISRELInverse(int numIters, omxMatrix* A, omxMatrix* Z, omxMatrix* Ax, omxMatrix* I ); // same as RAM inverse
53 */
54
55 #endif /* _OMXLISRELEXPECTATION_H_ */