X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=src%2Fadapters%2Fa.constructionModelesLassoRank.c;h=0e069d478a1359f19c0a31b417a5fce4e66b35e1;hp=359290cdd7fd977ee15f4bfcfb77c3c090fda96e;hb=31ef8a5c9bbaefcf40d2c2bad43b27d469c28c34;hpb=552b00e200e8a990c1247989d29e98d4ae8679f3 diff --git a/src/adapters/a.constructionModelesLassoRank.c b/src/adapters/a.constructionModelesLassoRank.c index 359290c..0e069d4 100644 --- a/src/adapters/a.constructionModelesLassoRank.c +++ b/src/adapters/a.constructionModelesLassoRank.c @@ -1,8 +1,8 @@ #include #include -#include "sources/EMGLLF.h" +#include "constructionModelesLassoRank.h" -SEXP EMGLLF( +SEXP constructionModelesLassoRank( SEXP Pi_, SEXP Rho_, SEXP mini_, @@ -12,13 +12,13 @@ SEXP EMGLLF( SEXP tau_, SEXP A1_, SEXP rangmin_, - SEXP rangmax + SEXP rangmax_ ) { // Get matrices dimensions SEXP dimX = getAttrib(X_, R_DimSymbol); int n = INTEGER(dimX)[0]; int p = INTEGER(dimX)[1]; - SEXP dimRho = getAttrib(Rho_, R_DimSymbol) + SEXP dimRho = getAttrib(Rho_, R_DimSymbol); int m = INTEGER(dimRho)[0]; int k = INTEGER(dimRho)[2]; int L = INTEGER(getAttrib(A1_, R_DimSymbol))[1]; @@ -39,40 +39,40 @@ SEXP EMGLLF( double* Rho = REAL(Rho_); double* X = REAL(X_); double* Y = REAL(Y_); - double* A1 = REAL(A1_); + int* A1 = INTEGER(A1_); ///////////// // OUTPUTS // ///////////// int Size = pow(rangmax-rangmin+1,k); - SEXP phi, lvraisemblance, dimPhi; + SEXP phi, llh, dimPhi; PROTECT(dimPhi = allocVector(INTSXP, 4)); int* pDimPhi = INTEGER(dimPhi); pDimPhi[0] = p; pDimPhi[1] = m; pDimPhi[2] = k; pDimPhi[3] = L*Size; PROTECT(phi = allocArray(REALSXP, dimPhi)); - PROTECT(lvraisemblance = allocMatrix(REALSXP, L*Size, 2)); - double* pPhi=REAL(phi), pLvraisemblance=REAL(lvraisemblance); + PROTECT(llh = allocMatrix(REALSXP, L*Size, 2)); + double *pPhi=REAL(phi), *pllh=REAL(llh); ////////////////////////////////////////// // Call to constructionModelesLassoRank // ////////////////////////////////////////// - constructionModelesLassoRank( + constructionModelesLassoRank_core( Pi,Rho,mini,maxi,X,Y,tau,A1,rangmin,rangmax, - pPhi,pLvraisemblance, + pPhi,pllh, n,p,m,k,L); // Build list from OUT params and return it SEXP listParams, listNames; PROTECT(listParams = allocVector(VECSXP, 2)); - char* lnames[2] = {"phi", "lvraisemblance"}; //lists labels + char* lnames[2] = {"phi", "llh"}; //lists labels PROTECT(listNames = allocVector(STRSXP,2)); for (int i=0; i<2; i++) SET_STRING_ELT(listNames,i,mkChar(lnames[i])); setAttrib(listParams, R_NamesSymbol, listNames); - SET_ARRAY_ELT(listParams, 0, phi); - SET_VECTOR_ELT(listParams, 1, lvraisemblance); + SET_VECTOR_ELT(listParams, 0, phi); + SET_VECTOR_ELT(listParams, 1, llh); UNPROTECT(5); return listParams;