X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=src%2Fadapters%2Fa.constructionModelesLassoMLE.c;h=72c3173144774f010199a27f92996ce9c130d37e;hb=09ab3c164abb566764e86a175b5973241e708fd6;hp=7f578fb6422a096c075a5b8f6ae129c02f3d8da0;hpb=3ec579a0955aca0591a9e5c4d90c50b87f4f4609;p=valse.git diff --git a/src/adapters/a.constructionModelesLassoMLE.c b/src/adapters/a.constructionModelesLassoMLE.c index 7f578fb..72c3173 100644 --- a/src/adapters/a.constructionModelesLassoMLE.c +++ b/src/adapters/a.constructionModelesLassoMLE.c @@ -1,8 +1,8 @@ #include #include -#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,8 +45,8 @@ 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 // @@ -63,13 +63,13 @@ SEXP EMGLLF( 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); + double *pPhi=REAL(phi), *pRho=REAL(rho), *pPi=REAL(pi), *pLvraisemblance=REAL(lvraisemblance); ///////////////////////////////////////// // Call to constructionModelesLassoMLE // ///////////////////////////////////////// - constructionModelesLassoMLE( + constructionModelesLassoMLE_core( phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,glambda,X,Y,seuil,tau,A1,A2, pPhi,pRho,pPi,pLvraisemblance, n,p,m,k,L); @@ -82,9 +82,9 @@ SEXP EMGLLF( 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, 0, phi); + SET_VECTOR_ELT(listParams, 1, rho); + SET_VECTOR_ELT(listParams, 2, pi); SET_VECTOR_ELT(listParams, 3, lvraisemblance); UNPROTECT(8);