X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=src%2Fsources%2FconstructionModelesLassoRank.c;h=59be2f734c64697ae045c79ce15af23ebaf16d7f;hb=ef67d338c7f28ba041abe40ca9a8ab69f8365a90;hp=eaa83c423f05dc1dd1f71c762962d3283c986867;hpb=3ec579a0955aca0591a9e5c4d90c50b87f4f4609;p=valse.git diff --git a/src/sources/constructionModelesLassoRank.c b/src/sources/constructionModelesLassoRank.c index eaa83c4..59be2f7 100644 --- a/src/sources/constructionModelesLassoRank.c +++ b/src/sources/constructionModelesLassoRank.c @@ -1,25 +1,25 @@ -#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( +void constructionModelesLassoRank_core( // IN parameters - const double* Pi,// parametre initial des proportions - const double* Rho, // parametre initial de variance renormalisé + 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 double* X,// régresseurs - const double* Y,// réponse - double tau, // seuil pour accepter la convergence + 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) - double* phi,// estimateur ainsi calculé par le Lasso - double* lvraisemblance,// estimateur ainsi calculé par le Lasso + 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 @@ -31,18 +31,22 @@ void constructionModelesLassoRank( 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 - double* phiLambda = (double*)malloc(longueurActive*m*k*sizeof(double)); - double LLF; + Real* phiLambda = (Real*)malloc(longueurActive*m*k*sizeof(Real)); + Real LLF; for (int j=0; j