Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
123 lines (108 sloc) 3.8 KB
;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
;;; TODO: wrap this in a #+(or <supported-systems>) with an error if
;;; the system isn't supported.
(in-package :cl-user)
(defpackage :lisp-matrix-asd
(:use :cl :asdf))
(in-package :lisp-matrix-asd)
(defparameter *fasl-directory*
(make-pathname :directory '(:relative
#+sbcl "fasl-sbcl"
#+openmcl "fasl-ccl"
#+openmcl "fasl-ccl"
#+cmu "fasl-cmucl"
#+clisp "fasl-clisp"
#-(or sbcl openmcl clisp cmucl) "fasl"
(defsystem lisp-matrix
:name "lisp-matrix"
:version "0.0.1"
:author "Mark Hoemmen <>"
:license "BSD sans advertising clause"
:description "linear algebra library"
:long-description "Linear algebra library for ANSI Common Lisp;
implemented at the lowest level using CFFI to call the BLAS and
LAPACK. Should run on any ANSI CL implementation that supports
CFFI. Also considers lisp-centric and foreign-centric storage, in
a manner friendly to the other storage facility."
:serial t
:depends-on (:cffi
;; :xarray ; we will use this for general indexing
;; :fiveam ;;see below for its replacement...
:lift ;; yes, Tony (me) is a PITA...
:pathname #p "src/"
((:file "package")))
:pathname #p"src/"
:depends-on ("package-init")
((:file "utils" )
(:file "macros" )
(:file "matrix" )
(:file "vector" :depends-on ("matrix"))
(:file "data-transform" :depends-on ("matrix" "vector"))
(:file "matrix-implementations" :depends-on ("matrix" "vector"))))
:pathname #p"src/"
:depends-on ("package-init" "basics")
:serial t
((:file "matrix-lisp-array")
(:file "matrix-foreign-array")
;; probably should move the remainder into a numerical linear
;; algebra place.
(:file "lapack-utils" :depends-on ("matrix-foreign-array"
(:file "lapack-methods" :depends-on ("lapack-utils"))
(:file "lapack-cholesky" :depends-on ("lapack-utils"))
(:file "lapack-lu" :depends-on ("lapack-utils"))
(:file "lapack-qr" :depends-on ("lapack-utils"))
(:file "lapack-svd" :depends-on ("lapack-utils"))
(:file "lapack-ls" :depends-on ("lapack-utils"))
(:file "matrix-operations" :depends-on ("lapack-methods"
:pathname #p"src/"
:depends-on ("basics" "implementations")
((:file "numerical-linear-algebra")))
:pathname #p "src/unittests/"
:depends-on ("implementations")
((:file "unittests")
(:file "unittests-transform" :depends-on ("unittests"))
(:file "unittests-matrix" :depends-on ("unittests"))
(:file "unittests-matrix-view" :depends-on ("unittests" "unittests-matrix"))
(:file "unittests-matrix-lapack" :depends-on ("unittests" "unittests-matrix"))
(:file "unittests-vector" :depends-on ("unittests")))))
;; (:file "tests")
:in-order-to ((test-op (load-op lisp-matrix)))
:perform (test-op :after (op c)
(funcall (intern "RUN!" 'fiveam)
(intern "TESTS" 'lisp-matrix)))
;;;; keep ASDF thinking that the test operation hasn't been done
(defmethod operation-done-p
((o test-op)
(c (eql (find-system 'lisp-matrix))))
(values nil))
Jump to Line
Something went wrong with that request. Please try again.