gsll.asd 10.3 KB
Newer Older
1
2
;; Definition of GSLL system 
;; Liam Healy
3
;; Time-stamp: <2009-09-19 18:54:29EDT gsll.asd>
4

Liam Healy's avatar
Liam Healy committed
5
6
7
(when (asdf:find-system :fsbv nil)
  (pushnew :fsbv *features*))

8
9
10
(eval-when (:compile-toplevel :load-toplevel :execute)
  (asdf:oos 'asdf:load-op :cffi-grovel))

11
(asdf:defsystem "gsll"
12
13
14
15
16
  :name "gsll"
  :description "GNU Scientific Library for Lisp."
  :version "0"
  :author "Liam M. Healy"
  :licence "LLGPL v3, FDL"
Liam Healy's avatar
Liam Healy committed
17
  :depends-on (cffi cffi-grovel trivial-garbage cl-utilities #+fsbv fsbv)
18
19
20
21
  :components
  ((:module init
	    :components
	    ((:file "init")
22
	     (cffi-grovel:grovel-file "libgsl" :pathname #+unix "libgsl-unix")
23
	     (:file "utility")
24
	     (:file "forms")
Liam Healy's avatar
Liam Healy committed
25
26
27
28
29
	     (:file "conditions" :depends-on ("init" "libgsl"))
	     (:file "number-conversion" :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"))
30
	     (:file "callback"
Liam Healy's avatar
Liam Healy committed
31
32
33
34
35
36
37
38
39
		    :depends-on
		    ("init" "utility" "forms" "number-conversion"
			    "callback-included"))
	     (:file "types" :depends-on ("init" "libgsl"))
	     (cffi-grovel:grovel-file "callback-struct"
				      :depends-on ("types" "libgsl"))
	     (:file "funcallable" :depends-on ("utility"))
	     (:file "complex-types" :depends-on ("types"))
	     (:file "element-types" :depends-on ("init" "complex-types"))
40
	     (:file "interface"
Liam Healy's avatar
Liam Healy committed
41
42
43
44
45
46
47
48
49
50
		    :depends-on ("init" "conditions" "element-types"
					"number-conversion"))
	     (:file "defmfun"
		    :depends-on ("init" "forms" "element-types" "interface"))
	     (: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"))))
51
   (:module floating-point
52
	    :depends-on (init)
53
54
55
56
	    :components
	    ((:file "ieee-modes")
	     (:file "floating-point")))
   (:module mathematical
57
	    :depends-on (init)
58
59
	    :components
	    ((:file "mathematical")
Liam Healy's avatar
Liam Healy committed
60
	     #+fsbv
61
62
	     (:file "complex")))
   (:module data
63
	    :depends-on (init)
64
65
	    :components
	    ((:file "foreign-friendly")
Liam Healy's avatar
Liam Healy committed
66
	     (:file "foreign-array" :depends-on ("foreign-friendly"))
67
	     (cffi-grovel:grovel-file "array-structs")
Liam Healy's avatar
Liam Healy committed
68
69
70
71
72
	     (:file "marray" :depends-on ("foreign-array" "array-structs"))
	     (: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"))
73
	     (:file "copy-cl")
Liam Healy's avatar
Liam Healy committed
74
75
76
	     (:file "array-tests" :depends-on ("both"))
	     (:file "permutation" :depends-on ("marray" "array-structs"))
	     (:file "combination" :depends-on ("marray" "array-structs"))))
77
   (:file "polynomial" :depends-on (init data))
78
   (:module special-functions
79
	    :depends-on (init)
80
	    :components
81
	    ((cffi-grovel:grovel-file "sf-result")
Liam Healy's avatar
Liam Healy committed
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
	     (: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"))))
112
   (:file "sorting" :depends-on (init data))
113
   (:module linear-algebra
114
	    :depends-on (init data special-functions)
115
116
117
	    :components
	    ((:file "blas1")
	     (:file "blas2")
Liam Healy's avatar
Liam Healy committed
118
	     (:file "blas3" :depends-on ("blas2"))
119
	     (:file "matrix-generation")
120
121
122
123
124
125
126
127
128
	     (:file "exponential")
	     (:file "lu")
	     (:file "qr")
	     (:file "qrpt")
	     (:file "svd")
	     (:file "cholesky")
	     (:file "diagonal")
	     (:file "householder")))
   (:module eigensystems
129
	    :depends-on (init data)
130
131
	    :components
	    ((:file "symmetric-hermitian")
132
	     (cffi-grovel:grovel-file "eigen-struct")
Liam Healy's avatar
Liam Healy committed
133
	     (:file "nonsymmetric" :depends-on ("eigen-struct"))
134
135
136
137
	     (:file "generalized")
	     (:file "nonsymmetric-generalized")))
   ;; Skip fft for now, I'm not sure how it works in C
   (:module random
138
	    :depends-on (init data)
139
140
	    :components
	    ((:file "rng-types")
Liam Healy's avatar
Liam Healy committed
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
	     (: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"))))
178
   (:module statistics
179
	    :depends-on (init data)
180
181
182
183
184
185
186
187
188
	    :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
189
	    :depends-on (init linear-algebra random)
190
191
	    :components
	    ((:file "histogram")
Liam Healy's avatar
Liam Healy committed
192
193
194
195
	     (:file "updating-accessing" :depends-on ("histogram"))
	     (:file "statistics" :depends-on ("histogram"))
	     (:file "operations" :depends-on ("histogram"))
	     (:file "probability-distribution" :depends-on ("histogram"))
196
197
	     (:file "ntuple")))
   (:module calculus
198
	    :depends-on (init data random)
199
200
	    :components
	    ((:file "numerical-integration")
201
	     (:file "numerical-integration-with-tables"
Liam Healy's avatar
Liam Healy committed
202
		    :depends-on ("numerical-integration"))
203
	     (cffi-grovel:grovel-file "monte-carlo-structs")
204
	     (:file "monte-carlo")
205
206
	     (:file "numerical-differentiation")))
   (:module ordinary-differential-equations
207
	    :depends-on (init)
208
209
	    :components
	    ((:file "ode-system")
210
	     (cffi-grovel:grovel-file "ode-struct")
Liam Healy's avatar
Liam Healy committed
211
	     (:file "stepping" :depends-on ("ode-struct"))
212
213
	     (:file "control")
	     (:file "evolution")
Liam Healy's avatar
Liam Healy committed
214
	     (:file "ode-example" :depends-on ("ode-system" "stepping"))))
215
   (:module interpolation
216
	    :depends-on (init)
217
218
	    :components
	    ((:file "interpolation")
Liam Healy's avatar
Liam Healy committed
219
	     (:file "types" :depends-on ("interpolation"))
220
221
	     (:file "lookup")
	     (:file "evaluation")
Liam Healy's avatar
Liam Healy committed
222
	     (:file "spline-example" :depends-on ("types"))))
223
   (:file "chebyshev" :depends-on (init))
224
   (cffi-grovel:grovel-file "series-struct")
225
226
227
   (:file "series-acceleration" :depends-on (init "series-struct"))
   (:file "wavelet" :depends-on (init data))
   (:file "hankel" :depends-on (init data))
228
   (:module solve-minimize-fit
229
	    :depends-on (init data random)
230
231
	    :components
	    ((:file "generic")
232
	     (cffi-grovel:grovel-file "solver-struct")
Liam Healy's avatar
Liam Healy committed
233
234
235
236
	     (: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"))
237
	     (:file "linear-least-squares")
238
	     (:file "nonlinear-least-squares"
Liam Healy's avatar
Liam Healy committed
239
		    :depends-on ("generic" "solver-struct"))
240
241
	     #+fsbv
	     (:file "simulated-annealing")))
242
   (:file "basis-splines" :depends-on (init data random))
243
244
   (:module physical-constants
	    :components
Liam Healy's avatar
Liam Healy committed
245
246
247
	    ((cffi-grovel:grovel-file "mksa")
	     (cffi-grovel:grovel-file "cgsm")
	     (:file export)))))
248
249
250
251
252
253
254
255

#+asdf-system-connections 
(asdf:defsystem-connection gsll-iterate-extension
    :requires (gsll iterate)
    :components ((:module
		  "gsll-iterate"
		  :pathname "data/"
		  :components ((:file "iterate")))))