From c280fe59f3b4f7fe7c1bf5cceb8352bead1bf26b Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Sun, 2 Apr 2017 12:18:09 +0200
Subject: [PATCH] first draft of EMGLLF.R and EMGrank.R (should work)

---
 pkg/R/EMGLLF.R  | 34 +++++++++++++++++++++++++++-------
 pkg/R/EMGrank.R | 27 +++++++++++++++++++++------
 2 files changed, 48 insertions(+), 13 deletions(-)

diff --git a/pkg/R/EMGLLF.R b/pkg/R/EMGLLF.R
index 2b1a0af..7d9ee77 100644
--- a/pkg/R/EMGLLF.R
+++ b/pkg/R/EMGLLF.R
@@ -2,17 +2,37 @@
 #'
 #' Description de EMGLLF
 #'
-#' @param phiInit ...
+#' @param phiInit Parametre initial de moyenne renormalisé
+#' @param rhoInit Parametre initial de variance renormalisé
+#' @param piInit Parametre initial des proportions
+#' @param gamInit Paramètre initial des probabilités a posteriori de chaque échantillon
+#' @param mini Nombre minimal d'itérations dans l'algorithme EM
+#' @param maxi Nombre maximal d'itérations dans l'algorithme EM
+#' @param gamma Puissance des proportions dans la pénalisation pour un Lasso adaptatif
+#' @param lambda Valeur du paramètre de régularisation du Lasso
+#' @param X Régresseurs
+#' @param Y Réponse
+#' @param tau Seuil pour accepter la convergence
 #'
-#' @return ...
+#' @return A list ... phi,rho,pi,LLF,S,affec:
+#'   phi : parametre de moyenne renormalisé, calculé par l'EM
+#'   rho : parametre de variance renormalisé, calculé par l'EM
+#'   pi : parametre des proportions renormalisé, calculé par l'EM
+#'   LLF : log vraisemblance associée à cet échantillon, pour les valeurs estimées des paramètres
+#'   S : ... affec : ...
 #'
-#' @examples
-#' ...
-#' ...
 #' @export
 EMGLLF <- function(phiInit, rhoInit, piInit, gamInit,
 	mini, maxi, gamma, lambda, X, Y, tau)
 {
-	.Call("EMGLLF", phiInit, rhoInit, piInit, gamInit,
-		mini, maxi, gamma, lambda, X, Y, tau, PACKAGE="valse")
+	n = nrow(X) #nombre d'echantillons
+	p = ncol(X) #nombre de covariables
+	m = ncol(Y) #taille de Y (multivarié)
+	k = length(piInit) #nombre de composantes dans le mélange
+	.Call("EMGLLF",
+		phiInit, rhoInit, piInit, gamInit, mini, maxi, gamma, lambda, X, Y, tau,
+		phi=double(p*m*k), rho=double(m*m*k), pi=double(k), LLF=double(maxi),
+			S=double(p*m*k), affec=integer(n),
+		n, p, m, k,
+		PACKAGE="valse")
 }
diff --git a/pkg/R/EMGrank.R b/pkg/R/EMGrank.R
index 71f7c5b..e44ff7a 100644
--- a/pkg/R/EMGrank.R
+++ b/pkg/R/EMGrank.R
@@ -2,15 +2,30 @@
 #'
 #' Description de EMGrank
 #'
-#' @param Pi ...
+#' @param phiInit ...
+#' @param Pi Parametre de proportion
+#' @param Rho Parametre initial de variance renormalisé
+#' @param mini Nombre minimal d'itérations dans l'algorithme EM
+#' @param maxi Nombre maximal d'itérations dans l'algorithme EM
+#' @param X Régresseurs
+#' @param Y Réponse
+#' @param tau Seuil pour accepter la convergence
+#' @param rank Vecteur des rangs possibles
 #'
-#' @return ...
+#' @return A list ...
+#'   phi : parametre de moyenne renormalisé, calculé par l'EM
+#'   LLF : log vraisemblance associé à cet échantillon, pour les valeurs estimées des paramètres
 #'
-#' @examples
-#' ...
-#' ...
 #' @export
 EMGrank <- function(Pi, Rho, mini, maxi, X, Y, tau, rank)
 {
-	.Call("EMGrank", Pi, Rho, mini, maxi, X, Y, tau, rank, PACKAGE="valse")
+	n = nrow(X) #nombre d'echantillons
+	p = ncol(X) #nombre de covariables
+	m = ncol(Y) #taille de Y (multivarié)
+	k = length(Pi) #nombre de composantes dans le mélange
+	.Call("EMGrank",
+		Pi, Rho, mini, maxi, X, Y, tau, rank,
+		phi=double(p*m*k), LLF=double(1),
+		n, p, m, k,
+		PACKAGE="valse")
 }
-- 
2.44.0