aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/perl-maths.scm
blob: 53e0a03361d986d34336c5bcc37de4ad3c2fcb84 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages perl-maths)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system perl)
  #:use-module (gnu packages)
  #:use-module (gnu packages gcc)
  #:use-module (gnu packages gd)
  #:use-module (gnu packages gl)
  #:use-module (gnu packages maths)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages perl-check))

(define-public perl-math-cephes
  (package
    (name "perl-math-cephes")
    (version "0.5305")
    (source (origin
              (method url-fetch)
              (uri (string-append
                    "mirror://cpan/authors/id/S/SH/SHLOMIF/Math-Cephes-"
                    version ".tar.gz"))
              (sha256
               (base32
                "18c3xg53d1vv7hlj43601jj7ks119fm6ndpwpv94irr2905806jn"))
              ;; For reproducibility
              (modules '((guix build utils)))
              (snippet
               '(substitute* "libmd/Makefile.PL"
                  (("readdir DIR") "sort readdir DIR")))))
    (build-system perl-build-system)
    (home-page "https://metacpan.org/release/Math-Cephes")
    (synopsis "Perl interface to the Cephes math library")
    (description "The Math::Cephes module provides a Perl interface to over
150 functions of the Cephes math library.")
    (license license:perl-license)))

(define-public perl-math-matrixreal
  (package
    (name "perl-math-matrixreal")
    (version "2.13")
    (source (origin
              (method url-fetch)
              (uri (string-append
                    "mirror://cpan/authors/id/L/LE/LETO/Math-MatrixReal-"
                    version ".tar.gz"))
              (sha256
               (base32
                "1cml5wqd99hm398gl8f147ccsck9v179l7a6vqjj4kfkdnja37sg"))))
    (build-system perl-build-system)
    (native-inputs
     (list perl-module-build perl-test-most))
    (home-page "https://metacpan.org/release/Math-MatrixReal")
    (synopsis "Manipulate NxN matrices of real numbers")
    (description "This package provides the @code{Math::MatrixReal} module.
It implements the data type \"matrix of real numbers\" (and consequently also
\"vector of real numbers\").")
    (license license:perl-license)))

;; This is NOT compatible with perl-pdl-2.095
(define-public perl-pdl-2.019
  (package
    (name "perl-pdl")
    (version "2.019")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "https://www.cpan.org/modules/by-module/PDL/PDL-" version
                           ".tar.gz"))
       (sha256
        (base32 "1zkp5pm351qjr6sb3xivpxy5vjfl72ns0hb4dx5vpm8xvgp7p92i"))
       (patches
        (search-patches "pdl-2.019-glut-bitmap-fonts.patch"))))
    (build-system perl-build-system)
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'patch-includes
           (lambda* (#:key inputs #:allow-other-keys)
             (substitute* "perldl.conf"
              (("WITH_BADVAL => 0") "WITH_BADVAL => 1")
              (("WITH_GD => undef") "WITH_GD => true")
              (("GD_INC => undef")
               (string-append "GD_INC => '" (assoc-ref inputs "gd") "/include'"))
              (("GD_LIB => undef")
               (string-append "GD_LIB => '" (assoc-ref inputs "gd") "/lib'"))
              (("WITH_GSL => undef") "WITH_GSL => true"))))
         (add-before 'check 'prepare-check
           (lambda _
             ;; Set this for official CPAN releases of PDL.
             (setenv "SKIP_KNOWN_PROBLEMS" "1")
             (setenv "HOME" "/tmp"))))))
    (inputs (list gd gsl mesa glu))
    (native-inputs (list perl-devel-checklib
                         perl-extutils-depends
                         perl-extutils-f77
                         gfortran
                         perl-file-which
                         perl-pod-parser
                         perl-test-deep
                         perl-test-exception
                         perl-test-warn))
    (propagated-inputs (list perl-file-map
                             perl-file-which
                             perl-inline
                             perl-inline-c
                             perl-list-moreutils
                             perl-opengl
                             perl-pgplot
                             perl-pod-parser
                             perl-sys-sigaction
                             perl-termreadkey))
    (home-page "https://metacpan.org/release/PDL")
    (synopsis "Perl Data Language")
    (description "This package provides a library and simple REPL for the
Perl Data Language.")
    (license license:perl-license)))