gnu: Update harfbuzz to 0.9.20.
[jackhill/guix/guix.git] / gnu / packages / maths.scm
CommitLineData
8f8b2451
AE
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages maths)
20 #:use-module (gnu packages)
21 #:use-module ((guix licenses)
22 #:renamer (symbol-prefix-proc 'license:))
23 #:use-module (guix packages)
24 #:use-module (guix download)
c9dfa3c7 25 #:use-module (guix build-system gnu)
c9dfa3c7
AE
26 #:use-module (gnu packages compression)
27 #:use-module ((gnu packages gettext)
28 #:renamer (symbol-prefix-proc 'gnu:))
29 #:use-module (gnu packages perl)
30 #:use-module (gnu packages pkg-config)
31 #:use-module (gnu packages readline)
32 #:use-module (gnu packages xml))
8f8b2451
AE
33
34(define-public units
35 (package
36 (name "units")
37 (version "2.01")
38 (source (origin
39 (method url-fetch)
40 (uri (string-append "mirror://gnu/units/units-" version
41 ".tar.gz"))
42 (sha256 (base32
43 "1wl8kaxgk4l5jgc1f71mx1rwa6ib84krjmzyzn2f987z1g3i52qk"))))
44 (build-system gnu-build-system)
45 (synopsis "Conversion between thousands of scales")
46 (description
47 "GNU Units converts quantities expressed in various systems of
48measurement to their equivalents in other systems of measurement. Like
49many similar programs, it can handle multiplicative scale changes. It can
50also handle nonlinear conversions such as Fahrenheit to Celsius or wire
51gauge, and it can convert from and to sums of units, such as converting
52between meters and feet plus inches.
53
54Beyond simple unit conversions, GNU Units can be used as a general-purpose
55scientific calculator that keeps track of units in its calculations. You
56can form arbitrary complex mathematical expressions of dimensions including
57sums, products, quotients, powers, and even roots of dimensions. Thus you
58can ensure accuracy and dimensional consistency when working with long
59expressions that involve many different units that may combine in complex
60ways.
61
62The units are defined in an external data file. You can use the extensive
63data file that comes with this program, or you can provide your own data
64file to suit your needs. You can also use your own data file to supplement
65the standard data file.")
66 (license license:gpl3+)
67 (home-page "http://www.gnu.org/software/units/")))
c9dfa3c7 68
88bd1804
AE
69(define-public gsl
70 (package
71 (name "gsl")
72 (version "1.15")
73 (source
74 (origin
75 (method url-fetch)
76 (uri (string-append "mirror://gnu/gsl/gsl-"
77 version ".tar.gz"))
78 (sha256
79 (base32
80 "18qf6jzz1r3mzb5qynywv4xx3z9g61hgkbpkdrhbgqh2g7jhgfc5"))))
81 (build-system gnu-build-system)
71e0f288
AE
82 (arguments
83 `(#:phases
84 (alist-replace
85 'configure
86 (lambda* (#:key target system outputs #:allow-other-keys #:rest args)
87 (let ((configure (assoc-ref %standard-phases 'configure)))
88 ;; disable numerically unstable test on i686, see thread at
89 ;; http://lists.gnu.org/archive/html/bug-gsl/2011-11/msg00019.html
90 (if (string=? (or target system) "i686-linux")
91 (substitute* "ode-initval2/Makefile.in"
92 (("TESTS = \\$\\(check_PROGRAMS\\)") "TESTS =")))
93 (apply configure args)))
94 %standard-phases)))
88bd1804
AE
95 (home-page "http://www.gnu.org/software/gsl/")
96 (synopsis "Numerical library for C and C++")
97 (description
98 "The GNU Scientific Library (GSL) is a numerical library for C
99and C++ programmers. It is free software under the GNU General
100Public License.
101
102The library provides a wide range of mathematical routines such
103as random number generators, special functions and least-squares
104fitting. There are over 1000 functions in total with an
105extensive test suite.")
106 (license license:gpl3+)))
107
c9dfa3c7
AE
108(define-public pspp
109 (package
110 (name "pspp")
111 (version "0.8.0a")
112 (source
113 (origin
114 (method url-fetch)
115 (uri (string-append "mirror://gnu/pspp/pspp-"
116 version ".tar.gz"))
117 (sha256
118 (base32
119 "1pgkb3z8b4wk4gymnafclhkrqq7n05wq83mra3v53jdl6bnllmyq"))))
120 (build-system gnu-build-system)
121 (inputs
122 `(("gettext" ,gnu:gettext)
123 ("gsl" ,gsl)
124 ("libxml2" ,libxml2)
125 ("readline" ,readline)
126 ("zlib" ,zlib)))
127 (native-inputs
128 `(("perl" ,perl)
129 ("pkg-config" ,pkg-config)))
130 (arguments
131 `(#:configure-flags
132 `("--without-cairo" ; FIXME: tests currently fail for lack of font
133 "--without-gui"))) ; FIXME: package missing dependencies
134 (home-page "http://www.gnu.org/software/pspp/")
135 (synopsis "Statistical analysis")
136 (description
137 "PSPP is a program for statistical analysis of sampled data. It is a
138free replacement for the proprietary program SPSS, and appears very similar
139to it.
140
141PSPP can perform descriptive statistics, T-tests, anova, linear and logistic
142regression, cluster analysis, factor analysis, non-parametric tests and
143more. Its backend is designed to perform its analyses as fast as possible,
144regardless of the size of the input data. You can use PSPP with its
145graphical interface or the more traditional syntax commands.")
146 (license license:gpl3+)))