From: Benjamin Auder Date: Fri, 3 Mar 2017 11:31:15 +0000 (+0100) Subject: 'update' X-Git-Url: https://git.auder.net/variants/img/current/%7B%7B%20asset%28%27mixstore/pieces/cb.svg?a=commitdiff_plain;h=c33af7e44b802c182ea92c79b56a72cae3007301;p=epclust.git 'update' --- diff --git a/epclust/R/main.R b/epclust/R/main.R index f45c945..4159941 100644 --- a/epclust/R/main.R +++ b/epclust/R/main.R @@ -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)) diff --git a/epclust/R/utils.R b/epclust/R/utils.R index 6dcc2cd..5c09b56 100644 --- a/epclust/R/utils.R +++ b/epclust/R/utils.R @@ -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)