1 #include "constructionModelesLassoRank.h"
4 int main(int argc
, char** argv
)
8 Int
* dimensions
= readArray_int("dimensions",&nbDims
,1);
9 mwSize n
= dimensions
[0];
10 mwSize p
= dimensions
[1];
11 mwSize m
= dimensions
[2];
12 mwSize k
= dimensions
[3];
13 mwSize L
= dimensions
[4];
22 const mwSize dimPi
[] = {k
, L
};
23 Real
* Pi
= readArray_real("Pi",dimPi
,2);
26 const mwSize dimRho
[] = {m
, m
, k
, L
};
27 Real
* Rho
= readArray_real("Rho",dimRho
,4);
29 // min number of iterations
30 Int
* pmini
= readArray_int("mini",&lengthOne
,1);
34 // max number of iterations
35 Int
* pmaxi
= readArray_int("maxi",&lengthOne
,1);
40 const mwSize dimX
[] = {n
, p
};
41 Real
* X
= readArray_real("X",dimX
,2);
44 const mwSize dimY
[] = {n
, m
};
45 Real
* Y
= readArray_real("Y",dimY
,2);
48 Real
* ptau
= readArray_real("tau",&lengthOne
,1);
53 const mwSize dimA
[] = {p
, L
};
54 Int
* A1
= readArray_int("A1",dimA
,2);
57 Int
* prangmin
= readArray_int("rangmin",&lengthOne
,1);
58 Int rangmin
= *prangmin
;
62 Int
* prangmax
= readArray_int("rangmax",&lengthOne
,1);
63 Int rangmax
= *prangmax
;
71 mwSize Size
= (mwSize
)pow(rangmax
-rangmin
+1, k
);
72 const mwSize dimPhi
[] = {p
, m
, k
, L
*Size
};
73 Real
* phi
= (Real
*)malloc(dimPhi
[0]*dimPhi
[1]*dimPhi
[2]*dimPhi
[3]*sizeof(Real
));
76 const mwSize dimLvraisemblance
[] = {L
*Size
, 2};
77 Real
* lvraisemblance
= (Real
*)malloc(dimLvraisemblance
[0]*dimLvraisemblance
[1]*sizeof(Real
));
79 //////////////////////////////////////////////
80 // Main call to constructionModelesLassoMLE //
81 //////////////////////////////////////////////
83 constructionModelesLassoRank(
84 Pi
,Rho
,mini
,maxi
,X
,Y
,tau
,A1
,rangmin
,rangmax
,
94 // Compare to reference outputs
95 Real
* ref_phi
= readArray_real("phi",dimPhi
, 4);
96 compareArray_real("phi", phi
, ref_phi
, dimPhi
[0]*dimPhi
[1]*dimPhi
[2]*dimPhi
[3]);
101 Real
* ref_lvraisemblance
= readArray_real("lvraisemblance",dimLvraisemblance
,2);
102 compareArray_real("lvraisemblance", lvraisemblance
, ref_lvraisemblance
, dimLvraisemblance
[0]*dimLvraisemblance
[1]);
103 free(lvraisemblance
);
104 free(ref_lvraisemblance
);