essai fusion
[valse.git] / pkg / src / adapters / a.EMGLLF.c
diff --git a/pkg/src/adapters/a.EMGLLF.c b/pkg/src/adapters/a.EMGLLF.c
deleted file mode 100644 (file)
index f24cd2a..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-#include <R.h>
-#include <Rdefines.h>
-#include "EMGLLF.h"
-
-// See comments in src/sources/EMGLLF.c and R/EMGLLF.R (wrapper)
-SEXP EMGLLF(
-       SEXP phiInit_,
-       SEXP rhoInit_,
-       SEXP piInit_,
-       SEXP gamInit_,
-       SEXP mini_,
-       SEXP maxi_,
-       SEXP gamma_,
-       SEXP lambda_,
-       SEXP X_,
-       SEXP Y_,
-       SEXP tau_
-) {
-       // 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];
-
-       ////////////
-       // INPUTS //
-       ////////////
-
-       // get scalar parameters
-       int mini = INTEGER_VALUE(mini_);
-       int maxi = INTEGER_VALUE(maxi_);
-       double gamma = NUMERIC_VALUE(gamma_);
-       double lambda = NUMERIC_VALUE(lambda_);
-       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* X = REAL(X_);
-       double* Y = REAL(Y_);
-
-       /////////////
-       // OUTPUTS //
-       /////////////
-
-       SEXP phi, rho, pi, LLF, S, affec, dimPhiS, dimRho;
-       PROTECT(dimPhiS = allocVector(INTSXP, 3));
-       int* pDimPhiS = INTEGER(dimPhiS);
-       pDimPhiS[0] = p; pDimPhiS[1] = m; pDimPhiS[2] = k;
-       PROTECT(dimRho = allocVector(INTSXP, 3));
-       int* pDimRho = INTEGER(dimRho);
-       pDimRho[0] = m; pDimRho[1] = m; pDimRho[2] = k;
-       PROTECT(phi = allocArray(REALSXP, dimPhiS));
-       PROTECT(rho = allocArray(REALSXP, dimRho));
-       PROTECT(pi = allocVector(REALSXP, k));
-       PROTECT(LLF = allocVector(REALSXP, maxi-mini+1));
-       PROTECT(S = allocArray(REALSXP, dimPhiS));
-       PROTECT(affec = allocVector(INTSXP, n));
-       double *pPhi=REAL(phi), *pRho=REAL(rho), *pPi=REAL(pi), *pLLF=REAL(LLF), *pS=REAL(S);
-       int *pAffec=INTEGER(affec);
-
-       ////////////////////
-       // Call to EMGLLF //
-       ////////////////////
-
-       EMGLLF_core(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,lambda,X,Y,tau,
-               pPhi,pRho,pPi,pLLF,pS,pAffec,
-               n,p,m,k);
-
-       // Build list from OUT params and return it
-       SEXP listParams, listNames;
-       int nouts = 6;
-       PROTECT(listParams = allocVector(VECSXP, nouts));
-       char* lnames[6] = {"phi", "rho", "pi", "LLF", "S", "affec"}; //lists labels
-       PROTECT(listNames = allocVector(STRSXP,nouts));
-       for (int i=0; i<nouts; 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, LLF);
-       SET_VECTOR_ELT(listParams, 4, S);
-       SET_VECTOR_ELT(listParams, 5, affec);
-
-       UNPROTECT(10);
-       return listParams;
-}