X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=src%2Fadapters%2Fa.EMGLLF.c;h=747a3c99756c23026d1cbb0d238047e8d0f91f80;hp=241a09f52bbc4a76701fe60407d894c20905015f;hb=4cab944a7bf905e811d740694c39f16b2b23d7e1;hpb=cb51adb811037428129ac947a5f7999c8c4539ae diff --git a/src/adapters/a.EMGLLF.c b/src/adapters/a.EMGLLF.c index 241a09f..747a3c9 100644 --- a/src/adapters/a.EMGLLF.c +++ b/src/adapters/a.EMGLLF.c @@ -1,197 +1,86 @@ #include #include #include "sources/EMGLLF.h" -#include "sources/utils/io.h" SEXP EMGLLF( - SEXP M_, - SEXP NIix_, - SEXP alpha_, - SEXP h_, - SEXP epsilon_, - SEXP maxiter_, - SEXP symmNeighbs_, - SEXP trace_ + SEXP phiInit_, + SEXP rhoInit_, + SEXP piInit_, + SEXP gamInit_, + SEXP mini_, + SEXP maxi_, + SEXP gamma_, + SEXP lambda_, + SEXP X_, + SEXP Y_, + SEXP tau_ ) { - // get parameters - double alpha = NUMERIC_VALUE(alpha_); - double h = NUMERIC_VALUE(h_); - double epsilon = NUMERIC_VALUE(epsilon_); - int maxiter = INTEGER_VALUE(maxiter_); - int symmNeighbs = LOGICAL_VALUE(symmNeighbs_); - int trace = LOGICAL_VALUE(trace_); - - // extract infos from M and get associate pointer - SEXP dim = getAttrib(M_, R_DimSymbol); - int nrow = INTEGER(dim)[0]; - int ncol = INTEGER(dim)[1]; - // M is always given by columns: easier to process in rows - double* pM = transpose(REAL(M_), nrow, ncol); - - // extract NIix list vectors in a jagged array - int* lengthNIix = (int*)malloc(nrow*sizeof(int)); - int** NIix = (int**)malloc(nrow*sizeof(int*)); - for (int i=0; i