1 #include "constructionModelesLassoMLE.h"
4 int main(int argc
, char** argv
)
8 int* dimensions
= readArray_int("dimensions",&nbDims
,1);
10 int p
= dimensions
[1];
11 int m
= dimensions
[2];
12 int k
= dimensions
[3];
13 int L
= dimensions
[4];
22 const int dimPhiInit
[] = {p
, m
, k
};
23 float* phiInit
= readArray_real("phiInit",dimPhiInit
,3);
26 const int dimRhoInit
[] = {m
, m
, k
};
27 float* rhoInit
= readArray_real("rhoInit",dimRhoInit
,3);
30 float* piInit
= readArray_real("piInit",&k
,1);
33 const int dimGamInit
[] = {n
, k
};
34 float* gamInit
= readArray_real("gamInit",dimGamInit
,2);
36 // min number of iterations
37 int* pmini
= readArray_int("mini",&lengthOne
,1);
41 // max number of iterations
42 int* pmaxi
= readArray_int("maxi",&lengthOne
,1);
47 float* pgamma
= readArray_real("gamma",&lengthOne
,1);
48 float gamma
= *pgamma
;
52 float* glambda
= readArray_real("glambda",&L
,1);
55 const int dimX
[] = {n
, p
};
56 float* X
= readArray_real("X",dimX
,2);
59 const int dimY
[] = {n
, m
};
60 float* Y
= readArray_real("Y",dimY
,2);
63 float* pseuil
= readArray_real("seuil",&lengthOne
,1);
64 float seuil
= *pseuil
;
68 float* ptau
= readArray_real("tau",&lengthOne
,1);
73 const int dimA
[] = {p
, m
+1, L
};
74 int* A1
= readArray_int("A1",dimA
,3);
77 int* A2
= readArray_int("A2",dimA
,3);
84 const int dimPhi
[] = {dimPhiInit
[0], dimPhiInit
[1], dimPhiInit
[2], L
};
85 float* phi
= (float*)malloc(dimPhi
[0]*dimPhi
[1]*dimPhi
[2]*dimPhi
[3]*sizeof(float));
88 const int dimRho
[] = {dimRhoInit
[0], dimRhoInit
[1], dimRhoInit
[2], L
};
89 float* rho
= (float*)malloc(dimRho
[0]*dimRho
[1]*dimRho
[2]*dimRho
[3]*sizeof(float));
92 const int dimPi
[] = {k
, L
};
93 float* pi
= (float*)malloc(dimPi
[0]*dimPi
[1]*sizeof(float));
96 const int dimLvraisemblance
[] = {L
, 2};
97 float* lvraisemblance
= (float*)malloc(dimLvraisemblance
[0]*dimLvraisemblance
[1]*sizeof(float));
99 /////////////////////////////////////////
100 // Call to constructionModelesLassoMLE //
101 /////////////////////////////////////////
103 constructionModelesLassoMLE(
104 phiInit
,rhoInit
,piInit
,gamInit
,mini
,maxi
,gamma
,glambda
,X
,Y
,seuil
,tau
,A1
,A2
,
105 phi
,rho
,pi
,lvraisemblance
,
118 // Compare to reference outputs
119 float* ref_phi
= readArray_real("phi",dimPhi
,4);
120 compareArray_real("phi", phi
, ref_phi
, dimPhi
[0]*dimPhi
[1]*dimPhi
[2]*dimPhi
[3]);
125 float* ref_rho
= readArray_real("rho",dimRho
,4);
126 compareArray_real("rho", rho
, ref_rho
, dimRho
[0]*dimRho
[1]*dimRho
[2]*dimRho
[3]);
131 float* ref_pi
= readArray_real("pi",dimPi
,2);
132 compareArray_real("pi", pi
, ref_pi
, dimPi
[0]*dimPi
[1]);
137 float* ref_lvraisemblance
= readArray_real("lvraisemblance",dimLvraisemblance
,2);
138 compareArray_real("lvraisemblance", lvraisemblance
, ref_lvraisemblance
, dimLvraisemblance
[0]*dimLvraisemblance
[1]);
139 free(lvraisemblance
);
140 free(ref_lvraisemblance
);