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