;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2016, 2018 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017 Paul Garlick <pgarlick@tourbillion-technology.com>
-;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
+;;; Copyright © 2017, 2018 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Dave Love <me@fx@gnu.org>
;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
+;;; Copyright © 2018 Nadya Voronova <voronovank@gmail.com>
+;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
+;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018 Eric Brown <brown@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system ocaml)
+ #:use-module (guix build-system python)
#:use-module (guix build-system r)
#:use-module (guix build-system ruby)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages java)
#:use-module (gnu packages less)
#:use-module (gnu packages lisp)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages logging)
#:use-module (gnu packages lua)
#:use-module (gnu packages gnome)
#:use-module (gnu packages popt)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
(define-public coda
(package
(name "coda")
- (version "2.18.3")
+ (version "2.19")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/stcorp/coda/releases/download/"
version "/coda-" version ".tar.gz"))
(sha256
- (base32 "1zlzgcvwmmjm8mw8w4rg2rqy0pjilz7kyyxm0y4p8cbljbbjxxz0"))
+ (base32 "1fbxd2afm7dshd92p10yy8dwbr9gc1h1fmnnnmr7d0c5lnw80245"))
(patches (search-patches "coda-use-system-libs.patch"))
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
- '(for-each (lambda (d)
- (delete-file-recursively (string-append "libcoda/" d)))
- '("zlib" "pcre" "expat")))))
+ '(begin
+ (for-each (lambda (d)
+ (delete-file-recursively (string-append "libcoda/" d)))
+ '("zlib" "pcre" "expat"))
+ #t))))
(native-inputs
`(("fortran" ,gfortran)
("python" ,python)
(home-page "https://stcorp.nl/coda")
(license license:gpl2+)))
+(define-public qhull
+ (package
+ (name "qhull")
+ (version "2015.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.qhull.org/download/qhull-"
+ (car (string-split version #\.))
+ "-src-7.2.0.tgz"))
+ (sha256
+ (base32
+ "0dm4b2xr3asy6w74khq2zg4gf26zsy3qf9sq7pf7lmrvbj911c3q"))))
+ (build-system cmake-build-system)
+ (synopsis "Calculate convex hulls and related structures")
+ (description
+ "@code{Qhull} computes the convex hull, Delaunay triangulation, Voronoi
+diagram, halfspace intersection about a point, furthest-site Delaunay
+triangulation, and furthest-site Voronoi diagram. The source code runs in 2-d,
+3-d, 4-d, and higher dimensions. @code{Qhull} implements the Quickhull
+algorithm for computing the convex hull. It handles roundoff errors from
+floating point arithmetic. It computes volumes, surface areas, and
+approximations to the convex hull.
+
+@code{Qhull} does not support triangulation of non-convex surfaces, mesh
+generation of non-convex objects, medium-sized inputs in 9-D and higher, alpha
+shapes, weighted Voronoi diagrams, Voronoi volumes, or constrained Delaunay
+triangulations.")
+ (home-page "http://qhull.org")
+ (license (license:non-copyleft "file://COPYING.txt"
+ "See COPYING in the distribution."))))
+
(define-public units
(package
(name "units")
- (version "2.16")
+ (version "2.17")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/units/units-" version
".tar.gz"))
(sha256 (base32
- "11hnp3gcmcc5kci2caxw4hs6m08h2mhqs3xzqq7iafx1ha2ggwyw"))))
+ "1n2xzpnxfn475zkd8rzs5gg58xszjbr4bdbgvk6hryzimvwwj0qz"))))
(build-system gnu-build-system)
(inputs
`(("readline" ,readline)
(define-public double-conversion
(package
(name "double-conversion")
- (version "1.1.5")
+ (version "3.0.0")
+ (home-page "https://github.com/google/double-conversion")
(source (origin
(method url-fetch)
- (uri (string-append
- "https://github.com/floitsch/double-conversion/archive/v"
- version ".tar.gz"))
+ (uri (string-append home-page "/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0cnr8xhyjfxijay8ymkqcph3672wp2lj23qhdmr3m4kia5kpdf83"))))
+ "059r1czs28ljjd388pn6l3njg1ghbf1cv3q9nkxv3dj2a8siabqm"))))
(build-system cmake-build-system)
(arguments
'(#:test-target "test"
#:configure-flags '("-DBUILD_SHARED_LIBS=ON"
"-DBUILD_TESTING=ON")))
- (home-page "https://github.com/floitsch/double-conversion")
(synopsis "Conversion routines for IEEE doubles")
(description
"The double-conversion library provides binary-decimal and decimal-binary
(define-public gsl
(package
(name "gsl")
- (version "2.4")
+ (version "2.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gsl/gsl-"
version ".tar.gz"))
(sha256
(base32
- "16yfs5n444s03np1naj6yp1fsysd42kdscxzkg0k2yvfjixx0ijd"))
+ "1395y9hlhqadn5g9j8q22224fds5sd92jxi9czfavjj24myasq04"))
(patches (search-patches "gsl-test-i686.patch"))))
(build-system gnu-build-system)
(arguments
(define-public ocaml-gsl
(package
(name "ocaml-gsl")
- (version "1.19.3")
+ (version "1.22.0")
(source
(origin
(method url-fetch)
(uri
(string-append
- "https://github.com/mmottl/gsl-ocaml/releases/download/v"
- version"/gsl-ocaml-" version ".tar.gz"))
+ "https://github.com/mmottl/gsl-ocaml/releases/download/"
+ version "/gsl-" version ".tbz"))
(sha256
(base32
- "0nzp43hp8pbjqkrxnwp5lgjrabxayf61h18fjaydi0s5faq6f3xh"))))
+ "17vcswipliq1b2idbzx1z95kskn1a4q4s5v04igilg0f7lnkaarb"))))
(build-system ocaml-build-system)
(inputs
`(("gsl" ,gsl)))
(define-public cddlib
(package
(name "cddlib")
- (version "0.94h")
+ (version "0.94i")
(source
(origin
(method url-fetch)
(string-delete #\. version) ".tar.gz"))
(sha256
(base32
- "1dasasscwfg793q8fwzgwf64xwj7w62yfvszpr8x8g38jka08vgy"))))
+ "00zdgiqb91vx6gd2103h3ijij0llspsxc6zz3iw2bll39fvkl4xq"))))
(build-system gnu-build-system)
(inputs
`(("gmp" ,gmp)))
(define-public arpack-ng
(package
(name "arpack-ng")
- (version "3.5.0")
+ (version "3.6.3")
(home-page "https://github.com/opencollab/arpack-ng")
- (source
- (origin
- (method url-fetch)
- (uri (string-append home-page "/archive/" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0f8jx3fifmj9qdp289zr7r651y1q48k1jya859rqxq62mvis7xsh"))))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page) (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wljl96yqxc9v8r49c37lscwkdp58kaacfb9p6s6nvpm31haax4y"))))
(build-system gnu-build-system)
- (arguments
- '(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'autoreconf
- (lambda _
- (invoke "autoreconf" "-vfi"))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
(inputs
`(("mpi" ,openmpi)
,@(package-inputs arpack-ng)))
- (arguments `(#:configure-flags '("--enable-mpi")))
+ (arguments
+ (substitute-keyword-arguments (package-arguments arpack-ng)
+ ((#:configure-flags _ '())
+ ''("--enable-mpi"))
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup)))))
(synopsis "Fortran subroutines for solving eigenvalue problems with MPI")))
(define-public lapack
(license (license:non-copyleft "file://LICENSE"
"See LICENSE in the distribution."))))
-(define-public lapack-3.5
- (package
- (inherit lapack)
- (version "3.5.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "http://www.netlib.org/lapack/lapack-"
- version ".tgz"))
- (sha256
- (base32
- "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s"))))))
-
(define-public scalapack
(package
(name "scalapack")
("fortran" ,gfortran)
("lapack" ,lapack))) ;for testing only
(arguments
- `(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES")))
+ `(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES")
+ #:phases (modify-phases %standard-phases
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup))))
(home-page "http://www.netlib.org/scalapack/")
(synopsis "Library for scalable numerical linear algebra")
(description
(define-public gnuplot
(package
(name "gnuplot")
- (version "5.0.6")
+ (version "5.2.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gnuplot/gnuplot/"
version ".tar.gz"))
(sha256
(base32
- "0q5lr6nala3ln6f3yp6g17ziymb9r9gx9zylnw1y3hjmwl9lggjv"))))
+ "1jvh8xmd2cvrhlsg88kxwh55wkwx31sg50v1n59slfippl0g058m"))))
(build-system gnu-build-system)
(inputs `(("readline" ,readline)
("cairo" ,cairo)
(native-inputs
`(("pkg-config" ,pkg-config)
("texlive" ,texlive-tiny)))
+ (arguments `(#:configure-flags (list (string-append
+ "--with-texdir=" %output
+ "/texmf-local/tex/latex/gnuplot"))))
(home-page "http://www.gnuplot.info")
(synopsis "Command-line driven graphing utility")
(description "Gnuplot is a portable command-line driven graphing
(for-each delete-file
(list "SZip.tar.gz" "ZLib.tar.gz" "JPEG8d.tar.gz"
"HDF4.tar.gz" "HDF5.tar.gz"))
- (delete-file-recursively ,(string-append "hdfjava-" version "/lib"))))))
+ (delete-file-recursively ,(string-append "hdfjava-" version "/lib"))
+ #t))))
(build-system gnu-build-system)
(native-inputs
`(("jdk" ,icedtea "jdk")
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
- '(delete-file-recursively "ThirdParty"))))
+ '(begin
+ (delete-file-recursively "ThirdParty")
+ #t))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(define-public ceres
(package
(name "ceres-solver")
- (version "1.13.0")
+ (version "1.14.0")
(home-page "http://ceres-solver.org/")
(source (origin
(method url-fetch)
version ".tar.gz"))
(sha256
(base32
- "1kbxgab3q1vgyq7hjqasr1lji4b2sgn7ss351amklkb3jyhr1x0x"))))
+ "13lfxy8x58w8vprr0nkbzziaijlh0vvqshgahvcgw0mrqdgh0i27"))))
(build-system cmake-build-system)
(arguments
;; TODO: Build HTML user documentation and install separately.
@end enumerate\n")
(license license:bsd-3)))
-;; For a fully featured Octave, users are strongly recommended also to install
+;; For a fully featured Octave, users are strongly recommended also to install
;; the following packages: less, ghostscript, gnuplot.
(define-public octave
(package
(name "octave")
- (version "4.2.2")
+ (version "4.4.1")
(source
(origin
(method url-fetch)
version ".tar.lz"))
(sha256
(base32
- "0pkkz1vazsh7ipffb09q0nc2jgx6q27pkkngygjij6jrpcly5zsp"))))
+ "0jsdgizlv02an2ppfjwk5qf209zpwi3317yb7jvlsjzxnir3lvhy"))))
(build-system gnu-build-system)
(inputs
`(("lapack" ,lapack)
+ ("qhull" ,qhull)
("readline" ,readline)
("gl2ps" ,gl2ps)
("glpk" ,glpk)
("zlib" ,zlib)
("curl" ,curl)
("texinfo" ,texinfo)
- ("graphicsmagick" ,graphicsmagick)))
+ ("graphicsmagick" ,graphicsmagick)
+ ("suitesparse" ,suitesparse)
+ ("libsndfile" ,libsndfile)
+ ("portaudio" ,portaudio)
+ ("alsa-lib" ,alsa-lib)))
(native-inputs
`(("lzip" ,lzip)
("gfortran" ,gfortran)
script files.")
(license license:gpl3+)))
+(define-public qtoctave
+ (package (inherit octave)
+ (name "qtoctave")
+ (source (origin
+ (inherit (package-source octave))))
+ (inputs
+ `(("qscintilla" ,qscintilla)
+ ("qt" ,qtbase)
+ ,@(package-inputs octave)))
+ (native-inputs
+ `(("qttools" , qttools) ;for lrelease
+ ("texlive" ,texlive) ;for texi2dvi
+ ,@(package-native-inputs octave)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments octave)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'configure 'patch-qscintilla-library-name
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The QScintilla library that the Octave configure script tries
+ ;; to link with should be named libqscintilla-qt5.so, but the
+ ;; QScintilla input provides the shared library as
+ ;; libqscintilla2_qt5.so.
+ (substitute* "configure"
+ (("qscintilla2-qt5")
+ "qscintilla2_qt5"))
+ #t))))))))
+
(define-public opencascade-oce
(package
(name "opencascade-oce")
(modules '((guix build utils)))
(snippet
;; Remove non-free METIS code
- '(delete-file-recursively "contrib/Metis"))))
+ '(begin
+ (delete-file-recursively "contrib/Metis")
+ #t))))
(build-system cmake-build-system)
(propagated-inputs
`(("fltk" ,fltk)
(define-public petsc
(package
(name "petsc")
- (version "3.8.0")
+ (version "3.9.3")
(source
(origin
(method url-fetch)
(uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/"
"petsc-lite-" version ".tar.gz"))
(sha256
- (base32 "1lajbk3c29hnh83v6cbmm3a8wv6bdykh0p70kwrr4vrnizalk88s"))))
+ (base32 "1fwkbwv4g7zf2lc8fw865xd0bl9anb6jaczfis5dff7h449gwa48"))))
+ (outputs '("out" ;libraries and headers
+ "examples")) ;~30MiB of examples
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2)))
#:configure-flags
`("--with-mpi=0"
"--with-openmp=1"
- "--with-superlu=1"
- ,(string-append "--with-superlu-include="
- (assoc-ref %build-inputs "superlu") "/include")
- ,(string-append "--with-superlu-lib="
- (assoc-ref %build-inputs "superlu") "/lib/libsuperlu.a"))
+ "--with-superlu=1")
#:make-flags
;; Honor (parallel-job-count) for build. Do not use --with-make-np,
;; whose value is dumped to $out/lib/petsc/conf/petscvariables.
,@configure-flags)))
(format #t "build directory: ~s~%" (getcwd))
(format #t "configure flags: ~s~%" flags)
- (zero? (apply system* "./configure" flags)))))
+ (apply invoke "./configure" flags))))
(add-after 'configure 'clean-local-references
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
"PETScBuildInternal.cmake"
;; Once installed, should uninstall with Guix
"uninstall.py"))
+ #t)))
+ (add-after 'install 'move-examples
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (examples (assoc-ref outputs "examples"))
+ (exdir (string-append out "/share/petsc/examples"))
+ (exdir' (string-append examples "/share/petsc/examples")))
+ (copy-recursively exdir exdir')
+ (delete-file-recursively exdir)
#t))))))
(home-page "http://www.mcs.anl.gov/petsc")
(synopsis "Library to solve PDEs")
(name "petsc-openmpi")
(inputs
`(("openmpi" ,openmpi)
+ ("hdf5" ,hdf5-parallel-openmpi)
,@(package-inputs petsc)))
(arguments
(substitute-keyword-arguments (package-arguments petsc)
``("--with-mpiexec=mpirun"
,(string-append "--with-mpi-dir="
(assoc-ref %build-inputs "openmpi"))
- ,@(delete "--with-mpi=0" ,cf)))))
+ ,(string-append "--with-hdf5-include="
+ (assoc-ref %build-inputs "hdf5") "/include")
+ ,(string-append "--with-hdf5-lib="
+ (assoc-ref %build-inputs "hdf5") "/lib/libhdf5.a")
+ ,@(delete "--with-mpi=0" ,cf)))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup)))))
(synopsis "Library to solve PDEs (with MPI support)")))
(define-public petsc-complex-openmpi
,@(delete "--with-mpi=0" ,cf)))))
(synopsis "Library to solve PDEs (with complex scalars and MPI support)")))
+
+(define-public python-kiwisolver
+ (package
+ (name "python-kiwisolver")
+ (version "1.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "kiwisolver" version))
+ (sha256
+ (base32
+ "0y22ci86znwwwfhbmvbgdfnbi6lv5gv2xkdlxvjw7lml43ayafyf"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/nucleic/kiwi")
+ (synopsis "Fast implementation of the Cassowary constraint solver")
+ (description
+ "Kiwi is an efficient C++ implementation of the Cassowary constraint
+solving algorithm. Kiwi has been designed from the ground up to be
+lightweight and fast. Kiwi ranges from 10x to 500x faster than the original
+Cassowary solver with typical use cases gaining a 40x improvement. Memory
+savings are consistently > 5x.")
+ (license license:bsd-3)))
+
+(define-public python2-kiwisolver
+ (package-with-python2 python-kiwisolver))
+
(define-public slepc
(package
(name "slepc")
- (version "3.8.2")
+ (version "3.9.2")
(source
(origin
(method url-fetch)
version ".tar.gz"))
(sha256
(base32
- "04zd48p43rnvg68p6cp28zll0px5whglc5v0sc3s6vdj1v920z8y"))))
+ "0gmhdqac8zm3jx43h935z7bflazjnpvqxjv4jh5za2y1z2rqax94"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2)))
;; documentation is difficult.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
- (for-each delete-file (find-files out "\\.html$")))))
+ (for-each delete-file (find-files out "\\.html$"))
+ #t)))
(add-after 'install 'clean-install
;; Clean up unnecessary build logs from installation.
(lambda* (#:key outputs #:allow-other-keys)
(delete-file f))))
'("configure.log" "make.log" "gmake.log"
"test.log" "error.log" "RDict.db"
- "uninstall.py"))))))))
+ "uninstall.py"))
+ #t))))))
(home-page "http://slepc.upv.es")
(synopsis "Scalable library for eigenproblems")
(description "SLEPc is a software library for the solution of large sparse
(define-public slepc-openmpi
(package (inherit slepc)
(name "slepc-openmpi")
+ (arguments
+ (substitute-keyword-arguments (package-arguments slepc)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup)))))
(inputs
`(("mpi" ,openmpi)
("arpack" ,arpack-ng-openmpi)
(define-public mumps
(package
(name "mumps")
- (version "5.0.2")
+ (version "5.1.2")
(source
(origin
(method url-fetch)
version ".tar.gz"))
(sha256
(base32
- "0igyc1pfzxdhpbad3v3lb86ixkdbqa1a8gbs15b04r2294h2nabp"))
+ "1s9asin08zqzmh08257sdghhivvy9vjif7c53fhaxaax2kd5qd7b"))
(patches (search-patches "mumps-build-parallelism.patch"))))
(build-system gnu-build-system)
(inputs
;; By default only the d-precision library is built. Make with "all"
;; target so that all precision libraries and examples are built.
(lambda _
- (zero? (system* "make" "all"
- (format #f "-j~a" (parallel-job-count))))))
+ (invoke "make" "all"
+ (format #f "-j~a" (parallel-job-count)))))
(replace 'check
;; Run the simple test drivers, which read test input from stdin:
;; from the "real" input for the single- and double-precision
(substitute-keyword-arguments (package-arguments mumps)
((#:phases phases)
`(modify-phases ,phases
- (replace
- 'check
- (lambda _
- ((assoc-ref ,phases 'check)
- #:exec-prefix '("mpirun" "-n" "2"))))))))
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup)
+ (replace 'check
+ (lambda _
+ ((assoc-ref ,phases 'check)
+ #:exec-prefix '("mpirun" "-n" "2"))))))))
(synopsis "Multifrontal sparse direct solver (with MPI)")))
(define-public mumps-metis-openmpi
(define-public r-pracma
(package
(name "r-pracma")
- (version "2.1.4")
+ (version "2.1.5")
(source (origin
(method url-fetch)
(uri (cran-uri "pracma" version))
(sha256
- (base32 "1ygm81i7mqvh229dp9935djjyb120p3bqvaf4k572sa4q63fzjhc"))))
+ (base32 "18cv7c2gvagbmggfbsy2xk9bpn47izd0qrmqnc3q7afvj6pr6nf9"))))
(build-system r-build-system)
(propagated-inputs
`(("r-quadprog" ,r-quadprog)))
(let ((line (read-line in 'concat)))
(unless (regexp-exec rx line)
(display line out)
- (loop)))))))))))
+ (loop))))
+ #t)))))))
(build-system cmake-build-system)
(native-inputs
`(("tcsh" ,tcsh)))
(define-public superlu-dist
(package
(name "superlu-dist")
- (version "3.3")
+ (version "5.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/"
"superlu_dist_" version ".tar.gz"))
(sha256
- (base32 "1hnak09yxxp026blq8zhrl7685yip16svwngh1wysqxf8z48vzfj"))
- (modules '((guix build utils)))
+ (base32 "0ja5ihqivkda1wd58y4lmzvmwssm9g91f70c5q0fzwhng6580h6y"))
+ (modules '((guix build utils)))
(snippet
;; Replace the non-free implementation of MC64 with a stub
'(begin
(use-modules (ice-9 regex)
(ice-9 rdelim))
- (call-with-output-file "SRC/mc64ad.c"
+ (call-with-output-file "SRC/mc64ad_dist.c"
(lambda (port)
(display "
#include <stdio.h>
#include <stdlib.h>
-void mc64id_(int *a) {
+void mc64id_dist(int *a) {
fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available. Aborting.\\n\");
abort ();
}
-void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
+void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
int *h, int *i, int *j, int *k, double *l, int *m, int *n) {
fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available. Aborting.\\n\");
abort ();
}\n" port)))
- (delete-file "SRC/mc64ad.f.bak")
(substitute* "SRC/util.c" ;adjust default algorithm
(("RowPerm[[:blank:]]*=[[:blank:]]*LargeDiag")
- "RowPerm = NOROWPERM"))))
+ "RowPerm = NOROWPERM"))
+ #t))
(patches (search-patches "superlu-dist-scotchmetis.patch"))))
(build-system gnu-build-system)
(native-inputs
"/" dir)))
'("lib" "include"))
#t))
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup)
(replace 'check
(lambda _
(with-directory-excursion "EXAMPLE"
- (and
- (zero? (system* "mpirun" "-n" "2"
- "./pddrive" "-r" "1" "-c" "2" "g20.rua"))
- (zero? (system* "mpirun" "-n" "2"
- "./pzdrive" "-r" "1" "-c" "2" "cg20.cua"))))))
+ (invoke "mpirun" "-n" "2"
+ "./pddrive" "-r" "1" "-c" "2" "g20.rua")
+ (invoke "mpirun" "-n" "2"
+ "./pzdrive" "-r" "1" "-c" "2" "cg20.cua"))
+ #t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
;; Library is placed in lib during the build phase. Copy over
(define-public scotch
(package
(name "scotch")
- (version "6.0.4")
+ (version "6.0.5a")
(source
(origin
(method url-fetch)
- (uri (string-append "https://gforge.inria.fr/frs/download.php/34618/"
- "scotch_" version ".tar.gz"))
+ (uri (string-append "https://gforge.inria.fr/frs/download.php/"
+ "latestfile/298/scotch_" version ".tar.gz"))
(sha256
- (base32 "1ir088mvrqggyqdkx9qfynmiaffqbyih5qfl5mga2nrlm1qlsgzm"))
+ (base32 "0vsmgjz8qv80di3ljmc7hbdsizxxxwy2b9rgd2fl1mdc6dgbj8av"))
(patches (search-patches "scotch-test-threading.patch"
- "pt-scotch-build-parallelism.patch"))))
+ "scotch-build-parallelism.patch"
+ "scotch-graph-induce-type-64.patch"
+ "scotch-graph-diam-64.patch"))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)
(modify-phases %standard-phases
(add-after
'unpack 'chdir-to-src
- (lambda _ (chdir "src")))
+ (lambda _ (chdir "src") #t))
(replace
'configure
(lambda _
;; XXX: Causes invalid frees in superlu-dist tests
;; "SCOTCH_PTHREAD"
;; "SCOTCH_PTHREAD_NUMBER=2"
- "restrict=__restrict"))))))
- (add-after
- 'build 'build-esmumps
+ "restrict=__restrict"))))
+ #t))
+ (add-after 'build 'build-esmumps
(lambda _
- (zero? (system* "make"
- (format #f "-j~a" (parallel-job-count))
- "esmumps"))))
+ (invoke "make"
+ (format #f "-j~a" (parallel-job-count))
+ "esmumps")))
(replace
'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(mkdir out)
- (zero? (system* "make"
- (string-append "prefix=" out)
- "install"))
+ (invoke "make"
+ (string-append "prefix=" out)
+ "install")
;; esmumps files are not installed with the above
(for-each (lambda (f)
(copy-file f (string-append out "/include/" f)))
(find-files "../include" ".*esmumps.h$"))
(for-each (lambda (f)
(copy-file f (string-append out "/lib/" f)))
- (find-files "../lib" "^lib.*esmumps.*"))))))))
+ (find-files "../lib" "^lib.*esmumps.*"))
+ #t))))))
(home-page "http://www.labri.fr/perso/pelegrin/scotch/")
(synopsis "Programs and libraries for graph algorithms")
(description "SCOTCH is a set of programs and libraries which implement
" -lopenblas")
,(string-append "LAPACK_LIBS=-L"
(assoc-ref %build-inputs "lapack")
- " -llapack"))))
+ " -llapack"))
+ #:phases (modify-phases %standard-phases
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup))))
(home-page "http://www.p4est.org")
(synopsis "Adaptive mesh refinement on forests of octrees")
(description
(define-public armadillo
(package
(name "armadillo")
- (version "7.800.2")
+ (version "9.100.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/arma/armadillo-"
version ".tar.xz"))
(sha256
(base32
- "1qqzy7dp891j9v7062mv1599hdwr97vqzrd3j2fl8c3gmc00dmzg"))))
+ "1ka1vd9fcmvp12qkcm4888dkfqwnalvv00x04wy29f3nx3qwczby"))))
(build-system cmake-build-system)
- (arguments `(#:tests? #f)) ;no test target
+ (arguments `(#:tests? #f)) ; no test target
(inputs
`(("openblas" ,openblas)
("lapack" ,lapack)
(define-public openblas
(package
(name "openblas")
- (version "0.2.20")
+ (version "0.3.2")
(source
(origin
(method url-fetch)
- (uri (string-append "https://github.com/xianyi/OpenBLAS/tarball/v"
- version))
+ (uri (string-append "mirror://sourceforge/openblas/v" version "/OpenBLAS%20"
+ version "%20version.tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1bd03c5xni0bla0wg1wba841b36b0sg13sjja955kn5xzvy4i61a"))))
+ "0b20km2jv7m6qiylrlvhq2vnmkmilb633mr8rhqmgbn1wqrp58jq"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
"OpenBLAS is a BLAS library forked from the GotoBLAS2-1.13 BSD version.")
(license license:bsd-3)))
+(define-public openblas-ilp64
+ (package (inherit openblas)
+ (name "openblas-ilp64")
+ (supported-systems '("x86_64-linux" "aarch64-linux" "mips64el-linux"))
+ (arguments
+ (substitute-keyword-arguments (package-arguments openblas)
+ ((#:make-flags flags '())
+ `(append (list "INTERFACE64=1" "LIBNAMESUFFIX=ilp64")
+ ,flags))))
+ (synopsis "Optimized BLAS library based on GotoBLAS (ILP64 version)")
+ (license license:bsd-3)))
+
(define* (make-blis implementation #:optional substitutable?)
"Return a BLIS package with the given IMPLEMENTATION (see config/ in the
source tree for a list of implementations.)
(define-public openlibm
(package
(name "openlibm")
- (version "0.5.1")
+ (version "0.6.0")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "11czx2z7nh6dfpz45s3xl7v38hw36jxzxfvny454bk3if14pfakq"))))
+ "0a5fpm8nra5ldhjk0cqd2rx1qh32wiarkxmcqcm5xl8z7l4kjm6l"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(modules '((guix build utils)))
(snippet
;; Remove bundled metis source
- '(delete-file-recursively "metis-5.1.0"))))
+ '(begin
+ (delete-file-recursively "metis-5.1.0")
+ #t))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ;no "check" target
(define-public glm
(package
(name "glm")
- (version "0.9.6.3")
+ (version "0.9.9.1")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/ogl-math/glm-" version
- "/glm-" version ".zip"))
+ (uri (string-append "https://github.com/g-truc/glm/releases/download/"
+ version "/glm-" version ".zip"))
(sha256
(base32
- "1cnjmi033a16a95v6xfkr1bvfmkd26hzdjka8j1819hgn5b1nr8l"))))
+ "042a23hmxfs429czkmlg5ixf28aikzfbw18780prj2gcd4flgw8h"))))
(build-system cmake-build-system)
(native-inputs
`(("unzip" ,unzip)))
- (home-page "http://glm.g-truc.net")
+ (home-page "https://glm.g-truc.net/")
(synopsis "OpenGL Mathematics library")
(description "OpenGL Mathematics (GLM) is a header-only C++ mathematics
library for graphics software based on the OpenGL Shading Language (GLSL)
"12pj1idjz31r7c2mb5w03vy1cmvycvbkx9z29s40qdmkp1i7q6i0"))
(modules '((guix build utils)))
(snippet
- '(substitute* (list "lp_solve/ccc" "lpsolve55/ccc")
- (("^c=cc") "c=gcc")
- ;; Pretend to be on a 64 bit platform to obtain a common directory
- ;; name for the build results on all architectures; nothing else
- ;; seems to depend on it.
- (("^PLATFORM=.*$") "PLATFORM=ux64\n")
-
- ;; The check for 'isnan' as it is written fails with
- ;; "non-floating-point argument in call to function
- ;; ‘__builtin_isnan’", which leads to the 'NOISNAN' cpp macro
- ;; definition, which in turn leads to bad things. Fix the feature
- ;; test.
- (("isnan\\(0\\)") "isnan(0.)")))))
+ '(begin
+ (substitute* (list "lp_solve/ccc" "lpsolve55/ccc")
+ (("^c=cc") "c=gcc")
+ ;; Pretend to be on a 64 bit platform to obtain a common directory
+ ;; name for the build results on all architectures; nothing else
+ ;; seems to depend on it.
+ (("^PLATFORM=.*$") "PLATFORM=ux64\n")
+
+ ;; The check for 'isnan' as it is written fails with
+ ;; "non-floating-point argument in call to function
+ ;; ‘__builtin_isnan’", which leads to the 'NOISNAN' cpp macro
+ ;; definition, which in turn leads to bad things. Fix the feature
+ ;; test.
+ (("isnan\\(0\\)") "isnan(0.)"))
+ #t))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
(modules '((guix build utils)))
(snippet
;; Remove bundled sources: UMFPACK, TBB, muParser, and boost
- '(delete-file-recursively "bundled"))))
+ '(begin
+ (delete-file-recursively "bundled")
+ #t))))
(build-system cmake-build-system)
(inputs
`(("tbb" ,tbb)
version "-src.zip"))
(sha256
(base32
- "022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz"))))
+ "022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz"))
+ (patches (search-patches "flann-cmake-3.11.patch"))))
(build-system cmake-build-system)
(outputs '("out"
"octave")) ;46 MiB .mex file that pulls Octave
(define-public hypre
(package
(name "hypre")
- (version "2.11.0")
+ (version "2.14.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/LLNL/hypre/archive/"
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0q69ia0jivzcr8p049dn3mg8yjpn6nwq4sw9iqac8vr63vi54l6m"))
+ "0v515i73bvaz378h5465b1dy9v2gf924zy2q94cpq4qqarawvkqh"))
(modules '((guix build utils)))
(snippet
'(begin
;; substitute the tarball creation time.
(substitute* "src/utilities/HYPRE_utilities.h"
(("Date Compiled: .*$")
- "Date Compiled: Mar 28 2016 20:19:59 +0000\"\n"))
+ "Date Compiled: Apr 11 2018 16:24:59 +0000\"\n"))
#t))))
(build-system gnu-build-system)
(outputs '("out" ;6.1 MiB of headers and libraries
(native-inputs
`(("doc++" ,doc++)
("netpbm" ,netpbm)
+ ("perl" ,perl) ;needed to run 'ppmquant' during tests
("texlive" ,texlive) ;full package required for fonts
("ghostscript" ,ghostscript)))
(inputs
(substitute-keyword-arguments (package-arguments hypre)
((#:configure-flags flags)
``("--with-MPI"
- ,@(delete "--without-MPI" ,flags)))))
+ ,@(delete "--without-MPI" ,flags)))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup)))))
(synopsis "Parallel solvers and preconditioners for linear equations")
(description
"HYPRE is a software library of high performance preconditioners and
(build-system cmake-build-system)
(arguments
'(#:configure-flags
- '("-DBUILD_TESTING=ON")))
+ '("-DBUILD_TESTING=ON"
+ ;; By default, Vc will optimize for the CPU of the build machine.
+ ;; Setting this to "none" makes it create portable binaries. See
+ ;; "cmake/OptimizeForArchitecture.cmake".
+ "-DTARGET_ARCHITECTURE=none")))
(synopsis "SIMD vector classes for C++")
(description "Vc provides portable, zero-overhead C++ types for explicitly
data-parallel programming. It is a library designed to ease explicit
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DGFORTRAN_LIB=gfortran")
#:phases (modify-phases %standard-phases
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup)
(add-before 'check 'setup-tests
(lambda _
;; Parallelism is done at the MPI layer.
`(("boost" ,boost)
("glu" ,glu)
("mesa" ,mesa)
- ("qt" ,qt)))
+ ("qtbase" ,qtbase)))
(build-system cmake-build-system)
(synopsis "Toolset for the mCRL2 formal specification language")
(description
state-space exploration and generation, and tools to optimise and analyse
specifications. Also, state spaces can be manipulated, visualised and
analysed.")
- (home-page "http://mcrl2.org")
+ (home-page "https://mcrl2.org")
(license license:boost1.0)))
(define-public r-subplex
(package
(name "r-subplex")
- (version "1.5-2")
+ (version "1.5-4")
(source
(origin
(method url-fetch)
(uri (cran-uri "subplex" version))
(sha256
(base32
- "1v9xrnkapnq7v1jbhlg32ignklzf2vn8rqpayc8pzk8wvz53r33g"))))
+ "10cbgbx1bgsax5z7gz6716g360xpq4mvq19cf4qqrxv02mmwz57z"))))
(build-system r-build-system)
(native-inputs
`(("gfortran" ,gfortran)))
(define-public r-desolve
(package
(name "r-desolve")
- (version "1.20")
+ (version "1.21")
(source
(origin
(method url-fetch)
(uri (cran-uri "deSolve" version))
(sha256
(base32
- "18nx3maww979a8p8ly4hv63y65mnjx8vbj2fpipd6rhcbf1lbsan"))))
+ "0qqc4mknw1jblzcmph1dg3k1p6w42yal0k1xjh8pqk7yb3a75hs5"))))
(properties `((upstream-name . "deSolve")))
(build-system r-build-system)
(native-inputs
differential equations (PDE) that have been converted to ODEs by numerical
differencing.")
(license license:gpl2+)))
+
+(define-public tcalc
+ (package
+ (name "tcalc")
+ (version "2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://sites.google.com/site/mohammedisam2000/tcalc/tcalc-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0jq806m4dqfia85nppfm75mml9w57g0cgv4cdw9bp3zymda83s0m"))))
+ (build-system gnu-build-system)
+ (synopsis "The terminal calculator")
+ (description
+ "The terminal calculator is a small program to help users of the GNU/Linux
+terminal do calculations simply and quickly. The formula to be calculated can
+be fed to @command{tcalc} through the command line.")
+ (home-page "https://sites.google.com/site/mohammedisam2000/tcalc")
+ (license license:gpl3+)))
+
+(define-public sundials
+ (package
+ (name "sundials")
+ (version "3.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://computation.llnl.gov/projects/sundials/download/"
+ "sundials-" version ".tar.gz"))
+ (sha256
+ (base32
+ "090s8ymhd0g1s1d44fa73r5yi32hb4biwahhbfi327zd64yn8kd2"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("python" ,python-2))) ;for tests; syntax incompatible with python 3
+ (inputs
+ `(("fortran" ,gfortran) ;for fcmix
+ ("blas" ,openblas)
+ ("suitesparse" ,suitesparse))) ;TODO: Add hypre
+ (arguments
+ `(#:configure-flags `("-DEXAMPLES_ENABLE_C:BOOL=ON"
+ "-DEXAMPLES_ENABLE_CXX:BOOL=ON"
+ "-DEXAMPLES_ENABLE_F77:BOOL=ON"
+ "-DEXAMPLES_ENABLE_F90:BOOL=ON"
+ "-DEXAMPLES_INSTALL:BOOL=OFF"
+
+ "-DFCMIX_ENABLE:BOOL=ON"
+
+ "-DKLU_ENABLE:BOOL=ON"
+ ,(string-append "-DKLU_INCLUDE_DIR="
+ (assoc-ref %build-inputs "suitesparse")
+ "/include")
+ ,(string-append "-DKLU_LIBRARY_DIR="
+ (assoc-ref %build-inputs "suitesparse")
+ "/lib"))))
+ (home-page "https://computation.llnl.gov/projects/sundials")
+ (synopsis "Suite of nonlinear and differential/algebraic equation solvers")
+ (description "SUNDIALS is a family of software packages implemented with
+the goal of providing robust time integrators and nonlinear solvers that can
+easily be incorporated into existing simulation codes.")
+ (license license:bsd-3)))
+
+(define-public sundials-openmpi
+ (package (inherit sundials)
+ (name "sundials-openmpi")
+ (inputs
+ `(("mpi" ,openmpi)
+ ("petsc" ,petsc-openmpi) ;support in SUNDIALS requires MPI
+ ,@(package-inputs sundials)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sundials)
+ ((#:configure-flags flags '())
+ `(cons* "-DMPI_ENABLE:BOOL=ON"
+ "-DPETSC_ENABLE:BOOL=ON"
+ (string-append "-DPETSC_INCLUDE_DIR="
+ (assoc-ref %build-inputs "petsc")
+ "/include")
+ (string-append "-DPETSC_LIBRARY_DIR="
+ (assoc-ref %build-inputs "petsc")
+ "/lib")
+ ,flags))
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup)))))
+ (synopsis "SUNDIALS with OpenMPI support")))