'update'
authorBenjamin Auder <benjamin.auder@somewhere>
Fri, 3 Mar 2017 11:31:15 +0000 (12:31 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Fri, 3 Mar 2017 11:31:15 +0000 (12:31 +0100)
epclust/R/main.R
epclust/R/utils.R

index f45c945..4159941 100644 (file)
@@ -7,8 +7,8 @@
 #' \itemize{
 #'   \item data.frame: each line contains its ID in the first cell, and all values after
 #'   \item connection: any R connection object (e.g. a file) providing lines as described above
-#'   \item function: a custom way to retrieve the curves; it has two arguments: the start index
-#'     (start) and number of curves (n); see example in package vignette.
+#'   \item function: a custom way to retrieve the curves; it has two arguments: the ranks to be
+#'     retrieved, and the IDs - at least one of them must be present (priority: ranks).
 #' }
 #' @param K1 Number of super-consumers to be found after stage 1 (K1 << N)
 #' @param K2 Number of clusters to be found after stage 2 (K2 << K1)
@@ -58,7 +58,7 @@ epclust = function(data, K1, K2, ntasks=1, nb_series_per_chunk=50*K1, min_series
        }
        K1 = toInteger(K1, function(x) x>=2)
        K2 = toInteger(K2, function(x) x>=2)
-       ntasks = toInteger(ntasks)
+       ntasks = toInteger(ntasks, function(x) x>=1)
        nb_series_per_chunk = toInteger(nb_series_per_chunk, function(x) x>=K1)
        min_series_per_chunk = toInteger(K1, function(x) x>=K1 && x<=nb_series_per_chunk)
        ncores_tasks = toInteger(ncores_tasks, function(x) x>=1)
@@ -76,8 +76,7 @@ epclust = function(data, K1, K2, ntasks=1, nb_series_per_chunk=50*K1, min_series
                coeffs_chunk = computeCoeffs(data, index, nb_series_per_chunk, wf)
                if (is.null(coeffs_chunk))
                        break
-               serialized_coeffs = serialize(coeffs_chunk)
-               appendBinary(coeffs_file, serialized_coeffs)
+               serialize(coeffs_chunk, coeffs_file, append=TRUE)
                index = index + nb_series_per_chunk
                nb_curves = nb_curves + nrow(coeffs_chunk)
                if (is.na(nb_coeffs))
index 6dcc2cd..5c09b56 100644 (file)
@@ -10,25 +10,16 @@ toInteger <- function(x, condition)
        x
 }
 
-#TODO: merge these 2 next ?!
-serialize = function(coeffs)
+serialize = function(coeffs, file, append)
 {
        #.........
        #C function (from data.frame, type of IDs ??! force integers ? [yes])
        #return raw vector
-}
-appendBinary = function(.......)
-{
        #take raw vector, append it (binary mode) to a file
 #TODO: appendCoeffs() en C --> serialize et append to file
 }
 
-#finalizeSerialization = function(...)
-#{
-#      #write number of series, and length of each...
-#}
-
-deserialize = function(coeffs, range)
+deserialize = function(file, range, serie_length)
 {
        #......
        #C function (from file name)