gsll.asd 10.8 KB
Newer Older
1
2
;; Definition of GSLL system 
;; Liam Healy
3
;; Time-stamp: <2010-04-17 18:47:14EDT 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
	     (:file "generators" :depends-on ("rng-types"))
	     (:file "quasi" :depends-on ("rng-types" "generators"))
163
	     (:file "tests")
Liam Healy's avatar
Liam Healy committed
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
198
	     (: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"))))
199
   (:module statistics
200
	    :depends-on (init data)
201
202
203
204
205
206
207
208
209
	    :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
210
	    :depends-on (init linear-algebra random)
211
212
	    :components
	    ((:file "histogram")
Liam Healy's avatar
Liam Healy committed
213
214
215
216
	     (:file "updating-accessing" :depends-on ("histogram"))
	     (:file "statistics" :depends-on ("histogram"))
	     (:file "operations" :depends-on ("histogram"))
	     (:file "probability-distribution" :depends-on ("histogram"))
217
218
	     (:file "ntuple")))
   (:module calculus
219
	    :depends-on (init data random)
220
221
	    :components
	    ((:file "numerical-integration")
222
	     (:file "numerical-integration-with-tables"
Liam Healy's avatar
Liam Healy committed
223
		    :depends-on ("numerical-integration"))
224
	     (cffi-grovel:grovel-file "monte-carlo-structs")
225
	     (:file "monte-carlo")
226
227
	     (:file "numerical-differentiation")))
   (:module ordinary-differential-equations
228
	    :depends-on (init)
229
230
	    :components
	    ((:file "ode-system")
231
	     (cffi-grovel:grovel-file "ode-struct")
Liam Healy's avatar
Liam Healy committed
232
	     (:file "stepping" :depends-on ("ode-struct"))
233
234
	     (:file "control")
	     (:file "evolution")
Liam Healy's avatar
Liam Healy committed
235
	     (:file "ode-example" :depends-on ("ode-system" "stepping"))))
236
   (:module interpolation
237
	    :depends-on (init)
238
239
	    :components
	    ((:file "interpolation")
Liam Healy's avatar
Liam Healy committed
240
	     (:file "types" :depends-on ("interpolation"))
241
242
	     (:file "lookup")
	     (:file "evaluation")
Liam Healy's avatar
Liam Healy committed
243
	     (:file "spline-example" :depends-on ("types"))))
244
   (:file "chebyshev" :depends-on (init))
245
   (cffi-grovel:grovel-file "series-struct")
246
247
248
   (:file "series-acceleration" :depends-on (init "series-struct"))
   (:file "wavelet" :depends-on (init data))
   (:file "hankel" :depends-on (init data))
249
   (:module solve-minimize-fit
250
	    :depends-on (init data random)
251
252
	    :components
	    ((:file "generic")
253
	     (cffi-grovel:grovel-file "solver-struct")
Liam Healy's avatar
Liam Healy committed
254
255
256
257
	     (: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"))
258
	     (:file "linear-least-squares")
259
	     (:file "nonlinear-least-squares"
Liam Healy's avatar
Liam Healy committed
260
		    :depends-on ("generic" "solver-struct"))
261
262
	     #+fsbv
	     (:file "simulated-annealing")))
263
   (:file "basis-splines" :depends-on (init data random))
264
   (:module physical-constants
265
	    :depends-on (init)
266
	    :components
Liam Healy's avatar
Liam Healy committed
267
268
269
	    ((cffi-grovel:grovel-file "mksa")
	     (cffi-grovel:grovel-file "cgsm")
	     (:file export)))))