X-Git-Url: https://git.auder.net/doc/html/img/rock_paper_scissors_lizard_spock.gif?a=blobdiff_plain;f=epclust%2FR%2Fmain.R;h=27fbb7488394bcc39009c86b74251b3c458cce4b;hb=3eef8d3df59ded9a281cff51f79fe824198a7427;hp=0b598329b87935a3ea668f8953e6967f8bd9ea5f;hpb=e205f2187f0ccdff00bffc47642392ec5e33214d;p=epclust.git
diff --git a/epclust/R/main.R b/epclust/R/main.R
index 0b59832..27fbb74 100644
--- a/epclust/R/main.R
+++ b/epclust/R/main.R
@@ -40,7 +40,7 @@
#' cl = epclust(getData, K1=200, K2=15, ntasks=1000, nb_series_per_chunk=5000, WER="mix")
#' @export
epclust = function(series,K1,K2,ntasks=1,nb_series_per_chunk=50*K1,min_series_per_chunk=5*K1,
- wf="haar",WER="end",ncores_tasks=1,ncores_clust=4,random=TRUE,...)
+ wf="haar",WER="end",ncores_tasks=1,ncores_clust=4,random=TRUE,ftype="float",...)
{
# Check/transform arguments
bin_dir = "epclust.bin/"
@@ -51,7 +51,7 @@ epclust = function(series,K1,K2,ntasks=1,nb_series_per_chunk=50*K1,min_series_pe
unlink(series_file)
}
if (is.matrix(series))
- serialize(series, series_file)
+ serialize(series, series_file, ftype, nb_series_per_chunk)
else if (!is.function(series))
{
tryCatch(
@@ -63,7 +63,7 @@ epclust = function(series,K1,K2,ntasks=1,nb_series_per_chunk=50*K1,min_series_pe
open(series)
series_con = series
}
- serialize(series_con, series_file)
+ serialize(series_con, series_file, ftype, nb_series_per_chunk)
close(series_con)
},
error=function(e) "series should be a data.frame, a function or a valid connection"
@@ -94,7 +94,7 @@ epclust = function(series,K1,K2,ntasks=1,nb_series_per_chunk=50*K1,min_series_pe
if (is.null(series))
break
coeffs_chunk = curvesToCoeffs(series, wf)
- serialize(coeffs_chunk, coefs_file)
+ serialize(coeffs_chunk, coefs_file, ftype, nb_series_per_chunk)
index = index + nb_series_per_chunk
nb_curves = nb_curves + nrow(coeffs_chunk)
}
@@ -116,7 +116,7 @@ epclust = function(series,K1,K2,ntasks=1,nb_series_per_chunk=50*K1,min_series_pe
#1000*K1 (or K2) indices (or NOTHING--> series on file)
indices = unlist( parallel::parLapply(cl, indices_tasks, function(inds) {
clusteringTask(inds, getSeries, getSeries, getCoefs, K1, K2*(WER=="mix"),
- nb_series_per_chunk,ncores_clust,to_file=TRUE)
+ nb_series_per_chunk,ncores_clust,to_file=TRUE, ftype)
}) )
parallel::stopCluster(cl)
@@ -136,12 +136,12 @@ epclust = function(series,K1,K2,ntasks=1,nb_series_per_chunk=50*K1,min_series_pe
if (is.null(series))
break
coeffs_chunk = curvesToCoeffs(series, wf)
- serialize(coeffs_chunk, coefs_file)
+ serialize(coeffs_chunk, coefs_file, ftype, nb_series_per_chunk)
index = index + nb_series_per_chunk
}
}
# Run step2 on resulting indices or series (from file)
clusteringTask(indices, getSeries, getSeriesForSynchrones, getCoefs, K1, K2,
- nb_series_per_chunk, ncores_tasks*ncores_clust, to_file=FALSE)
+ nb_series_per_chunk, ncores_tasks*ncores_clust, to_file=FALSE, ftype)
}