#include #include #include #include "EMGrank.h" #include "utils.h" // TODO: comment on constructionModelesLassoRank purpose void constructionModelesLassoRank_core( // 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* llh,// estimateur ainsi calculé par le Lasso // additional size parameters int n,// taille de l'echantillon int p,// nombre de covariables int m,// taille de Y (multivarié) int k,// nombre de composantes int L)// taille de glambda { //On cherche les rangs possiblement intéressants int deltaRank = rangmax-rangmin+1; int Size = (int)pow(deltaRank,k); int* Rank = (int*)malloc(Size*k*sizeof(int)); for (int r=0; r 0 Real* phiLambda = (Real*)malloc(longueurActive*m*k*sizeof(Real)); Real LLF; for (int j=0; j