gnu: Add suitesparse-spex.

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

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

View file

@ -5797,6 +5797,76 @@ (define-public suitesparse-mongoose
edge cuts using a coarsening and refinement framework.")
(license license:gpl3)))
(define-public suitesparse-spex
(package
(name "suitesparse-spex")
(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 "SPEX")))
(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-colamd
#$suitesparse-config)))
")\nset(DUMMY\n")))))
(add-after 'build 'build-doc
(lambda _
(with-directory-excursion "../SPEX/Doc"
(invoke "make"))))
(add-after 'install 'install-doc
(lambda _
(install-file "../SPEX/Doc/SPEX_UserGuide.pdf"
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs
(list gmp
mpfr
suitesparse-amd
suitesparse-colamd
suitesparse-config))
(native-inputs
(list (texlive-updmap.cfg
(list texlive-paralist
texlive-comment
texlive-psfrag
texlive-soul
texlive-multirow
texlive-algorithms
texlive-float
texlive-algorithmicx
texlive-cprotect
texlive-bigfoot
texlive-caption
texlive-listings
texlive-xcolor
texlive-framed
texlive-mdframed
texlive-etoolbox
texlive-zref
texlive-needspace))))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Package for SParse EXact algebra")
(description "SPEX is a set of routines for sparse exact linear algebra.
It contains the SPEX Left LU library for computing a sparse exact left-looking
LU factorization for solving unsymmetric sparse linear systems.")
;; Dual licensed.
(license (list license:lgpl3+ license:gpl2+))))
(define-public suitesparse
(package
(name "suitesparse")