gsll.asd 11.1 KB
Newer Older
1
2
;; Definition of GSLL system 
;; Liam Healy
3
;; Time-stamp: <2010-06-27 17:57:19EDT 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 (foreign-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
	     (:file "complex")))
73
   #+(or)
74
   (:module data
75
	    :depends-on (init)
76
	    :components
77
78
	    ((cffi-grovel:grovel-file "array-structs")
	     (:file "marray" :depends-on ("array-structs"))
Liam Healy's avatar
Liam Healy committed
79
80
81
82
	     (: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"))
83
	     (:file "copy-cl")
Liam Healy's avatar
Liam Healy committed
84
85
86
	     (:file "array-tests" :depends-on ("both"))
	     (:file "permutation" :depends-on ("marray" "array-structs"))
	     (:file "combination" :depends-on ("marray" "array-structs"))))
87
   #+(or)
88
   (:file "polynomial" :depends-on (init data))
89
   #+(or)
90
   (:module special-functions
91
	    :depends-on (init)
92
	    :components
93
	    ((cffi-grovel:grovel-file "sf-result")
Liam Healy's avatar
Liam Healy committed
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
	     (: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"))))
124
   #+(or)
125
   (:file "sorting" :depends-on (init data))
126
   #+(or)
127
   (:module linear-algebra
128
	    :depends-on (init data special-functions)
129
130
131
	    :components
	    ((:file "blas1")
	     (:file "blas2")
Liam Healy's avatar
Liam Healy committed
132
	     (:file "blas3" :depends-on ("blas2"))
133
	     (:file "matrix-generation")
134
135
136
137
138
139
140
141
	     (:file "exponential")
	     (:file "lu")
	     (:file "qr")
	     (:file "qrpt")
	     (:file "svd")
	     (:file "cholesky")
	     (:file "diagonal")
	     (:file "householder")))
142
   #+(or)
143
   (:module eigensystems
144
	    :depends-on (init data)
145
146
	    :components
	    ((:file "symmetric-hermitian")
147
	     (cffi-grovel:grovel-file "eigen-struct")
Liam Healy's avatar
Liam Healy committed
148
	     (:file "nonsymmetric" :depends-on ("eigen-struct"))
149
150
	     (:file "generalized")
	     (:file "nonsymmetric-generalized")))
151
   #+(or)
152
153
154
   (:module fast-fourier-transforms
            :depends-on (init data)
            :components
Liam Healy's avatar
Liam Healy committed
155
156
157
158
159
            ((:file "wavetable-workspace")
	     (:file "forward")
             (:file "backward")
             (:file "inverse")
             (:file "select-direction")
Liam Healy's avatar
Liam Healy committed
160
             (:file "unpack")
161
             (:file "discrete")
162
             (:file "extras")
Liam Healy's avatar
Liam Healy committed
163
	     (:file "example")))
164
   #+(or)
165
   (:module random
166
	    :depends-on (init data)
167
168
	    :components
	    ((:file "rng-types")
Liam Healy's avatar
Liam Healy committed
169
170
	     (:file "generators" :depends-on ("rng-types"))
	     (:file "quasi" :depends-on ("rng-types" "generators"))
171
	     (:file "tests" :depends-on ("rng-types"))
Liam Healy's avatar
Liam Healy committed
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
199
200
201
202
203
204
205
206
	     (: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"))))
207
   #+(or)
208
   (:module statistics
209
	    :depends-on (init data)
210
211
212
213
214
215
216
217
	    :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")))
218
   #+(or)
219
   (:module histogram
220
	    :depends-on (init linear-algebra random)
221
222
	    :components
	    ((:file "histogram")
Liam Healy's avatar
Liam Healy committed
223
224
225
226
	     (:file "updating-accessing" :depends-on ("histogram"))
	     (:file "statistics" :depends-on ("histogram"))
	     (:file "operations" :depends-on ("histogram"))
	     (:file "probability-distribution" :depends-on ("histogram"))
227
	     (:file "ntuple")))
228
   #+(or)
229
   (:module calculus
230
	    :depends-on (init data random)
231
232
	    :components
	    ((:file "numerical-integration")
233
	     (:file "numerical-integration-with-tables"
Liam Healy's avatar
Liam Healy committed
234
		    :depends-on ("numerical-integration"))
235
	     (cffi-grovel:grovel-file "monte-carlo-structs")
236
	     (:file "monte-carlo")
237
	     (:file "numerical-differentiation")))
238
   #+(or)
239
   (:module ordinary-differential-equations
240
	    :depends-on (init)
241
242
	    :components
	    ((:file "ode-system")
243
	     (cffi-grovel:grovel-file "ode-struct")
Liam Healy's avatar
Liam Healy committed
244
	     (:file "stepping" :depends-on ("ode-struct"))
245
246
	     (:file "control")
	     (:file "evolution")
Liam Healy's avatar
Liam Healy committed
247
	     (:file "ode-example" :depends-on ("ode-system" "stepping"))))
248
   #+(or)
249
   (:module interpolation
250
	    :depends-on (init)
251
252
	    :components
	    ((:file "interpolation")
Liam Healy's avatar
Liam Healy committed
253
	     (:file "types" :depends-on ("interpolation"))
254
255
	     (:file "lookup")
	     (:file "evaluation")
Liam Healy's avatar
Liam Healy committed
256
	     (:file "spline-example" :depends-on ("types"))))
257
   #+(or)
258
   (:file "chebyshev" :depends-on (init))
259
   #+(or)
260
   (cffi-grovel:grovel-file "series-struct")
261
   #+(or)
262
   (:file "series-acceleration" :depends-on (init "series-struct"))
263
   #+(or)
264
   (:file "wavelet" :depends-on (init data))
265
   #+(or)
266
   (:file "hankel" :depends-on (init data))
267
   #+(or)
268
   (:module solve-minimize-fit
269
	    :depends-on (init data random)
270
271
	    :components
	    ((:file "generic")
272
	     (cffi-grovel:grovel-file "solver-struct")
Liam Healy's avatar
Liam Healy committed
273
274
275
276
	     (: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"))
277
	     (:file "linear-least-squares")
278
	     (:file "nonlinear-least-squares"
Liam Healy's avatar
Liam Healy committed
279
		    :depends-on ("generic" "solver-struct"))
280
281
	     #+fsbv
	     (:file "simulated-annealing")))
282
   #+(or)
283
   (:file "basis-splines" :depends-on (init data random))
284
   (:module physical-constants
285
	    :depends-on (init)
286
	    :components
Liam Healy's avatar
Liam Healy committed
287
288
289
	    ((cffi-grovel:grovel-file "mksa")
	     (cffi-grovel:grovel-file "cgsm")
	     (:file export)))))