X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/3d82676919b952d0a7e205fa5da6320b1cf21e21..8a4d14fa71d949fea8bf0cc61d4d24503246b423:/gnu/packages/maths.scm diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 84b8395a4c..d479472898 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -12,9 +12,11 @@ ;;; Copyright © 2015 Fabian Harfert ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016 Kei Kebreau -;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2016, 2017 Ludovic Courtès ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016 Thomas Danckaert +;;; Copyright © 2017 Paul Garlick +;;; Copyright © 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,6 +39,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build utils) #:use-module (guix build-system cmake) @@ -227,14 +230,14 @@ semiconductors.") (define-public gsl (package (name "gsl") - (version "2.2.1") + (version "2.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gsl/gsl-" version ".tar.gz")) (sha256 (base32 - "095hp01d8lkqdvv0p1k25kvbisgfdmvx1rzpyc2i8kl2n33kvlhk")) + "1yxdzqjwmi2aid650fa9zyr8llw069x7lm489wx9nnfdi6vh09an")) (patches (search-patches "gsl-test-i686.patch")))) (build-system gnu-build-system) (arguments @@ -252,7 +255,7 @@ numbers.") (define-public glpk (package (name "glpk") - (version "4.60") + (version "4.61") (source (origin (method url-fetch) @@ -260,13 +263,13 @@ numbers.") version ".tar.gz")) (sha256 (base32 - "15z2ymzqhxwss6wgdj5f7vkyqlqdsjgrvm0x871kmlx0n0664mhk")))) + "1adbvwiaqrv9pql9ry3lhn2vfsxnff2vh4fs477d90kpfx0xwrlq")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp))) (arguments `(#:configure-flags '("--with-gmp"))) - (home-page "http://www.gnu.org/software/glpk/") + (home-page "https://www.gnu.org/software/glpk/") (synopsis "GNU Linear Programming Kit, supporting the MathProg language") (description "GLPK is a C library for solving large-scale linear programming (LP), @@ -425,40 +428,35 @@ singular value problems.") "See LICENSE in the distribution.")))) (define-public gnuplot - ;; Gnuplot version 5.0.4 was updated in-place, resulting in a hash mismatch. - ;; This can be removed at the next version update. - (let ((upstream-version "5.0.4") - (guix-revision "1")) - (package - (name "gnuplot") - (version (string-append upstream-version "-" guix-revision)) - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/" - upstream-version "/gnuplot-" - upstream-version ".tar.gz")) - (sha256 - (base32 - "07n3w12dkcxjnhsvsliaqnkhajhi818v6q8mkpmpbplbf92vh70m")))) - (build-system gnu-build-system) - (inputs `(("readline" ,readline) - ("cairo" ,cairo) - ("pango" ,pango) - ("gd" ,gd))) - (native-inputs `(("pkg-config" ,pkg-config) - ("texlive" ,texlive-minimal))) - (home-page "http://www.gnuplot.info") - (synopsis "Command-line driven graphing utility") - (description "Gnuplot is a portable command-line driven graphing + (package + (name "gnuplot") + (version "5.0.5") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/" + version "/gnuplot-" + version ".tar.gz")) + (sha256 + (base32 + "0lr065qdlgss8lmy31l7hkmnk9fp4lvqq9qgb1f1209f36zy1wr5")))) + (build-system gnu-build-system) + (inputs `(("readline" ,readline) + ("cairo" ,cairo) + ("pango" ,pango) + ("gd" ,gd))) + (native-inputs `(("pkg-config" ,pkg-config) + ("texlive" ,texlive-minimal))) + (home-page "http://www.gnuplot.info") + (synopsis "Command-line driven graphing utility") + (description "Gnuplot is a portable command-line driven graphing utility. It was originally created to allow scientists and students to visualize mathematical functions and data interactively, but has grown to support many non-interactive uses such as web scripting. It is also used as a plotting engine by third-party applications like Octave.") - ;; X11 Style with the additional restriction that derived works may only be - ;; distributed as patches to the original. - (license (license:fsf-free - "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright"))))) + ;; X11 Style with the additional restriction that derived works may only be + ;; distributed as patches to the original. + (license (license:fsf-free + "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright")))) (define-public gctp (package @@ -489,14 +487,14 @@ computations.") (define-public hdf4 (package (name "hdf4") - (version "4.2.11") + (version "4.2.12") (source (origin (method url-fetch) (uri (string-append "https://support.hdfgroup.org/ftp/HDF/releases/HDF" version "/src/hdf-" version ".tar.bz2")) (sha256 - (base32 "16yr50j845zlfx20skmw3y75ww77akk9gg0affjqkg66ih5r03mv")) + (base32 "020jh563sjyxsgml8l809d2i1d4ms9shivwj3gbm7n0ilxbll8id")) (patches (search-patches "hdf4-architectures.patch" "hdf4-reproducibility.patch" "hdf4-shared-fortran.patch")))) @@ -549,21 +547,29 @@ incompatible with HDF5.") (define-public hdf5 (package (name "hdf5") - (version "1.8.17") + (version "1.8.18") (source (origin (method url-fetch) - (uri (string-append "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" - version "/src/hdf5-" - version ".tar.bz2")) + (uri (list (string-append "http://www.hdfgroup.org/ftp/HDF5/releases/" + "hdf5-" version "/src/hdf5-" + version ".tar.bz2") + (string-append "https://support.hdfgroup.org/ftp/HDF5/" + "current" + (apply string-append + (take (string-split version #\.) 2)) + "/src/hdf5-" version ".tar.bz2"))) (sha256 - (base32 "0sj8x0gfs5fb28gipnynb9wpkz113h8wq9sva9mxx66kv27xsdgw")) + (base32 "13542vrnl1p35n8vbq0wzk40vddmm33q5nh04j98c7r1yjnxxih1")) (patches (list (search-patch "hdf5-config-date.patch"))))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) (arguments - `(#:phases + `(;; Some of the users, notably Flann, need the C++ interface. + #:configure-flags '("--enable-cxx") + + #:phases (modify-phases %standard-phases (add-before 'configure 'patch-configure (lambda _ @@ -706,7 +712,7 @@ HDF5 file is encoded according to the HDF File Format Specification.") (define-public netcdf (package (name "netcdf") - (version "4.4.0") + (version "4.4.1.1") (source (origin (method url-fetch) @@ -714,18 +720,21 @@ HDF5 file is encoded according to the HDF File Format Specification.") "netcdf-" version ".tar.gz")) (sha256 (base32 - "0y6gdcplarwqqnrav2xg1xd6ih732rzzbmdw78v3rl5b8mwcnh0d")) - (patches (list (search-patch "netcdf-config-date.patch"))))) + "1blc7ik5yin7i0ls2kag0a9xjk12m0dzx6v1x88az3ras3scci2d")) + (patches (search-patches "netcdf-date-time.patch" + "netcdf-tst_h_par.patch")))) (build-system gnu-build-system) (native-inputs `(("m4" ,m4) ("doxygen" ,doxygen) ("graphviz" ,graphviz))) (inputs - `(("hdf5" ,hdf5) - ("zlib" ,zlib))) + `(("hdf4" ,hdf4-alt) + ("hdf5" ,hdf5) + ("zlib" ,zlib) + ("libjpeg" ,libjpeg))) (arguments - `(#:configure-flags '("--enable-doxygen" "--enable-dot") + `(#:configure-flags '("--enable-doxygen" "--enable-dot" "--enable-hdf4") #:parallel-tests? #f)) ;various race conditions (home-page "http://www.unidata.ucar.edu/software/netcdf/") (synopsis "Library for scientific data") @@ -891,15 +900,15 @@ can solve two kinds of problems: (define-public octave (package (name "octave") - (version "4.0.3") + (version "4.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/octave/octave-" - version ".tar.xz")) + version ".tar.lz")) (sha256 (base32 - "11day29k4yfvxh4101x5yf26ld992x5n6qvmhjjk6mzsd26fqayw")))) + "19vvliwxgip0af812vny5xy5r8kacyj7v62203mh4z2n3p14b78i")))) (build-system gnu-build-system) (inputs `(("lapack" ,lapack) @@ -918,7 +927,8 @@ can solve two kinds of problems: ("glu" ,glu) ("zlib" ,zlib))) (native-inputs - `(("gfortran" ,gfortran) + `(("lzip" ,lzip) + ("gfortran" ,gfortran) ("pkg-config" ,pkg-config) ("perl" ,perl) ;; The following inputs are not actually used in the build process. @@ -937,7 +947,7 @@ can solve two kinds of problems: (list (string-append "--with-shell=" (assoc-ref %build-inputs "bash") "/bin/sh")))) - (home-page "http://www.gnu.org/software/octave/") + (home-page "https://www.gnu.org/software/octave/") (synopsis "High-level language for numerical computation") (description "GNU Octave is a high-level interpreted language that is specialized for numerical computations. It can be used for both linear and @@ -946,17 +956,72 @@ Work may be performed both at the interactive command-line as well as via script files.") (license license:gpl3+))) +(define-public opencascade-oce + (package + (name "opencascade-oce") + (version "0.17.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/tpaviot/oce/archive/OCE-" + version + ".tar.gz")) + (sha256 + (base32 + "0vpmnb0k5y2f7lpmwx9pg9yfq24zjvnsak5alzacncfm1hv9b6cd")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags + (list "-DOCE_TESTING:BOOL=ON" + "-DOCE_USE_TCL_TEST_FRAMEWORK:BOOL=ON" + "-DOCE_DRAW:BOOL=ON" + (string-append "-DOCE_INSTALL_PREFIX:PATH=" + (assoc-ref %outputs "out")) + "-UCMAKE_INSTALL_RPATH"))) + (inputs + `(("freetype" ,freetype) + ("glu" ,glu) + ("libxmu" ,libxmu) + ("mesa" ,mesa) + ("tcl" ,tcl) + ("tk" ,tk))) + (native-inputs + `(("python" ,python-wrapper))) + (home-page "https://github.com/tpaviot/oce") + (synopsis "Libraries for 3D modeling and numerical simulation") + (description + "Open CASCADE is a set of libraries for the development of applications +dealing with 3D CAD data or requiring industrial 3D capabilities. It includes +C++ class libraries providing services for 3D surface and solid modeling, CAD +data exchange, and visualization. It is used for development of specialized +software dealing with 3D models in design (CAD), manufacturing (CAM), +numerical simulation (CAE), measurement equipment (CMM), and quality +control (CAQ) domains. + +This is the ``Community Edition'' (OCE) of Open CASCADE, which gathers +patches, improvements, and experiments contributed by users over the official +Open CASCADE library.") + (license (list license:lgpl2.1; OCE libraries, with an exception for the + ; use of header files; see + ; OCCT_LGPL_EXCEPTION.txt + license:public-domain; files + ; src/Standard/Standard_StdAllocator.hxx and + ; src/NCollection/NCollection_StdAllocator.hxx + license:expat; file src/OpenGl/OpenGl_glext.h + license:bsd-3)))); test framework gtest + (define-public gmsh (package (name "gmsh") - (version "2.11.0") + (version "2.16.0") (source (origin (method url-fetch) - (uri (string-append "http://www.geuz.org/gmsh/src/gmsh-" + (uri (string-append "http://gmsh.info/src/gmsh-" version "-source.tgz")) (sha256 - (base32 "1ilplibvjgf7a905grpnclrvkmqy9fgrpl7xyp3w4yl1qc682v9b")) + (base32 "1slf0bfkwrcgn6296wb4qhbk4ahz6i4wfb10hnim08x05vrylag8")) (modules '((guix build utils))) (snippet ;; Remove non-free METIS code @@ -1225,7 +1290,7 @@ arising after the discretization of partial differential equations.") (define-public mumps (package (name "mumps") - (version "5.0.1") + (version "5.0.2") (source (origin (method url-fetch) @@ -1233,7 +1298,7 @@ arising after the discretization of partial differential equations.") version ".tar.gz")) (sha256 (base32 - "1820jfp3mbl7n85765v5mp6p0gzqpgr4d2lrnhwj4gl7cwp5ndah")) + "0igyc1pfzxdhpbad3v3lb86ixkdbqa1a8gbs15b04r2294h2nabp")) (patches (search-patches "mumps-build-parallelism.patch")))) (build-system gnu-build-system) (inputs @@ -1250,8 +1315,7 @@ arising after the discretization of partial differential equations.") ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases - (replace - 'configure + (replace 'configure (lambda* (#:key inputs #:allow-other-keys) (call-with-output-file "Makefile.inc" (lambda (port) @@ -1312,15 +1376,13 @@ IORDERINGSC = $(IPORD) $(IMETIS) $(ISCOTCH)" `((,ptscotch "-lptesmumps -lptscotch -lptscotcherr " "-Dptscotch"))))))))) - (replace - 'build + (replace 'build ;; 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)))))) - (replace - 'check + (replace 'check ;; Run the simple test drivers, which read test input from stdin: ;; from the "real" input for the single- and double-precision ;; testers, and from the "cmplx" input for complex-precision @@ -1343,15 +1405,15 @@ IORDERINGSC = $(IPORD) $(IMETIS) $(ISCOTCH)" (zero? (close-pipe tester))))) '("s" "d" "c" "z") '("real" "real" "cmplx" "cmplx"))))) - (replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (copy-recursively "lib" (string-append out "/lib")) - (copy-recursively "include" (string-append out "/include")) - (when (file-exists? "libseq/libmpiseq.a") - (copy-file "libseq/libmpiseq.a" - (string-append out "/lib/libmpiseq.a"))))))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (libdir (string-append out "/lib"))) + (copy-recursively "lib" libdir) + (copy-recursively "include" (string-append out "/include")) + (when (file-exists? "libseq/libmpiseq.a") + (install-file "libseq/libmpiseq.a" libdir)) + #t)))))) (home-page "http://mumps.enseeiht.fr") (synopsis "Multifrontal sparse direct solver") (description @@ -1850,7 +1912,7 @@ to BMP, JPEG or PNG image formats.") (define-public maxima (package (name "maxima") - (version "5.36.1") + (version "5.39.0") (source (origin (method url-fetch) @@ -1858,7 +1920,7 @@ to BMP, JPEG or PNG image formats.") version "-source/" name "-" version ".tar.gz")) (sha256 (base32 - "0x1rk659sn3cq0n5c90848ilzr1gb1wf0072fl6jhkdq00qgh2s0")) + "1cvignn5y6qzrby6qb885yc8zdcdqdr1d50vcvc3gapw2f0gk3zm")) (patches (search-patches "maxima-defsystem-mkdir.patch")))) (build-system gnu-build-system) (inputs @@ -1867,7 +1929,8 @@ to BMP, JPEG or PNG image formats.") ("tk" ,tk))) ;Tcl/Tk is used by 'xmaxima' (native-inputs `(("texinfo" ,texinfo) - ("perl" ,perl))) + ("perl" ,perl) + ("python" ,python))) (arguments `(#:configure-flags (list "--enable-gcl" @@ -1929,7 +1992,7 @@ point numbers.") (define-public wxmaxima (package (name "wxmaxima") - (version "16.04.2") + (version "16.12.0") (source (origin (method url-fetch) @@ -1937,7 +2000,7 @@ point numbers.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "1fpqzk1921isiqrpgpf433ldq41924qs9sy99fl1zn5661b2l73n")))) + "01kas9viqabw5id6crbhz8ahjimmv78gqzizs5hgnj9kngrgrm1h")))) (build-system gnu-build-system) (inputs `(("wxwidgets" ,wxwidgets) @@ -1987,14 +2050,14 @@ full text searching.") (define-public armadillo (package (name "armadillo") - (version "7.500.0") + (version "7.600.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/arma/armadillo-" version ".tar.xz")) (sha256 (base32 - "1x98d32cgxbzbbma2ak6c37wnbpq13xxyxyd6jjvflv748mzi9ks")))) + "0bac9y46m61zxinj51l82w06v01ra9vw7a9j6rrwdjhznkkdb437")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ;no test target (inputs @@ -2015,14 +2078,14 @@ associated functions (eg. contiguous and non-contiguous submatrix views).") (define-public armadillo-for-rcpparmadillo (package (inherit armadillo) - (version "7.500.0") + (version "7.600.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/arma/armadillo-" version ".tar.xz")) (sha256 (base32 - "1x98d32cgxbzbbma2ak6c37wnbpq13xxyxyd6jjvflv748mzi9ks")))))) + "1dxgfd2r9lbh24nszvqm2lag439s0srxaf1l86f6ww6waqm5r8zk")))))) (define-public muparser ;; When switching download sites, muparser re-issued a 2.2.5 release with a @@ -2724,7 +2787,6 @@ set.") ;; Custom install because docs/Makefile doesn't honor ${docdir}. (let* ((doc (assoc-ref outputs "doc")) (docdir (string-append doc "/share/doc/hypre-" ,version))) - (mkdir-p docdir) (with-directory-excursion "docs" (for-each (lambda (base) (install-file (string-append base ".pdf") docdir) @@ -2836,3 +2898,46 @@ instruction sets. Thus, an application written with Vc can be compiled for: @end enumerate\n") (home-page "https://github.com/VcDevel/Vc") (license license:bsd-3))) + +(define-public reducelcs + ;; This is the last commit which is available upstream, no + ;; release happened since 2010. + (let ((commit "474f88deb968061abe8cf11c959e02319b8ae5c0") + (revision "1")) + (package + (name "reducelcs") + (version (string-append "1.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gdv/Reduce-Expand-for-LCS") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1rllzcfwc042c336mhq262a8ha90x6afq30kvk60r7i4761j4yjm")))) + (build-system gnu-build-system) + (inputs + `(("openlibm" ,openlibm))) + (arguments + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) ; No configure script exists. + (replace 'install ; No install phase exists. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "Approximation" bin) + (install-file "CollectResults" bin) + (install-file "GenerateInstances" bin) + #t)))))) + (synopsis "Approximate Longest Commons Subsequence computation tool") + (description + "@code{reduceLCS} is an implementation of the Reduce-Expand +algorithm for LCS. It is a fast program to compute the approximate +Longest Commons Subsequence of a set of strings.") + (home-page "https://github.com/gdv/Reduce-Expand-for-LCS") + ;; The source specifies no "and later" of GPL3. + (license license:gpl3))))