1;;; -*- Mode: lisp -*- 2;;; 3;;; This is a simple defsystem for converting some BLAS Fortran 4;;; routines to Lisp and compiling the result. These came with 5;;; HOMPACK and are used in HOMPACK, among others. 6;;; 7;;; $Id: blas-lisp.system,v 1.2 2007-04-07 19:08:50 dtc Exp $ 8;;; $Log: blas-lisp.system,v $ 9;;; Revision 1.2 2007-04-07 19:08:50 dtc 10;;; o Fix some symbol case issues. This enables the Lapack code to run in a 11;;; lowercase Common Lisp variant. 12;;; 13;;; Revision 1.1 2007/01/05 18:17:38 rtoy 14;;; This large checkin imports large parts of BLAS and LAPACK for use with 15;;; Maxima. The Fortran parts are in good shape. The interface to maxima 16;;; works but still needs lots of work. 17;;; 18;;; Revision 1.3 2006/11/21 21:36:34 rtoy 19;;; Oops. Array declarations should be relaxed. 20;;; 21;;; Revision 1.2 2006/11/21 18:27:25 rtoy 22;;; o Add BLAS-HOMPACK system for supporting HOMPACK with the minial BLAS 23;;; routines it needs. 24;;; o Add BLAS system to load all of BLAS. 25;;; 26;;; Revision 1.1 2003/11/14 19:08:42 rtoy 27;;; Initial revision. 28;;; 29 30(mk:define-language :f2cl-lisp 31 :compiler #'f2cl:f2cl 32 :loader #'identity 33 :source-extension "f" 34 :binary-extension "lisp") 35 36(mk:defsystem blas-package 37 :source-pathname (maxima::maxima-load-pathname-directory) 38 :components 39 ((:file "blas-package"))) 40 41(mk:defsystem blas-lisp 42 :source-pathname (maxima::maxima-load-pathname-directory) 43 :source-extension "f" 44 :language :f2cl-lisp 45 :depends-on ("blas-package") 46 :components 47 ((:module fortran 48 :binary-pathname "." 49 :compiler-options (:package :blas 50 :float-format double-float) 51 :compile-only t 52 :components 53 ( 54 (:file "daxpy") 55 (:file "dcopy") 56 (:file "ddot") 57 (:file "dnrm2") 58 (:file "dscal") 59 (:file "idamax") 60 61 (:file "dasum") 62 (:file "dcabs1") 63 (:file "dgbmv" 64 :depends-on ("lsame" "xerbla")) 65 (:file "dgemm" 66 :depends-on ("lsame" "xerbla")) 67 (:file "dgemv" 68 :depends-on ("lsame" "xerbla")) 69 (:file "dger" 70 :depends-on ("xerbla")) 71 (:file "drot") 72 (:file "drotg") 73 (:file "dsbmv" 74 :depends-on ("lsame" "xerbla")) 75 (:file "dspmv" 76 :depends-on ("lsame" "xerbla")) 77 (:file "dspr" 78 :depends-on ("lsame" "xerbla")) 79 (:file "dspr2" 80 :depends-on ("lsame" "xerbla")) 81 (:file "dswap") 82 (:file "dsymm" 83 :depends-on ("lsame" "xerbla")) 84 (:file "dsymv" 85 :depends-on ("lsame" "xerbla")) 86 (:file "dsyr" 87 :depends-on ("lsame" "xerbla")) 88 (:file "dsyr2" 89 :depends-on ("lsame" "xerbla")) 90 (:file "dsyr2k" 91 :depends-on ("lsame" "xerbla")) 92 (:file "dsyrk" 93 :depends-on ("lsame" "xerbla")) 94 (:file "dtbmv" 95 :depends-on ("lsame" "xerbla")) 96 (:file "dtbsv" 97 :depends-on ("lsame" "xerbla")) 98 (:file "dtpmv" 99 :depends-on ("lsame" "xerbla")) 100 (:file "dtpsv" 101 :depends-on ("lsame" "xerbla")) 102 (:file "dtrmm" 103 :depends-on ("lsame" "xerbla")) 104 (:file "dtrmv" 105 :depends-on ("lsame" "xerbla")) 106 (:file "dtrsm" 107 :depends-on ("lsame" "xerbla")) 108 (:file "dtrsv" 109 :depends-on ("lsame" "xerbla")) 110 (:file "dzasum" 111 :depends-on ("dcabs1")) 112 (:file "dznrm2") 113 (:file "icamax") 114 (:file "isamax") 115 (:file "izamax" 116 :depends-on ("dcabs1")) 117 (:file "lsame") 118 (:file "xerbla") 119 120 ;; Complex versions. 121 (:file "zaxpy" 122 :depends-on ("dcabs1")) 123 (:file "zcopy") 124 (:file "zdotc") 125 (:file "zdotu") 126 (:file "zdscal") 127 (:file "zgbmv") 128 (:file "zgemm") 129 (:file "zgemv") 130 (:file "zgerc") 131 (:file "zgeru") 132 (:file "zhbmv") 133 (:file "zhemm") 134 (:file "zhemv") 135 (:file "zher") 136 (:file "zher2") 137 (:file "zher2k") 138 (:file "zherk") 139 (:file "zhpmv") 140 (:file "zhpr") 141 (:file "zhpr2") 142 (:file "zrotg") 143 (:file "zscal") 144 (:file "zswap") 145 (:file "zsymm") 146 (:file "zsyr2k") 147 (:file "zsyrk") 148 (:file "ztbmv") 149 (:file "ztbsv") 150 (:file "ztpmv") 151 (:file "ztpsv") 152 (:file "ztrmm") 153 (:file "ztrmv") 154 (:file "ztrsm") 155 (:file "ztrsv") 156 )))) 157