#include "EMGrank.h" #include "constructionModelesLassoRank.h" #include #include #include "omp_num_threads.h" // TODO: comment on constructionModelesLassoRank purpose void constructionModelesLassoRank( // IN parameters const Real* Pi, // parametre initial des proportions const Real* Rho, // parametre initial de variance renormalisé Int mini, // nombre minimal d'itérations dans l'algorithme EM Int maxi, // nombre maximal d'itérations dans l'algorithme EM const Real* X, // régresseurs const Real* Y, // réponse Real tau, // seuil pour accepter la convergence const Int* A1, // matrice des coefficients des parametres selectionnes Int rangmin, //rang minimum autorisé Int rangmax, //rang maximum autorisé // OUT parameters (all pointers, to be modified) Real* phi, // estimateur ainsi calculé par le Lasso Real* lvraisemblance, // estimateur ainsi calculé par le Lasso // additional size parameters mwSize n, // taille de l'echantillon mwSize p, // nombre de covariables mwSize m, // taille de Y (multivarié) mwSize k, // nombre de composantes mwSize L) // taille de glambda { //On cherche les rangs possiblement intéressants Int deltaRank = rangmax-rangmin+1; mwSize Size = (mwSize)pow(deltaRank,k); Int* Rank = (Int*)malloc(Size*k*sizeof(Int)); for (mwSize r=0; r 0 Real* phiLambda = (Real*)malloc(longueurActive*m*k*sizeof(Real)); Real LLF; for (Int j=0; j