gsll.asd 10.8 KB
Newer Older
1
2
;; Definition of GSLL system 
;; Liam Healy
3
;; Time-stamp: <2010-02-07 16:58:10EST gsll.asd>
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
;;
;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
;; Distributed under the terms of the GNU General Public License
;;
;; This program 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.
;;
;; This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
20

Liam Healy's avatar
Liam Healy committed
21
22
23
(when (asdf:find-system :fsbv nil)
  (pushnew :fsbv *features*))

24
25
26
(eval-when (:compile-toplevel :load-toplevel :execute)
  (asdf:oos 'asdf:load-op :cffi-grovel))

27
28
(asdf:defsystem GSLL
  :name "GSLL"
29
30
31
  :description "GNU Scientific Library for Lisp."
  :version "0"
  :author "Liam M. Healy"
Liam Healy's avatar
Liam Healy committed
32
  :licence "GPL v3"
33
  :depends-on (c-array grid cffi cffi-grovel trivial-garbage cl-utilities #+fsbv fsbv)
34
  :components
35
  ((:module init
36
37
	    :components
	    ((:file "init")
38
	     (cffi-grovel:grovel-file "libgsl" :pathname #+unix "libgsl-unix")
39
	     (:file "utility")
40
	     (:file "forms")
Liam Healy's avatar
Liam Healy committed
41
42
43
44
	     (:file "conditions" :depends-on ("init" "libgsl"))
	     (:file "callback-compile-defs" :depends-on ("init"))
	     (:file "mobject" :depends-on ("init" "callback-compile-defs"))
	     (:file "callback-included" :depends-on ("mobject"))
45
	     (:file "callback"
Liam Healy's avatar
Liam Healy committed
46
		    :depends-on
47
		    ("init" "utility" "forms"
Liam Healy's avatar
Liam Healy committed
48
49
50
51
52
			    "callback-included"))
	     (:file "types" :depends-on ("init" "libgsl"))
	     (cffi-grovel:grovel-file "callback-struct"
				      :depends-on ("types" "libgsl"))
	     (:file "funcallable" :depends-on ("utility"))
53
	     (:file "interface"
54
		    :depends-on ("init" "conditions"))
55
	     (:file "defmfun" :depends-on ("init" "forms" "interface"))
Liam Healy's avatar
Liam Healy committed
56
57
58
59
60
61
	     (:file "defmfun-array"
		    :depends-on ("defmfun" "callback-included"))
	     (:file "defmfun-single"
		    :depends-on ("defmfun" "mobject" "callback"))
	     (:file "body-expand" :depends-on ("defmfun" "mobject" "callback"))
	     (:file "generate-examples" :depends-on ("init"))))
62
   (:module floating-point
63
	    :depends-on (init)
64
65
66
67
	    :components
	    ((:file "ieee-modes")
	     (:file "floating-point")))
   (:module mathematical
68
	    :depends-on (init)
69
70
	    :components
	    ((:file "mathematical")
Liam Healy's avatar
Liam Healy committed
71
	     #+fsbv
72
73
	     (:file "complex")))
   (:module data
74
	    :depends-on (init)
75
	    :components
76
77
	    ((cffi-grovel:grovel-file "array-structs")
	     (:file "marray" :depends-on ("array-structs"))
Liam Healy's avatar
Liam Healy committed
78
79
80
81
	     (:file "vector" :depends-on ("marray" "array-structs"))
	     (:file "matrix" :depends-on ("marray" "vector" "array-structs"))
	     (:file "maref" :depends-on ("marray" "vector" "matrix"))
	     (:file "both" :depends-on ("marray" "vector" "matrix"))
82
	     (:file "copy-cl")
Liam Healy's avatar
Liam Healy committed
83
84
85
	     (:file "array-tests" :depends-on ("both"))
	     (:file "permutation" :depends-on ("marray" "array-structs"))
	     (:file "combination" :depends-on ("marray" "array-structs"))))
86
   (:file "polynomial" :depends-on (init data))
87
   (:module special-functions
88
	    :depends-on (init)
89
	    :components
90
	    ((cffi-grovel:grovel-file "sf-result")
Liam Healy's avatar
Liam Healy committed
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
	     (:file "return-structures" :depends-on ("sf-result"))
	     (:file "airy" :depends-on ("return-structures"))
	     (:file "bessel" :depends-on ("return-structures"))
	     (:file "clausen" :depends-on ("return-structures"))
	     (:file "coulomb" :depends-on ("return-structures"))
	     (:file "coupling" :depends-on ("return-structures"))
	     (:file "dawson" :depends-on ("return-structures"))
	     (:file "debye" :depends-on ("return-structures"))
	     (:file "dilogarithm" :depends-on ("return-structures"))
	     (:file "elementary" :depends-on ("return-structures"))
	     (:file "elliptic-integrals" :depends-on ("return-structures"))
	     (:file "elliptic-functions" :depends-on ("return-structures"))
	     (:file "error-functions" :depends-on ("return-structures"))
	     (:file "exponential-functions" :depends-on ("return-structures"))
	     (:file "exponential-integrals" :depends-on ("return-structures"))
	     (:file "fermi-dirac" :depends-on ("return-structures"))
	     (:file "gamma" :depends-on ("return-structures"))
	     (:file "gegenbauer" :depends-on ("return-structures"))
	     (:file "hypergeometric" :depends-on ("return-structures"))
	     (:file "laguerre" :depends-on ("return-structures"))
	     (:file "lambert" :depends-on ("return-structures"))
	     (:file "legendre" :depends-on ("return-structures"))
	     (:file "logarithm" :depends-on ("return-structures"))
	     (:file "mathieu" :depends-on ("return-structures"))
	     (:file "power" :depends-on ("return-structures"))
	     (:file "psi" :depends-on ("return-structures"))
	     (:file "synchrotron" :depends-on ("return-structures"))
	     (:file "transport" :depends-on ("return-structures"))
	     (:file "trigonometry" :depends-on ("return-structures"))
	     (:file "zeta" :depends-on ("return-structures"))))
121
   (:file "sorting" :depends-on (init data))
122
   (:module linear-algebra
123
	    :depends-on (init data special-functions)
124
125
126
	    :components
	    ((:file "blas1")
	     (:file "blas2")
Liam Healy's avatar
Liam Healy committed
127
	     (:file "blas3" :depends-on ("blas2"))
128
	     (:file "matrix-generation")
129
130
131
132
133
134
135
136
137
	     (:file "exponential")
	     (:file "lu")
	     (:file "qr")
	     (:file "qrpt")
	     (:file "svd")
	     (:file "cholesky")
	     (:file "diagonal")
	     (:file "householder")))
   (:module eigensystems
138
	    :depends-on (init data)
139
140
	    :components
	    ((:file "symmetric-hermitian")
141
	     (cffi-grovel:grovel-file "eigen-struct")
Liam Healy's avatar
Liam Healy committed
142
	     (:file "nonsymmetric" :depends-on ("eigen-struct"))
143
144
	     (:file "generalized")
	     (:file "nonsymmetric-generalized")))
145
146
147
   (:module fast-fourier-transforms
            :depends-on (init data)
            :components
Liam Healy's avatar
Liam Healy committed
148
149
150
151
152
            ((:file "wavetable-workspace")
	     (:file "forward")
             (:file "backward")
             (:file "inverse")
             (:file "select-direction")
Liam Healy's avatar
Liam Healy committed
153
             (:file "unpack")
154
             (:file "discrete")
155
             (:file "extras")
Liam Healy's avatar
Liam Healy committed
156
	     (:file "example")))
157
   (:module random
158
	    :depends-on (init data)
159
160
	    :components
	    ((:file "rng-types")
Liam Healy's avatar
Liam Healy committed
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
	     (:file "generators" :depends-on ("rng-types"))
	     (:file "quasi" :depends-on ("rng-types" "generators"))
	     (:file "gaussian" :depends-on ("rng-types"))
	     (:file "gaussian-tail" :depends-on ("rng-types"))
	     (:file "gaussian-bivariate" :depends-on ("rng-types"))
	     (:file "exponential" :depends-on ("rng-types"))
	     (:file "laplace" :depends-on ("rng-types"))
	     (:file "exponential-power" :depends-on ("rng-types"))
	     (:file "cauchy" :depends-on ("rng-types"))
	     (:file "rayleigh" :depends-on ("rng-types"))
	     (:file "rayleigh-tail" :depends-on ("rng-types"))
	     (:file "landau" :depends-on ("rng-types"))
	     (:file "levy" :depends-on ("rng-types"))
	     (:file "gamma" :depends-on ("rng-types"))
	     (:file "flat" :depends-on ("rng-types"))
	     (:file "lognormal" :depends-on ("rng-types"))
	     (:file "chi-squared" :depends-on ("rng-types"))
	     (:file "fdist" :depends-on ("rng-types"))
	     (:file "tdist" :depends-on ("rng-types"))
	     (:file "beta" :depends-on ("rng-types"))
	     (:file "logistic" :depends-on ("rng-types"))
	     (:file "pareto" :depends-on ("rng-types"))
	     (:file "spherical-vector" :depends-on ("rng-types"))
	     (:file "weibull" :depends-on ("rng-types"))
	     (:file "gumbel1" :depends-on ("rng-types"))
	     (:file "gumbel2" :depends-on ("rng-types"))
	     (:file "dirichlet" :depends-on ("rng-types"))
	     (:file "discrete" :depends-on ("rng-types"))
	     (:file "poisson" :depends-on ("rng-types"))
	     (:file "bernoulli" :depends-on ("rng-types"))
	     (:file "binomial" :depends-on ("rng-types"))
	     (:file "multinomial" :depends-on ("rng-types"))
	     (:file "negative-binomial" :depends-on ("rng-types"))
	     (:file "geometric" :depends-on ("rng-types"))
	     (:file "hypergeometric" :depends-on ("rng-types"))
	     (:file "logarithmic" :depends-on ("rng-types"))
	     (:file "shuffling-sampling" :depends-on ("rng-types"))))
198
   (:module statistics
199
	    :depends-on (init data)
200
201
202
203
204
205
206
207
208
	    :components
	    ((:file "mean-variance")
	     (:file "absolute-deviation")
	     (:file "higher-moments")
	     (:file "autocorrelation")
	     (:file "covariance")
	     ;; minimum and maximum values provided in vector.lisp
	     (:file "median-percentile")))
   (:module histogram
209
	    :depends-on (init linear-algebra random)
210
211
	    :components
	    ((:file "histogram")
Liam Healy's avatar
Liam Healy committed
212
213
214
215
	     (:file "updating-accessing" :depends-on ("histogram"))
	     (:file "statistics" :depends-on ("histogram"))
	     (:file "operations" :depends-on ("histogram"))
	     (:file "probability-distribution" :depends-on ("histogram"))
216
217
	     (:file "ntuple")))
   (:module calculus
218
	    :depends-on (init data random)
219
220
	    :components
	    ((:file "numerical-integration")
221
	     (:file "numerical-integration-with-tables"
Liam Healy's avatar
Liam Healy committed
222
		    :depends-on ("numerical-integration"))
223
	     (cffi-grovel:grovel-file "monte-carlo-structs")
224
	     (:file "monte-carlo")
225
226
	     (:file "numerical-differentiation")))
   (:module ordinary-differential-equations
227
	    :depends-on (init)
228
229
	    :components
	    ((:file "ode-system")
230
	     (cffi-grovel:grovel-file "ode-struct")
Liam Healy's avatar
Liam Healy committed
231
	     (:file "stepping" :depends-on ("ode-struct"))
232
233
	     (:file "control")
	     (:file "evolution")
Liam Healy's avatar
Liam Healy committed
234
	     (:file "ode-example" :depends-on ("ode-system" "stepping"))))
235
   (:module interpolation
236
	    :depends-on (init)
237
238
	    :components
	    ((:file "interpolation")
Liam Healy's avatar
Liam Healy committed
239
	     (:file "types" :depends-on ("interpolation"))
240
241
	     (:file "lookup")
	     (:file "evaluation")
Liam Healy's avatar
Liam Healy committed
242
	     (:file "spline-example" :depends-on ("types"))))
243
   (:file "chebyshev" :depends-on (init))
244
   (cffi-grovel:grovel-file "series-struct")
245
246
247
   (:file "series-acceleration" :depends-on (init "series-struct"))
   (:file "wavelet" :depends-on (init data))
   (:file "hankel" :depends-on (init data))
248
   (:module solve-minimize-fit
249
	    :depends-on (init data random)
250
251
	    :components
	    ((:file "generic")
252
	     (cffi-grovel:grovel-file "solver-struct")
Liam Healy's avatar
Liam Healy committed
253
254
255
256
	     (:file "roots-one" :depends-on ("generic"))
	     (:file "minimization-one" :depends-on ("generic"))
	     (:file "roots-multi" :depends-on ("roots-one" "generic" "solver-struct"))
	     (:file "minimization-multi" :depends-on ("generic"))
257
	     (:file "linear-least-squares")
258
	     (:file "nonlinear-least-squares"
Liam Healy's avatar
Liam Healy committed
259
		    :depends-on ("generic" "solver-struct"))
260
261
	     #+fsbv
	     (:file "simulated-annealing")))
262
   (:file "basis-splines" :depends-on (init data random))
263
   (:module physical-constants
264
	    :depends-on (init)
265
	    :components
Liam Healy's avatar
Liam Healy committed
266
267
268
	    ((cffi-grovel:grovel-file "mksa")
	     (cffi-grovel:grovel-file "cgsm")
	     (:file export)))))