gnu: Add suitesparse-klu.

* gnu/packages/maths.scm (suitesparse-klu): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
David Elsing 2023-10-05 21:34:57 +00:00 committed by Ludovic Courtès
parent ec2c7d2d48
commit 4b512f5491
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -5567,6 +5567,69 @@ (define-public suitesparse-cxsparse
direct methods on both real and complex matrices.") direct methods on both real and complex matrices.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public suitesparse-klu
(package
(name "suitesparse-klu")
(version "2.2.0")
(source suitesparse-source)
(build-system cmake-build-system)
(arguments
(list
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "KLU")))
(add-after 'chdir 'set-cmake-module-path
(lambda _
(substitute* "CMakeLists.txt"
(("set.*CMAKE_MODULE_PATH.*")
(string-append
"set(CMAKE_MODULE_PATH "
(string-join
(map (lambda (path)
(string-append path "/lib/cmake/SuiteSparse"))
(list #$suitesparse-amd
#$suitesparse-btf
#$suitesparse-camd
#$suitesparse-ccolamd
#$suitesparse-cholmod
#$suitesparse-colamd
#$suitesparse-config)))
")\nset(DUMMY\n")))))
(add-after 'build 'build-doc
(lambda _
(substitute* "../KLU/Doc/Makefile"
(("\\.\\./\\.\\./BTF/Include/btf.h")
(string-append #$suitesparse-btf "/include/btf.h")))
(with-directory-excursion "../KLU/Doc"
(invoke "make"))))
(add-after 'install 'install-doc
(lambda _
(install-file "../KLU/Doc/KLU_UserGuide.pdf"
(string-append #$output "/share/doc/"
#$name "-" #$version))))
(replace 'install-license-files
(lambda _
(install-file "../KLU/Doc/License.txt"
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs
(list suitesparse-amd
suitesparse-btf
suitesparse-camd
suitesparse-ccolamd
suitesparse-cholmod
suitesparse-colamd
suitesparse-config))
(native-inputs (list (texlive-updmap.cfg '())))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Routines for solving sparse linear problems with a LU factorization")
(description "KLU is a method for computing the LU factorization of sparse
for real and complex matrices.")
(license license:lgpl2.1+)))
(define-public suitesparse (define-public suitesparse
(package (package
(name "suitesparse") (name "suitesparse")