X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=src%2Fadapters%2Fa.constructionModelesLassoMLE.c;fp=src%2Fadapters%2Fa.constructionModelesLassoMLE.c;h=0000000000000000000000000000000000000000;hb=7f1a6cf08a4d4d67e8a95b8c1c0cc74ff3deb5a4;hp=ec519a9cfc183911b6e4ade399ca4a19e2ab5cab;hpb=31ef8a5c9bbaefcf40d2c2bad43b27d469c28c34;p=valse.git diff --git a/src/adapters/a.constructionModelesLassoMLE.c b/src/adapters/a.constructionModelesLassoMLE.c deleted file mode 100644 index ec519a9..0000000 --- a/src/adapters/a.constructionModelesLassoMLE.c +++ /dev/null @@ -1,92 +0,0 @@ -#include -#include -#include "constructionModelesLassoMLE.h" - -SEXP constructionModelesLassoMLE( - SEXP phiInit_, - SEXP rhoInit_, - SEXP piInit_, - SEXP gamInit_, - SEXP mini_, - SEXP maxi_, - SEXP gamma_, - SEXP glambda_, - SEXP X_, - SEXP Y_, - SEXP seuil_, - SEXP tau_, - SEXP A1_, - SEXP A2_ -) { - // Get matrices dimensions - int n = INTEGER(getAttrib(X_, R_DimSymbol))[0]; - SEXP dim = getAttrib(phiInit_, R_DimSymbol); - int p = INTEGER(dim)[0]; - int m = INTEGER(dim)[1]; - int k = INTEGER(dim)[2]; - int L = length(glambda_); - - //////////// - // INPUTS // - //////////// - - // get scalar parameters - int mini = INTEGER_VALUE(mini_); - int maxi = INTEGER_VALUE(maxi_); - double gamma = NUMERIC_VALUE(gamma_); - double seuil = NUMERIC_VALUE(seuil_); - double tau = NUMERIC_VALUE(tau_); - - // Get pointers from SEXP arrays ; WARNING: by columns ! - double* phiInit = REAL(phiInit_); - double* rhoInit = REAL(rhoInit_); - double* piInit = REAL(piInit_); - double* gamInit = REAL(gamInit_); - double* glambda = REAL(glambda_); - double* X = REAL(X_); - double* Y = REAL(Y_); - int* A1 = INTEGER(A1_); - int* A2 = INTEGER(A2_); - - ///////////// - // OUTPUTS // - ///////////// - - 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; - PROTECT(dimRho = allocVector(INTSXP, 4)); - int* pDimRho = INTEGER(dimRho); - pDimRho[0] = m; pDimRho[1] = m; pDimRho[2] = k; pDimRho[3] = L; - PROTECT(phi = allocArray(REALSXP, dimPhi)); - PROTECT(rho = allocArray(REALSXP, dimRho)); - PROTECT(pi = allocMatrix(REALSXP, k, L)); - PROTECT(llh = allocMatrix(REALSXP, L, 2)); - double *pPhi=REAL(phi), *pRho=REAL(rho), *pPi=REAL(pi), *pllh=REAL(llh); - - ///////////////////////////////////////// - // Call to constructionModelesLassoMLE // - ///////////////////////////////////////// - - constructionModelesLassoMLE_core( - phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,glambda,X,Y,seuil,tau,A1,A2, - 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", "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_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; -}