-
Notifications
You must be signed in to change notification settings - Fork 15
/
lisp-matrix.asd
101 lines (91 loc) · 3.32 KB
/
lisp-matrix.asd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
;;;; -*- 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)
(defsystem lisp-matrix
:name "lisp-matrix"
:version "0.3"
:author "Mark Hoemmen <mhoemmen@cs.berkeley.edu>"
:license "BSD sans advertising clause" ;; sort of MIT
: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. Uses both lisp-centric and foreign-centric storage, in a
manner friendly to the complimentary other storage facility."
:serial t
:depends-on (:cffi
:cl-utilities
:xarray ; we will use this for general indexing
;; :fiveam ;;see below for its replacement...
:lift ;; yes, Tony (me) is a PITA...
:org.middleangle.foreign-numeric-vector
:org.middleangle.cl-blapack
:ffa)
:components
((:module
"package-init"
:pathname #p "src/"
:components
((:file "package")))
(:module
"basics"
:pathname #p"src/"
:depends-on ("package-init")
:components
((: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"))))
(:module
"implementations"
:pathname #p"src/"
:depends-on ("package-init" "basics")
:serial t
:components
((: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"
"matrix-lisp-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"
"lapack-cholesky"
"lapack-lu"
"lapack-qr"))))
(:module
"api"
:pathname #p"src/"
:depends-on ("basics" "implementations")
:components
((:file "numerical-linear-algebra")))
(:module
"testing"
:pathname #p "src/unittests/"
:depends-on ("implementations")
:components
((: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")))))
#|
:in-order-to ((test-op (load-op lisp-matrix)))
:perform (test-op :after (op c)
(funcall (intern "RUN!" 'fiveam)
(intern "TESTS" 'lisp-matrix)))
|#
)