move selectiontotale to appropriate folder (untranslated)
[valse.git] / src / adapters / a.constructionModelesLassoMLE.c
index 7f578fb..ec519a9 100644 (file)
@@ -1,8 +1,8 @@
 #include <R.h>
 #include <Rdefines.h>
-#include "sources/EMGLLF.h"
+#include "constructionModelesLassoMLE.h"
 
-SEXP EMGLLF(
+SEXP constructionModelesLassoMLE(
        SEXP phiInit_,
        SEXP rhoInit_,
        SEXP piInit_,
@@ -20,11 +20,11 @@ SEXP EMGLLF(
 ) {
        // Get matrices dimensions
        int n = INTEGER(getAttrib(X_, R_DimSymbol))[0];
-       SEXP dim = getAttrib(phiInit_, R_DimSymbol)
+       SEXP dim = getAttrib(phiInit_, R_DimSymbol);
        int p = INTEGER(dim)[0];
        int m = INTEGER(dim)[1];
        int k = INTEGER(dim)[2];
-       int L = INTEGER(getAttrib(glambda_, R_LengthSymbol))[0];
+       int L = length(glambda_);
 
        ////////////
        // INPUTS //
@@ -45,14 +45,14 @@ SEXP EMGLLF(
        double* glambda = REAL(glambda_);
        double* X = REAL(X_);
        double* Y = REAL(Y_);
-       double* A1 = REAL(A1_);
-       double* A2 = REAL(A2_);
+       int* A1 = INTEGER(A1_);
+       int* A2 = INTEGER(A2_);
 
        /////////////
        // OUTPUTS //
        /////////////
 
-       SEXP phi, rho, pi, lvraisemblance, dimPhi, dimRho;
+       SEXP phi, rho, pi, llh, dimPhi, dimRho;
        PROTECT(dimPhi = allocVector(INTSXP, 4));
        int* pDimPhi = INTEGER(dimPhi);
        pDimPhi[0] = p; pDimPhi[1] = m; pDimPhi[2] = k; pDimPhi[3] = L;
@@ -62,30 +62,30 @@ SEXP EMGLLF(
        PROTECT(phi = allocArray(REALSXP, dimPhi));
        PROTECT(rho = allocArray(REALSXP, dimRho));
        PROTECT(pi = allocMatrix(REALSXP, k, L));
-       PROTECT(lvraisemblance = allocMatrix(REALSXP, L, 2));
-       double* pPhi=REAL(phi), pRho=REAL(rho), pPi=REAL(pi), pLvraisemblance=REAL(lvraisemblance);
+       PROTECT(llh = allocMatrix(REALSXP, L, 2));
+       double *pPhi=REAL(phi), *pRho=REAL(rho), *pPi=REAL(pi), *pllh=REAL(llh);
 
        /////////////////////////////////////////
        // Call to constructionModelesLassoMLE //
        /////////////////////////////////////////
 
-       constructionModelesLassoMLE(
+       constructionModelesLassoMLE_core(
                phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,glambda,X,Y,seuil,tau,A1,A2,
-               pPhi,pRho,pPi,pLvraisemblance,
+               pPhi,pRho,pPi,pllh,
                n,p,m,k,L);
 
        // Build list from OUT params and return it
        SEXP listParams, listNames;
        PROTECT(listParams = allocVector(VECSXP, 4));
-       char* lnames[4] = {"phi", "rho", "pi", "lvraisemblance"}; //lists labels
+       char* lnames[4] = {"phi", "rho", "pi", "llh"}; //lists labels
        PROTECT(listNames = allocVector(STRSXP,4));
        for (int i=0; i<4; i++)
                SET_STRING_ELT(listNames,i,mkChar(lnames[i]));
        setAttrib(listParams, R_NamesSymbol, listNames);
-       SET_ARRAY_ELT(listParams, 0, phi);
-       SET_ARRAY_ELT(listParams, 1, rho);
-       SET_MATRIX_ELT(listParams, 2, pi);
-       SET_VECTOR_ELT(listParams, 3, lvraisemblance);
+       SET_VECTOR_ELT(listParams, 0, phi);
+       SET_VECTOR_ELT(listParams, 1, rho);
+       SET_VECTOR_ELT(listParams, 2, pi);
+       SET_VECTOR_ELT(listParams, 3, llh);
 
        UNPROTECT(8);
        return listParams;