Support RETURN-FROM in DEF%TR forms
[maxima.git] / share / colnew / colnew.system
blob1d8f0934f048c9bc8a9a1aabbb5dd8f411da19c8
1 ;;; -*- Mode: lisp; Package: CL-USER -*-
4 ;;; Defsystem for COLNEW.  Everything should compile from the Lisp
5 ;;; sources.  See colnew-lisp.system for how to create the Lisp
6 ;;; sources from the original Fortran.
7 (in-package #-gcl #:cl-user #+gcl "CL-USER")
9 ;; Defsystem for colnew.
10 (mk:defsystem colnew
11   :source-pathname (maxima::maxima-load-pathname-directory)
12   :binary-pathname (maxima::maxima-objdir "share" "colnew"
13                                           (concatenate 'string "binary-" maxima::*maxima-lispname*))
14   :source-extension "lisp"
15   :components
16   ((:module package
17             :source-pathname ""
18             :components
19             ((:file "colnew-package")))
20    (:module lisp
21             :depends-on ("package")
22             :components
23             (
24              ;; Linpack routines needed by colnew
25              (:file "dgesl"
26                     :depends-on ("daxpy" "ddot"))
27              (:file "dgefa"
28                     :depends-on ("idamax" "dscal" "daxpy"))
29              ;; BLAS routines needed by above
30              (:file "daxpy")
31              (:file "ddot")
32              (:file "dscal")
33              (:file "idamax")
34              ;; Simple compatibility to define all of the needed
35              ;; common blocks in one place.
36              (:file "compat")
37              ;; COLNEW itself, broken down into one subroutine per
38              ;; file.
39              (:file "colnew"
40                     :depends-on ("compat" "consts" "newmsh" "contrl"))
41              (:file "contrl"
42                     :depends-on ("compat" "lsyslv" "skale" "errchk" "newmsh"))
43              (:file "skale"
44                     :depends-on ("compat"))
45              (:file "newmsh"
46                     :depends-on ("compat" "approx" "horder"))
47              (:file "consts"
48                     :depends-on ("compat" "vmonde" "rkbas"))
49              (:file "errchk")
50              (:file "lsyslv"
51                     :depends-on ("compat" "vwblok" "gblock" "gderiv" "fcblok"
52                                           "sbblok" "dmzsol"))
53              (:file "gderiv")
54              (:file "vwblok"
55                     :depends-on ("compat" "dgesl" "dgefa"))
56              (:file "gblock"
57                     :depends-on ("compat" "dgesl"))
58              (:file "appsln")
59              (:file "approx"
60                     :depends-on ("compat"))
61              (:file "rkbas"
62                     :depends-on ("compat"))
63              (:file "vmonde"
64                     :depends-on ("compat"))
65              (:file "horder")
66              (:file "dmzsol"
67                     :depends-on ("factrb" "shiftb"))
68              (:file "fcblok"
69                     :depends-on ("factrb" "shiftb"))
70              (:file "factrb")
71              (:file "shiftb")
72              (:file "sbblok"
73                     :depends-on ("subfor" "subbak"))
74              (:file "subfor")
75              (:file "subbak")))))
77 (mk:defsystem colnew-if
78   :source-pathname (maxima::maxima-load-pathname-directory)
79   :binary-pathname (maxima::maxima-objdir "share" "colnew"
80                                           (concatenate 'string "binary-" maxima::*maxima-lispname*))
81   :source-extension "lisp"
82   :depends-on ("colnew")
83   :components
84   ((:file "colnew-if")))
86 ;;; Here are some sample tests of colnew.  They all work and produce
87 ;;; results that match the Fortran code.
88 ;;;
89 ;;; Note that because each test uses the same common block names and
90 ;;; function names, you need to be careful when running more than one
91 ;;; test in the same session.  It might be best to restart maxima
92 ;;; between tests.
94 ;; Test problem 1.  This works.  Use (colnew::*main*) to run the test.
95 (mk:defsystem colnew-ex1
96   :source-pathname (maxima::maxima-load-pathname-directory)
97   :binary-pathname (maxima::maxima-objdir "share" "colnew"
98                                           (concatenate 'string "binary-" maxima::*maxima-lispname*))
99   :source-extension "lisp"
100   :depends-on ("colnew")
101   :components
102   ((:module ex1
103             :components
104             ((:file "prob1"
105                     :depends-on ("fsub" "dfsub" "gsub" "dgsub" "exact"))
106              (:file "fsub")
107              (:file "gsub")
108              (:file "dfsub")
109              (:file "dgsub")
110              (:file "exact")))))
112 ;; Test problem 2.  This works.  Use (colnew::*main*) to run the test.
113 (mk:defsystem colnew-ex2
114   :source-pathname (maxima::maxima-load-pathname-directory)
115   :binary-pathname (maxima::maxima-objdir "share" "colnew"
116                                           (concatenate 'string "binary-" maxima::*maxima-lispname*))
117   :source-extension "lisp"
118   :depends-on ("colnew")
119   :components
120   ((:module ex2
121             :components
122             ((:file "prob2"
123                     :depends-on ("fsub" "dfsub" "gsub" "dgsub" "solutn"))
124              (:file "fsub")
125              (:file "gsub")
126              (:file "dfsub")
127              (:file "dgsub")
128              (:file "solutn")))))
130 ;; Test problem 3.  This works.  Use (colnew::*main*) to run the test.
131 (mk:defsystem colnew-ex3
132   :source-pathname (maxima::maxima-load-pathname-directory)
133   :binary-pathname (maxima::maxima-objdir "share" "colnew"
134                                           (concatenate 'string "binary-" maxima::*maxima-lispname*))
135   :source-extension "lisp"
136   :depends-on ("colnew")
137   :components
138   ((:module ex3
139             :components
140             ((:file "prob3"
141                     :depends-on ("fsub" "dfsub" "gsub" "dgsub" "solutn"))
142              (:file "fsub")
143              (:file "gsub")
144              (:file "dfsub")
145              (:file "dgsub")
146              (:file "solutn")))))