3 (mk:defsystem odepack-package
4 :source-pathname (maxima::maxima-load-pathname-directory)
5 :binary-pathname (maxima::maxima-objdir "share" "odepack")
6 :source-extension "lisp"
12 (:module "common-block"
13 :source-pathname "src"
14 :source-extension "cmn"
18 (mk:defsystem odepack-dlsode
19 :source-pathname (maxima::maxima-load-pathname-directory)
20 :binary-pathname (maxima::maxima-objdir "share" "odepack")
21 :source-extension "lisp"
22 :depends-on ("odepack-package")
27 :depends-on ("dstode" "xerrwd" "dintdy" "dvnorm" "dewset"))
29 :depends-on ("xerrwd"))
31 :depends-on ("dvnorm" "dcfode"))
33 :depends-on ("idamax" "dscal" "dvnorm"))
36 :depends-on ("dgbfa" "dgefa" "dvnorm"))
38 :depends-on ("dgbsl" "dgesl"))
43 :depends-on ("idamax" "dscal" "daxpy"))
45 :depends-on ("daxpy" "ddot"))
47 :depends-on ("daxpy" "ddot"))
52 :depends-on ("dumsum"))
54 :depends-on ("ixsav"))
56 :depends-on ("ixsav"))
58 :depends-on ("ixsav"))
64 (mk:defsystem maxima-odepack
65 :source-pathname (maxima::maxima-load-pathname-directory)
66 :binary-pathname (maxima::maxima-objdir "share" "odepack")
67 :depends-on ("odepack")
69 ((:file "dlsode-interface")))
71 (mk:defsystem maxima-dlsode
72 :source-pathname (maxima::maxima-load-pathname-directory)
73 :binary-pathname (maxima::maxima-objdir "share" "odepack")
74 :depends-on ("odepack-dlsode")
75 :source-extension "lisp"
77 ((:file "dlsode-interface")))
81 :source-pathname (maxima::maxima-load-pathname-directory)
82 :binary-pathname (maxima::maxima-objdir "share" "odepack")
89 :depends-on ("package")
92 :depends-on ("nroc" "nsfc" "nnfc" "nnsc"))
97 :depends-on ("ddecbt" "dsolbt"))
99 :depends-on ("dgefa" "dgesl" "dgbfa" "dgbsl"))
102 :depends-on ("dvnorm" "dcopy"))
104 :depends-on ("dcopy" "dnrm2" "dcopy"))
110 :depends-on ("dgefa" "dgesl" "ddot"))
115 :depends-on ("idamax" "dscal" "daxpy"))
117 :depends-on ("daxpy"))
119 :depends-on ("idamax" "dscal" "daxpy"))
121 :depends-on ("daxpy" "ddot"))
123 :depends-on ("idamax"))
128 :depends-on ("xerrwd"))
130 :depends-on ("dprep"))
131 ;; This routine takes a slice of a double precision array and
132 ;; passes it to dprepi as a integer array. That won't work in
135 :depends-on ("dprepi"))
137 :depends-on ("dvnorm"))
139 :depends-on ("xerrwd" "dmnorm" "dstoda"))
141 :depends-on ("drchek"))
143 :depends-on ("dstode"))
145 :depends-on ("dstode" "dewset"))
147 :depends-on ("dstodi" "dainvg"))
149 :depends-on ("dstodi" "dainvgs"))
151 :depends-on ("drchek" "dstoka"))
153 :depends-on ("dstodpk"))
155 :depends-on ("dstodi"))
164 :depends-on ("jgroup" "odrv"))
166 :depends-on ("jgroup" "odrv"))
173 :depends-on ("droots"))
180 :depends-on ("dspiom" "dspigmr" "dusol"))
195 :depends-on ("dpkset" "dsolpk"))
197 :depends-on ("dsetpk" "dsolpk"))
199 :depends-on ("dumsum"))
208 :depends-on ("mdi" "mdm" "mdp" "mdu"))
219 :depends-on ("sro" "md"))
222 :depends-on ("ixsav"))
230 ;;; Note: Each of the demos should probably be run in a separate Lisp
231 ;;; instance because some of the demos define functions with the same
232 ;;; name but different parameters. This will really confuse the
233 ;;; generated code, because the generated code uses knowledge of the
234 ;;; function to generate the call.
238 ;; Output matches Fortran code.
239 (mk:defsystem odedemo-lsode
240 :source-pathname (translate-logical-pathname "odepack:demo1")
241 :binary-pathname (translate-logical-pathname "odepack:demo1")
242 :source-extension "f"
244 :compiler-options (:common-as-array t)
245 :depends-on ("odepack")
255 ;; This won't work because opkdemo2 equivalences two arrays together.
256 ;; f2cl doesn't know how to handle that yet.
257 (mk:defsystem odedemo-lsodes
258 :source-pathname (translate-logical-pathname "odepack:")
259 :binary-pathname (translate-logical-pathname "odepack:lib")
260 :source-extension "f"
262 :compiler-options (:common-as-array t)
263 :depends-on ("odepack")
265 ((:file "opkdemo2")))
269 ;; Output matches Fortran code.
270 (mk:defsystem odedemo-lsoda
271 :source-pathname (translate-logical-pathname "odepack:demo3")
272 :binary-pathname (translate-logical-pathname "odepack:demo3")
273 :source-extension "f"
275 :compiler-options (:common-as-array t)
276 :depends-on ("odepack")
287 ;; Output matches Fortran code.
288 (mk:defsystem odedemo-lsodar
289 :source-pathname (translate-logical-pathname "odepack:demo4")
290 :binary-pathname (translate-logical-pathname "odepack:demo4")
291 :source-extension "f"
293 :compiler-options (:common-as-array t)
294 :depends-on ("odepack")
305 ;; This test takes quite a while to run. Probably could be optimized
306 ;; more if we were more careful about array declarations. Assumption
309 ;; This seems to work, and the output matches the Fortran output,
310 ;; except the test with mf = 29 isn't printed out. Don't know why.
312 ;; The output is placed in demout in the directory where this is run.
313 ;; Compare this to demo-lsodpk.out
314 (mk:defsystem odedemo-lsodpk
315 :source-pathname (translate-logical-pathname "odepack:demo5")
316 :binary-pathname (translate-logical-pathname "odepack:demo5")
317 :source-extension "f"
319 :compiler-options (:common-as-array t :declare-common t)
320 :depends-on ("odepack")
334 ;; This seems to work.
335 (mk:defsystem odedemo-lsodkr
336 :source-pathname (translate-logical-pathname "odepack:")
337 :binary-pathname (translate-logical-pathname "odepack:lib")
338 :source-extension "f"
340 :compiler-options (:common-as-array t :declare-common t)
341 :depends-on ("odepack")
343 ((:file "opkdemo6")))
346 ;; This runs and the expected output seems ok.
347 (mk:defsystem odedemo-lsodi
348 :source-pathname (translate-logical-pathname "odepack:demo7")
349 :binary-pathname (translate-logical-pathname "odepack:demo7")
350 :source-extension "f"
352 :compiler-options (:common-as-array t :declare-common t)
353 :depends-on ("odepack")
356 :depends-on ("elkup"))
359 :depends-on ("gfun"))
366 ;; This seems to work
367 (mk:defsystem odedemo-lsoibt
368 :source-pathname (translate-logical-pathname "odepack:demo8")
369 :binary-pathname (translate-logical-pathname "odepack:demo8")
370 :source-extension "f"
372 :compiler-options (:common-as-array t :declare-common t)
373 :depends-on ("odepack")
391 ;; Doesn't work. DIPREPI takes a double precision array and slices it
392 ;; up and passes it to DPREPI which wants integer arrays. That ain't
393 ;; gonna work in Lisp!
394 (mk:defsystem odedemo-lsodis
395 :source-pathname (translate-logical-pathname "odepack:")
396 :binary-pathname (translate-logical-pathname "odepack:lib")
397 :source-extension "f"
399 :compiler-options (:common-as-array t :declare-common t)
400 :depends-on ("odepack")
402 ((:file "opkdemo9")))