- Real* mlLvraisemblance = brToMatlabArray_real(lvraisemblance, dimLvraisemblance, 2);
- copyArray(mlLvraisemblance, lvraisemblance, dimLvraisemblance[0]*dimLvraisemblance[1]);
- free(mlLvraisemblance);
+ // Build list from OUT params and return it
+ SEXP listParams, listNames;
+ PROTECT(listParams = allocVector(VECSXP, 4));
+ char* lnames[4] = {"phi", "rho", "pi", "lvraisemblance"}; //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, lvraisemblance);
+
+ UNPROTECT(8);
+ return listParams;