summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2021-06-08 16:59:43 +0300
committerEfraim Flashner <efraim@flashner.co.il>2021-06-08 17:57:25 +0300
commit567fa057d22512f81a465802da4fda1d1b72842e (patch)
treeb26d302660ab41a66423724b434f2433a3a5789f /gnu
parent2cd0dcf32e95d142eb039622c00071c982164777 (diff)
downloadguix-567fa057d22512f81a465802da4fda1d1b72842e.tar.gz
gnu: Add julia-blockarrays.
* gnu/packages/julia-xyz.scm (julia-blockarrays): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/julia-xyz.scm36
1 files changed, 36 insertions, 0 deletions
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 2bb9511c69..6896cf2d64 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -187,6 +187,42 @@ code easy by supplying a framework for writing and running groups of
 benchmarks as well as comparing benchmark results.")
     (license license:expat)))
 
+(define-public julia-blockarrays
+  (package
+    (name "julia-blockarrays")
+    (version "0.15.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaArrays/BlockArrays.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "15nd493bfkx92ihnr8dj8mb155dj44iqw266igv0qr5q0wad2bfr"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-arraylayouts" ,julia-arraylayouts)
+       ("julia-fillarrays" ,julia-fillarrays)))
+    (native-inputs
+     `(("julia-lazyarrays" ,julia-lazyarrays)
+       ("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-staticarrays" ,julia-staticarrays)))
+    (home-page "https://github.com/JuliaArrays/BlockArrays.jl")
+    (synopsis "BlockArrays for Julia")
+    (description "A block array is a partition of an array into blocks or
+subarrays.  This package has two purposes.  Firstly, it defines an interface for
+an @code{AbstractBlockArray} block arrays that can be shared among types
+representing different types of block arrays.  The advantage to this is that it
+provides a consistent API for block arrays.
+Secondly, it also implements two different type of block arrays that follow the
+@code{AbstractBlockArray} interface.  The type @code{BlockArray} stores each
+block contiguously while the type @code{PseudoBlockArray} stores the full matrix
+contiguously.  This means that @code{BlockArray} supports fast non copying
+extraction and insertion of blocks while @code{PseudoBlockArray} supports fast
+access to the full matrix to use in in for example a linear solver.")
+    (license license:expat)))
+
 (define-public julia-bufferedstreams
   (package
     (name "julia-bufferedstreams")