4 int main(int argc
, char** argv
)
10 Int
* dimensions
= readArray_int("dimensions");
11 mwSize n
= dimensions
[0];
12 mwSize p
= dimensions
[1];
13 mwSize m
= dimensions
[2];
14 mwSize k
= dimensions
[3];
17 Real
* phiInit
= readArray_real("phiInit");
18 Real
* rhoInit
= readArray_real("rhoInit");
19 Real
* piInit
= readArray_real("piInit");
20 Real
* gamInit
= readArray_real("gamInit");
21 Int mini
= read_int("mini");
22 Int maxi
= read_int("maxi");
23 Real gamma
= read_real("gamma");
24 Real lambda
= read_real("lambda");
25 Real
* X
= readArray_real("X");
26 Real
* Y
= readArray_real("Y");
27 Real tau
= read_real("tau");
33 Real
* phi
= (Real
*)malloc(p
*m
*k
*sizeof(Real
));
34 Real
* rho
= (Real
*)malloc(m
*m
*k
*sizeof(Real
));
35 Real
* pi
= (Real
*)malloc(k
*sizeof(Real
));
36 Real
* LLF
= (Real
*)malloc(maxi
*sizeof(Real
));
37 Real
* S
= (Real
*)malloc(p
*m
*k
*sizeof(Real
));
43 EMGLLF_core(phiInit
,rhoInit
,piInit
,gamInit
,mini
,maxi
,gamma
,lambda
,X
,Y
,tau
,
54 // Compare to reference outputs
55 Real
* ref_phi
= readArray_real("phi");
56 compareArray_real("phi", phi
, ref_phi
, p
*m
*k
);
60 Real
* ref_rho
= readArray_real("rho");
61 compareArray_real("rho", rho
, ref_rho
, m
*m
*k
);
65 Real
* ref_pi
= readArray_real("pi");
66 compareArray_real("pi", pi
, ref_pi
, k
);
70 Real
* ref_LLF
= readArray_real("LLF", maxi
);
71 compareArray_real("LLF", LLF
, ref_LLF
);
75 Real
* ref_S
= readArray_real("S");
76 compareArray_real("S", S
, ref_S
, p
*m
*k
);