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];
+ const int nbDims = 5;
+ int* dimensions = readArray_int("dimensions",&nbDims,1);
+ 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;
+ int lengthOne = 1;
////////////
// INPUTS //
////////////
// phiInit
- const mwSize dimPhiInit[] = {p, m, k};
- Real* phiInit = readArray_real("phiInit",dimPhiInit,3);
+ const int dimPhiInit[] = {p, m, k};
+ float* phiInit = readArray_real("phiInit",dimPhiInit,3);
// rhoInit
- const mwSize dimRhoInit[] = {m, m, k};
- Real* rhoInit = readArray_real("rhoInit",dimRhoInit,3);
+ const int dimRhoInit[] = {m, m, k};
+ float* rhoInit = readArray_real("rhoInit",dimRhoInit,3);
// piInit
- Real* piInit = readArray_real("piInit",&k,1);
+ float* piInit = readArray_real("piInit",&k,1);
// gamInit
- const mwSize dimGamInit[] = {n, k};
- Real* gamInit = readArray_real("gamInit",dimGamInit,2);
+ const int dimGamInit[] = {n, k};
+ float* gamInit = readArray_real("gamInit",dimGamInit,2);
// min number of iterations
- Int* pmini = readArray_int("mini",&lengthOne,1);
- Int mini = *pmini;
+ 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;
+ int* pmaxi = readArray_int("maxi",&lengthOne,1);
+ int maxi = *pmaxi;
free(pmaxi);
// gamma
- Real* pgamma = readArray_real("gamma",&lengthOne,1);
- Real gamma = *pgamma;
+ float* pgamma = readArray_real("gamma",&lengthOne,1);
+ float gamma = *pgamma;
free(pgamma);
// lambda
- Real* glambda = readArray_real("glambda",&L,1);
+ float* glambda = readArray_real("glambda",&L,1);
// X
- const mwSize dimX[] = {n, p};
- Real* X = readArray_real("X",dimX,2);
+ const int dimX[] = {n, p};
+ float* X = readArray_real("X",dimX,2);
// Y
- const mwSize dimY[] = {n, m};
- Real* Y = readArray_real("Y",dimY,2);
+ const int dimY[] = {n, m};
+ float* Y = readArray_real("Y",dimY,2);
// seuil
- Real* pseuil = readArray_real("seuil",&lengthOne,1);
- Real seuil = *pseuil;
+ float* pseuil = readArray_real("seuil",&lengthOne,1);
+ float seuil = *pseuil;
free(pseuil);
// tau
- Real* ptau = readArray_real("tau",&lengthOne,1);
- Real tau = *ptau;
+ float* ptau = readArray_real("tau",&lengthOne,1);
+ float tau = *ptau;
free(ptau);
// A1
- const mwSize dimA[] = {p, m+1, L};
- Int* A1 = readArray_int("A1",dimA,3);
+ const int dimA[] = {p, m+1, L};
+ int* A1 = readArray_int("A1",dimA,3);
// A2
- Int* A2 = readArray_int("A2",dimA,3);
+ int* A2 = readArray_int("A2",dimA,3);
/////////////
// OUTPUTS //
/////////////
// 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));
+ const int dimPhi[] = {dimPhiInit[0], dimPhiInit[1], dimPhiInit[2], L};
+ float* phi = (float*)malloc(dimPhi[0]*dimPhi[1]*dimPhi[2]*dimPhi[3]*sizeof(float));
// 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));
+ const int dimRho[] = {dimRhoInit[0], dimRhoInit[1], dimRhoInit[2], L};
+ float* rho = (float*)malloc(dimRho[0]*dimRho[1]*dimRho[2]*dimRho[3]*sizeof(float));
// pi
- const mwSize dimPi[] = {k, L};
- Real* pi = (Real*)malloc(dimPi[0]*dimPi[1]*sizeof(Real));
+ const int dimPi[] = {k, L};
+ float* pi = (float*)malloc(dimPi[0]*dimPi[1]*sizeof(float));
// lvraisemblance
- const mwSize dimLvraisemblance[] = {L, 2};
- Real* lvraisemblance = (Real*)malloc(dimLvraisemblance[0]*dimLvraisemblance[1]*sizeof(Real));
+ const int dimLvraisemblance[] = {L, 2};
+ float* lvraisemblance = (float*)malloc(dimLvraisemblance[0]*dimLvraisemblance[1]*sizeof(float));
/////////////////////////////////////////
// Call to constructionModelesLassoMLE //
free(glambda);
// Compare to reference outputs
- Real* ref_phi = readArray_real("phi",dimPhi,4);
+ float* ref_phi = readArray_real("phi",dimPhi,4);
compareArray_real("phi", phi, ref_phi, dimPhi[0]*dimPhi[1]*dimPhi[2]*dimPhi[3]);
free(phi);
free(ref_phi);
// rho
- Real* ref_rho = readArray_real("rho",dimRho,4);
+ float* ref_rho = readArray_real("rho",dimRho,4);
compareArray_real("rho", rho, ref_rho, dimRho[0]*dimRho[1]*dimRho[2]*dimRho[3]);
free(rho);
free(ref_rho);
// pi
- Real* ref_pi = readArray_real("pi",dimPi,2);
+ float* ref_pi = readArray_real("pi",dimPi,2);
compareArray_real("pi", pi, ref_pi, dimPi[0]*dimPi[1]);
free(pi);
free(ref_pi);
// lvraisemblance
- Real* ref_lvraisemblance = readArray_real("lvraisemblance",dimLvraisemblance,2);
+ float* ref_lvraisemblance = readArray_real("lvraisemblance",dimLvraisemblance,2);
compareArray_real("lvraisemblance", lvraisemblance, ref_lvraisemblance, dimLvraisemblance[0]*dimLvraisemblance[1]);
free(lvraisemblance);
free(ref_lvraisemblance);