X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=src%2Fsources%2FconstructionModelesLassoRank.c;h=2be19829260577ddf9140ebe96c1dac971e0f862;hb=c3bc47052f3ccb659659c59a82e9a99ea842398d;hp=98c02d5876dfc343c27d6f893dc5c6d37b0c178b;hpb=493a35bfea6d1210c94ced8fbfe3e572f0389ea5;p=valse.git diff --git a/src/sources/constructionModelesLassoRank.c b/src/sources/constructionModelesLassoRank.c index 98c02d5..2be1982 100644 --- a/src/sources/constructionModelesLassoRank.c +++ b/src/sources/constructionModelesLassoRank.c @@ -1,59 +1,59 @@ -#include "EMGrank.h" -#include "constructionModelesLassoRank.h" -#include +#include #include -#include "omp_num_threads.h" +#include +#include "EMGrank.h" +#include "utils.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é +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* 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 + 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; - 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