Subject: [PATCH 1/3] gnu: Add r-paralleldist.

From: zimoun <[email-masked]>
Date: Fri, 8 Apr 2022 16:59:52 +0200

* gnu/packages/cran.scm (r-paralleldist): New variable.
---
 gnu/packages/cran.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index be77a57f28..b9ea1144f2 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -1074,6 +1074,39 @@ (define-public r-pacman
 functions which can speed up workflow.")
     (license license:gpl2)))
 
+(define-public r-paralleldist
+  (package
+    (name "r-paralleldist")
+    (version "0.2.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "parallelDist" version))
+       (sha256
+        (base32 "01ly4hxwa64a0ya5gla8rvv72s9mcknsfznivjkh937pbjwb7iih"))))
+    (properties `((upstream-name . "parallelDist")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-rcpp r-rcpparmadillo r-rcppparallel))
+    (home-page "https://github.com/alexeckert/parallelDist")
+    (synopsis "Parallel Distance Matrix Computation using Multiple Threads")
+    (description
+     "This package provides a fast parallelized alternative to R's native
+'dist' function to calculate distance matrices for continuous, binary, and
+multi-dimensional input matrices, which supports a broad variety of 41
+predefined distance functions from the 'stats', 'proxy' and 'dtw' R packages,
+as well as user- defined functions written in C++.  For ease of use, the
+'parDist' function extends the signature of the 'dist' function and uses the
+same parameter naming conventions as distance methods of existing R packages.
+The package is mainly implemented in C++ and leverages the 'RcppParallel'
+package to parallelize the distance computations with the help of the
+'TinyThread' library.  Furthermore, the 'Armadillo' linear algebra library is
+used for optimized matrix operations during distance calculations.  The
+curiously recurring template pattern (CRTP) technique is applied to avoid
+virtual functions, which improves the Dynamic Time Warping calculations while
+the implementation stays flexible enough to support different DTW step
+patterns and normalization methods.")
+    (license license:gpl2+)))
+
 (define-public r-pheatmap
   (package
     (name "r-pheatmap")
-- 
2.34.0