X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=src%2Ftest%2Ftest.ConstructionModelesLassoMLE.c;h=45402db0f3b237a00b7cb0a57be399653d32ea26;hb=c3bc47052f3ccb659659c59a82e9a99ea842398d;hp=a6c0ccee4b9fe832ea970fe536596d46c2b40999;hpb=7b2720733e9aebe177c211119a9ec160c7e7117b;p=valse.git diff --git a/src/test/test.ConstructionModelesLassoMLE.c b/src/test/test.ConstructionModelesLassoMLE.c index a6c0cce..45402db 100644 --- a/src/test/test.ConstructionModelesLassoMLE.c +++ b/src/test/test.ConstructionModelesLassoMLE.c @@ -1,110 +1,50 @@ #include "constructionModelesLassoMLE.h" -#include "ioutils.h" +#include "test_utils.h" int main(int argc, char** argv) { - // read dimensions - const Int nbDims = 5; - Int* dimensions = readArray_int("dimensions",&nbDims,1); - mwSize n = dimensions[0]; - mwSize p = dimensions[1]; - mwSize m = dimensions[2]; - mwSize k = dimensions[3]; - mwSize L = dimensions[4]; + int* dimensions = readArray_int("dimensions"); + int n = dimensions[0]; + int p = dimensions[1]; + int m = dimensions[2]; + int k = dimensions[3]; + int L = dimensions[4]; free(dimensions); - mwSize lengthOne = 1; //////////// // INPUTS // + Real* phiInit = readArray_real("phiInit"); + Real* rhoInit = readArray_real("rhoInit"); + Real* piInit = readArray_real("piInit"); + Real* gamInit = readArray_real("gamInit"); + int mini = read_int("mini"); + int maxi = read_int("maxi"); + Real gamma = read_real("gamma"); + Real* glambda = readArray_real("glambda"); + Real* X = readArray_real("X"); + Real* Y = readArray_real("Y"); + Real seuil = read_real("seuil"); + Real tau = read_real("tau"); + int* A1 = readArray_int("A1"); + int* A2 = readArray_int("A2"); //////////// - // phiInit - const mwSize dimPhiInit[] = {p, m, k}; - Real* phiInit = readArray_real("phiInit",dimPhiInit,3); - - // rhoInit - const mwSize dimRhoInit[] = {m, m, k}; - Real* rhoInit = readArray_real("rhoInit",dimRhoInit,3); - - // piInit - Real* piInit = readArray_real("piInit",&k,1); - - // gamInit - const mwSize dimGamInit[] = {n, k}; - Real* gamInit = readArray_real("gamInit",dimGamInit,2); - - // min number of iterations - Int* pmini = readArray_int("mini",&lengthOne,1); - Int mini = *pmini; - free(pmini); - - // max number of iterations - Int* pmaxi = readArray_int("maxi",&lengthOne,1); - Int maxi = *pmaxi; - free(pmaxi); - - // gamma - Real* pgamma = readArray_real("gamma",&lengthOne,1); - Real gamma = *pgamma; - free(pgamma); - - // lambda - Real* glambda = readArray_real("glambda",&L,1); - - // X - const mwSize dimX[] = {n, p}; - Real* X = readArray_real("X",dimX,2); - - // Y - const mwSize dimY[] = {n, m}; - Real* Y = readArray_real("Y",dimY,2); - - // seuil - Real* pseuil = readArray_real("seuil",&lengthOne,1); - Real seuil = *pseuil; - free(pseuil); - - // tau - Real* ptau = readArray_real("tau",&lengthOne,1); - Real tau = *ptau; - free(ptau); - - // A1 - const mwSize dimA[] = {p, m+1, L}; - Int* A1 = readArray_int("A1",dimA,3); - - // A2 - Int* A2 = readArray_int("A2",dimA,3); - ///////////// // OUTPUTS // + Real* phi = (Real*)malloc(p*m*k*L*sizeof(Real)); + Real* rho = (Real*)malloc(m*m*k*L*sizeof(Real)); + Real* pi = (Real*)malloc(k*L*sizeof(Real)); + Real* llh = (Real*)malloc(L*2*sizeof(Real)); ///////////// - // phi - const mwSize dimPhi[] = {dimPhiInit[0], dimPhiInit[1], dimPhiInit[2], L}; - Real* phi = (Real*)malloc(dimPhi[0]*dimPhi[1]*dimPhi[2]*dimPhi[3]*sizeof(Real)); - - // rho - const mwSize dimRho[] = {dimRhoInit[0], dimRhoInit[1], dimRhoInit[2], L}; - Real* rho = (Real*)malloc(dimRho[0]*dimRho[1]*dimRho[2]*dimRho[3]*sizeof(Real)); - - // pi - const mwSize dimPi[] = {k, L}; - Real* pi = (Real*)malloc(dimPi[0]*dimPi[1]*sizeof(Real)); - - // lvraisemblance - const mwSize dimLvraisemblance[] = {L, 2}; - Real* lvraisemblance = (Real*)malloc(dimLvraisemblance[0]*dimLvraisemblance[1]*sizeof(Real)); - ///////////////////////////////////////// // Call to constructionModelesLassoMLE // - ///////////////////////////////////////// - constructionModelesLassoMLE( phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,glambda,X,Y,seuil,tau,A1,A2, - phi,rho,pi,lvraisemblance, + phi,rho,pi,llh, n,p,m,k,L); - + ///////////////////////////////////////// + free(phiInit); free(rhoInit); free(piInit); @@ -114,30 +54,27 @@ int main(int argc, char** argv) free(A1); free(A2); free(glambda); - + // Compare to reference outputs Real* ref_phi = readArray_real("phi",dimPhi,4); - compareArray_real("phi", phi, ref_phi, dimPhi[0]*dimPhi[1]*dimPhi[2]*dimPhi[3]); + compareArray_real("phi", phi, ref_phi, p*m*k*L); free(phi); free(ref_phi); - - // rho + Real* ref_rho = readArray_real("rho",dimRho,4); - compareArray_real("rho", rho, ref_rho, dimRho[0]*dimRho[1]*dimRho[2]*dimRho[3]); + compareArray_real("rho", rho, ref_rho, m*m*k*L); free(rho); free(ref_rho); - - // pi + Real* ref_pi = readArray_real("pi",dimPi,2); - compareArray_real("pi", pi, ref_pi, dimPi[0]*dimPi[1]); + compareArray_real("pi", pi, ref_pi, k*L); free(pi); free(ref_pi); - - // lvraisemblance - Real* ref_lvraisemblance = readArray_real("lvraisemblance",dimLvraisemblance,2); - compareArray_real("lvraisemblance", lvraisemblance, ref_lvraisemblance, dimLvraisemblance[0]*dimLvraisemblance[1]); - free(lvraisemblance); - free(ref_lvraisemblance); + + Real* ref_llh = readArray_real("llh",dimllh,2); + compareArray_real("llh", llh, ref_llh, L*2); + free(llh); + free(ref_llh); return 0; }