From 777c4b0274c059eeb5d4bd784ef773e819a7f7a2 Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Wed, 8 Mar 2017 22:30:16 +0100
Subject: [PATCH] WER distances is a regular matrix, fix doc (weird latex
 error?)

---
 epclust/R/clustering.R | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/epclust/R/clustering.R b/epclust/R/clustering.R
index 92adda2..0d37c24 100644
--- a/epclust/R/clustering.R
+++ b/epclust/R/clustering.R
@@ -18,6 +18,7 @@
 #' @param getContribs Function to retrieve contributions from initial series indices:
 #'   \code{getContribs(indices)} outpus a contributions matrix
 #' @param contribs matrix of contributions (e.g. output of \code{curvesToContribs()})
+#' @param distances matrix of K1 x K1 (WER) distances between synchrones
 #' @inheritParams computeSynchrones
 #' @inheritParams claws
 #'
@@ -77,8 +78,7 @@ clusteringTask2 = function(medoids, K2,
 	synchrones = computeSynchrones(medoids,
 		getRefSeries, nb_ref_curves, nb_series_per_chunk, ncores_clust, verbose, parll)
 	distances = computeWerDists(synchrones, ncores_clust, verbose, parll)
-	# PAM in package 'cluster' cannot take big.matrix in input: need to cast it
-	medoids[ computeClusters2(distances[,],K2,verbose), ]
+	medoids[ computeClusters2(distances,K2,verbose), ]
 }
 
 #' @rdname clustering
@@ -166,7 +166,7 @@ computeSynchrones = function(medoids, getRefSeries,
 	}
 
 	indices_workers = .spreadIndices(seq_len(nb_ref_curves), nb_series_per_chunk)
-		browser()
+#browser()
 	ignored <-
 		if (parll)
 			parallel::parLapply(cl, indices_workers, computeSynchronesChunk)
@@ -197,7 +197,7 @@ computeSynchrones = function(medoids, getRefSeries,
 #'   as the series in the initial dataset
 #' @inheritParams claws
 #'
-#' @return A big.matrix of size K1 x K1
+#' @return A matrix of size K1 x K1
 #'
 #' @export
 computeWerDists = function(synchrones, ncores_clust=1,verbose=FALSE,parll=TRUE)
@@ -244,6 +244,7 @@ computeWerDists = function(synchrones, ncores_clust=1,verbose=FALSE,parll=TRUE)
 		sqres / max(Mod(sqres))
 	}
 
+	# Distance between rows i and j
 	computeDistancesIJ = function(pair)
 	{
 		i = pair[1] ; j = pair[2]
@@ -278,7 +279,9 @@ computeWerDists = function(synchrones, ncores_clust=1,verbose=FALSE,parll=TRUE)
 		parallel::stopCluster(cl)
 
 	Xwer_dist[n,n] = 0.
-	Xwer_dist
+	distances <- Xwer_dist[,]
+	rm(Xwer_dist) ; gc()
+	distances #~small matrix K1 x K1
 }
 
 # Helper function to divide indices into balanced sets
-- 
2.44.0