diff --git a/data/array-tests.lisp b/data/array-tests.lisp index 7e958f0a6fbb1eb629fdfa73a38b3b268fdfbb63..75d2343ee78e1f7814f9733338cc213b2ee3a7b1 100644 --- a/data/array-tests.lisp +++ b/data/array-tests.lisp @@ -1,6 +1,6 @@ ;; Tests of array functions ;; Liam Healy 2008-10-20 22:41:48EDT array-tests.lisp -;; Time-stamp: <2009-04-29 22:23:37EDT array-tests.lisp> +;; Time-stamp: <2009-05-03 11:18:04EDT array-tests.lisp> ;; $Id: $ ;;; Generate each file with #'write-test-to-file, e.g. @@ -15,11 +15,11 @@ ;;;; Bulk operations ;;;;**************************************************************************** -(generate-all-array-tests vector-set-all t +(generate-all-array-tests vector-set-all #+fsbv t #-fsbv :no-complex (let ((v1 (array-default 3 t))) (cl-array (set-all v1 (scalar-default))))) -(generate-all-array-tests matrix-set-all t +(generate-all-array-tests matrix-set-all #+fsbv t #-fsbv :no-complex (let ((m1 (array-default '(3 3) t))) (cl-array (set-all m1 (scalar-default))))) diff --git a/data/both.lisp b/data/both.lisp index f95bfbbcb35ad91cbf7fa506779e8a6329532a90..9bfbfac0fb693944c91c36a7a3561d8218f33117 100644 --- a/data/both.lisp +++ b/data/both.lisp @@ -1,6 +1,6 @@ ;; Functions for both vectors and matrices. ;; Liam Healy 2008-04-26 20:48:44EDT both.lisp -;; Time-stamp: <2009-04-26 22:29:34EDT both.lisp> +;; Time-stamp: <2009-05-03 11:24:50EDT both.lisp> ;; $Id$ (in-package :gsl) @@ -39,6 +39,7 @@ ("gsl_" :category :type "_set_all") (((mpointer object) :pointer) (value :element-c-type)) :definition :generic + :element-types #+fsbv t #-fsbv :no-complex :inputs (object) :outputs (object) :c-return :void @@ -90,6 +91,7 @@ ("gsl_" :category :type "_set") (((mpointer object) :pointer) (index sizet) (value :element-c-type)) :definition :generic + :element-types #+fsbv t #-fsbv :no-complex :inputs (object) :outputs (object) :c-return :void diff --git a/documentation/index.html b/documentation/index.html index cacee1448a41be43b48634bce517a378855dce26..5581632153c423ed89ae7cd38acad535d3b80c3c 100644 --- a/documentation/index.html +++ b/documentation/index.html @@ -115,6 +115,8 @@ version 0.10.0 or newer; callbacks and <code>foreign-funcall</code> must be supp <li><a href="http://www.cliki.net/asdf">ASDF</a></li> <li><a href="http://repo.or.cz/w/lisp-unit.git">lisp-unit</a>, <i>(Optional)</i> necessary to run <code>gsll-tests</code> +<li><a href="http://repo.or.cz/w/fsbv.git">FSBV</a>, <i>(Optional)</i> necessary + for functions using complex scalars </li> </ul> @@ -135,7 +137,9 @@ version 0.10.0 or newer; callbacks and <code>foreign-funcall</code> must be supp <p>Download/update: <ul> <li><code>git clone git://repo.or.cz/gsll.git</code></li> - <li><code>git pull</code> in the <code>gsll</code> directory + <li><code>git clone git://repo.or.cz/fsbv.git</code></li> + <li><code>git pull</code> in the <code>gsll</code> and + <code>fsbv</code> directories afterwards to update</li> </ul> <p>The <a href="http://repo.or.cz/w/gsll.git"> repository web page</a> @@ -152,6 +156,7 @@ Then in Lisp, load the system: Add the following to <code>wnpp-projects</code>: <ul> <li><code>gsll get_git git://repo.or.cz/gsll.git</code></li> + <li><code>fsbv get_git git://repo.or.cz/fsbv.git</code></li> <li><code>trivial-garbage get_darcs http://common-lisp.net/~loliveira/darcs/trivial-garbage</code></li> </ul> <p>and add @@ -166,11 +171,12 @@ from within the clbuild directory: </ul> <h3>With Debian or Ubuntu</h3> <ul> - <li><code>sudo aptitude install libgsl0-dev cl-cffi</code></li> + <li><code>sudo aptitude install libgsl0-dev cl-cffi libffi-dev</code></li> <li><code>git clone git://repo.or.cz/gsll.git</code></li> <li><code>darcs get http://common-lisp.net/~loliveira/darcs/trivial-garbage</code></li> <li><code>clc-register-user-package trivial-garbage/trivial-garbage.asd</code></li> <li><code>clc-register-user-package gsll/gsll.asd</code></li> + <li><code>clc-register-user-package gsll/fsbv.asd</code></li> <li><code>clc-register-user-package gsll/gsll-tests.asd</code></li> </ul> <p> @@ -386,7 +392,7 @@ and arrays used internally or for function return. <!-- Created: Feb 25 2005 --> <!-- hhmts start --> <small> -Time-stamp: <2009-04-04 18:01:52EDT index.html> +Time-stamp: <2009-05-03 12:08:21EDT index.html> </small> <!-- hhmts end --> </div> diff --git a/gsll-tests.asd b/gsll-tests.asd index 74b001bfb54431c5a65d3f06020086e3c603d03e..d6c7312c53d86de8e00f50ab423707bfda58a5a1 100644 --- a/gsll-tests.asd +++ b/gsll-tests.asd @@ -1,6 +1,6 @@ ;; Definition of GSLL system ;; Liam Healy -;; Time-stamp: <2009-04-29 22:25:14EDT gsll-tests.asd> +;; Time-stamp: <2009-05-03 11:16:04EDT gsll-tests.asd> (asdf:defsystem "gsll-tests" :name "gsll-tests" @@ -99,7 +99,7 @@ (:file "matrix-sub") (:file "matrix-add") (:file "matrix-mult") - (:file "matrix-product-hermitian") + #+fsbv (:file "matrix-product-hermitian") (:file "matrix-product") (:file "matrix-product-nonsquare") (:file "matrix-product-symmetric") diff --git a/gsll.asd b/gsll.asd index f165964b31e0962ed7452dc37daf1f2074d25a8c..7c1b961822c86d4afbce26206b1c4f82b266ec2e 100644 --- a/gsll.asd +++ b/gsll.asd @@ -1,15 +1,18 @@ ;; Definition of GSLL system ;; Liam Healy -;; Time-stamp: <2009-04-16 21:33:09EDT gsll.asd> +;; Time-stamp: <2009-05-03 09:37:17EDT gsll.asd> ;; $Id$ +(when (asdf:find-system :fsbv nil) + (pushnew :fsbv *features*)) + (asdf:defsystem "gsll" :name "gsll" :description "GNU Scientific Library for Lisp." :version "0" :author "Liam M. Healy" :licence "LLGPL v3, FDL" - :depends-on (cffi trivial-garbage fsbv) + :depends-on (cffi trivial-garbage #+fsbv fsbv) :components ((:module init :components @@ -44,6 +47,7 @@ :depends-on (init) :components ((:file "mathematical") + #+fsbv (:file "complex"))) (:module data :depends-on (init) diff --git a/init/body-expand.lisp b/init/body-expand.lisp index d1b69cf78d1eaa3821edc5c6c7a722315609e593..ad4cbe9571df796bccd4b2e5a707e1163df02aa7 100644 --- a/init/body-expand.lisp +++ b/init/body-expand.lisp @@ -1,6 +1,6 @@ ;; Expand the body of a defmfun ;; Liam Healy 2009-04-13 22:07:13EDT body-expand.lisp -;; Time-stamp: <2009-05-02 21:43:36EDT body-expand.lisp> +;; Time-stamp: <2009-05-03 10:03:03EDT body-expand.lisp> ;; $Id: $ (in-package :gsl) @@ -42,6 +42,17 @@ :test 'st-symbol)) finally (return answer))) +;;; This function should never be called even when FSBV is absent, +;;; because the potential callers should all have #-fsbv +;;; conditionalization. It is here just so that body-expand can +;;; compile when FSBV is absent. +#-fsbv +(defmacro no-fsbv-error (function-name &rest args) + (declare (ignore args)) + `(error + "System FSBV is not present, so function ~a cannot be used." + ,function-name)) + (defun body-expand (name arglist gsl-name c-arguments key-args) "Expand the body (computational part) of the defmfun." (with-defmfun-key-args key-args @@ -86,7 +97,8 @@ cbinfo callback-dynamic-variables callback-dynamic) (let ((,(st-symbol creturn-st) (,(if (some 'identity pbv) - 'fsbv:foreign-funcall + #+fsbv 'fsbv:foreign-funcall + #-fsbv 'no-fsbv-error 'cffi:foreign-funcall) ,gsl-name ,@(mappend diff --git a/init/complex-types.lisp b/init/complex-types.lisp index e6211cb0fd7074cffa36c4bb3f666a4d2a96c73a..e48637e715fdf1215269f8c4ac00f3f37a2d76af 100644 --- a/init/complex-types.lisp +++ b/init/complex-types.lisp @@ -1,6 +1,6 @@ ;; Complex number types ;; Liam Healy 2009-01-13 21:24:05EST complex-types.lisp -;; Time-stamp: <2009-04-26 00:02:09EDT complex-types.lisp> +;; Time-stamp: <2009-05-03 10:00:23EDT complex-types.lisp> ;; $Id: $ (in-package :gsl) @@ -27,14 +27,22 @@ ;;; cannot use functions that call or return complex scalars. ;;; See /usr/include/gsl/gsl_complex.h +#+fsbv (fsbv:defcstruct (complex-float-c :constructor complex :deconstructor (realpart imagpart)) (dat :float :count 2)) +#-fsbv +(cffi:defcstruct complex-float-c (dat :float :count 2)) + +#+fsbv (fsbv:defcstruct (complex-double-c :constructor complex :deconstructor (realpart imagpart)) (dat :double :count 2)) +#-fsbv +(cffi:defcstruct complex-double-c (dat :double :count 2)) + #+long-double (cffi:defcstruct complex-long-double-c (dat :long-double :count 2)) diff --git a/init/types.lisp b/init/types.lisp index ace075692793310817700c8bfac4a258b41d0730..969aba87d4ec95cd7ff80c0df307e51189628858 100644 --- a/init/types.lisp +++ b/init/types.lisp @@ -1,6 +1,6 @@ ;; Number types used by GSL functions, and specification conversion ;; Liam Healy 2008-12-31 21:06:34EST types.lisp -;; Time-stamp: <2009-04-29 22:48:31EDT types.lisp> +;; Time-stamp: <2009-05-03 09:42:01EDT types.lisp> ;; $Id: $ (in-package :gsl) @@ -14,11 +14,11 @@ (8 (push :int64 *features*) (cffi:defctype sizet :uint64) - (fsbv:defsynonym sizet :uint64)) + #+fsbv (fsbv:defsynonym sizet :uint64)) (4 (push :int32 *features*) (cffi:defctype sizet :uint32) - (fsbv:defsynonym sizet :uint64)) + #+fsbv (fsbv:defsynonym sizet :uint32)) (t (error "Size of :long unrecognized"))) ;;;;**************************************************************************** diff --git a/linear-algebra/blas1.lisp b/linear-algebra/blas1.lisp index e1f12db7b09bdc5943d2cd76226793db59dace1c..3d37e4a8d1e1dc5fe3d908fd995d149abb160e8b 100644 --- a/linear-algebra/blas1.lisp +++ b/linear-algebra/blas1.lisp @@ -1,6 +1,6 @@ ;; BLAS level 1, Vector operations ;; Liam Healy, Wed Apr 26 2006 - 15:23 -;; Time-stamp: <2009-04-27 21:30:47EDT blas1.lisp> +;; Time-stamp: <2009-05-03 11:28:12EDT blas1.lisp> ;; $Id$ (in-package :gsl) @@ -103,7 +103,7 @@ ("gsl_blas_" :type "axpy") ((alpha :element-c-type) ((mpointer x) :pointer) ((mpointer y) :pointer)) :definition :generic - :element-types :float-complex + :element-types #+fsbv :float-complex #-fsbv :float :inputs (x y) :outputs (y) :documentation ; FDL @@ -115,7 +115,7 @@ ("gsl_blas_" :type "scal") ((alpha :element-c-type) ((mpointer x) :pointer)) :definition :generic - :element-types :float-complex + :element-types #+fsbv :float-complex #-fsbv :float :c-return :void :inputs (x) :outputs (x) @@ -194,12 +194,12 @@ (generate-all-array-tests dot :float-complex (let ((v1 (array-default 8)) - (v2 (array-default 8))) + (v2 (array-default 8))) (dot v1 v2))) (generate-all-array-tests cdot :complex (let ((v1 (array-default 8)) - (v2 (array-default 8))) + (v2 (array-default 8))) (cdot v1 v2))) (generate-all-array-tests euclidean-norm :float-complex @@ -232,7 +232,7 @@ (scalar (scalar-default))) (cl-array (axpy scalar v1 v2)))) -(generate-all-array-tests scale :float-complex +(generate-all-array-tests scale #+fsbv :float-complex #-fsbv :float (let ((v1 (array-default 8)) (scalar (scalar-default))) (cl-array (scale scalar v1)))) diff --git a/linear-algebra/blas2.lisp b/linear-algebra/blas2.lisp index e5d7b83ceb6eafcba385ef2ef06f2016fd0eb1ab..67124af35c71b67183f6a7de4c642a719c3ef426 100644 --- a/linear-algebra/blas2.lisp +++ b/linear-algebra/blas2.lisp @@ -1,6 +1,6 @@ ;; BLAS level 2, Matrix-vector operations ;; Liam Healy, Wed Apr 26 2006 - 21:08 -;; Time-stamp: <2009-04-29 20:38:03EDT blas2.lisp> +;; Time-stamp: <2009-05-03 11:31:55EDT blas2.lisp> ;; $Id$ (in-package :gsl) @@ -15,18 +15,21 @@ "CBLAS_TRANSPOSE from /usr/include/gsl/gsl_cblas.h." (:notrans 111) :trans :conjtrans) +#+fsbv (fsbv:defcenum-aux cblas-transpose) (cffi:defcenum cblas-uplo "/usr/include/gsl/gsl_cblas.h." (:upper 121) :lower) +#+fsbv (fsbv:defcenum-aux cblas-uplo) (cffi:defcenum cblas-diag "/usr/include/gsl/gsl_cblas.h." (:nonunit 131) :unit) +#+fsbv (fsbv:defcenum-aux cblas-diag) ;;;;**************************************************************************** @@ -39,7 +42,6 @@ (second (dimensions b))) (first (dimensions a)))) -;;; To do: the y should be an optional argument, default to a zero vector. (defmfun matrix-product ((A matrix) (x vector) &optional @@ -51,7 +53,7 @@ ((transa cblas-transpose) (alpha :element-c-type) ((mpointer A) :pointer) ((mpointer x) :pointer) (beta :element-c-type) ((mpointer y) :pointer)) :definition :generic - :element-types :float-complex + :element-types #+fsbv :float-complex #-fsbv :float :inputs (A x y) :outputs (y) :documentation ; FDL @@ -78,7 +80,7 @@ :outputs (x) :documentation ; FDL "If the second argument is a vector, compute - the matrix-vector product x =alpha op(A) x + the matrix-vector product x = op(A) x for the triangular matrix A, where op(A) = A, A^T, A^H for TransA = :NoTrans, :Trans, :ConjTrans. When Uplo is :Upper then the upper triangle of A is used, and when @@ -88,7 +90,7 @@ matrix A are taken as unity and are not referenced. If the second argument is a matrix, compute the matrix-matrix product B = alpha op(A) B - if Side is :Left and B = \alpha B op(A) if Side is + if Side is :Left and B = alpha B op(A) if Side is :Right. The matrix A is triangular and op(A) = A, A^T, A^H for TransA = :NoTrans, :Trans, :ConjTrans When Uplo is :Upper then the upper triangle of A is used, and when @@ -157,14 +159,13 @@ are used, and when Uplo is :Lower then the lower triangle and diagonal of A are used.") +#+fsbv (defmfun matrix-product-hermitian ((A matrix) (x vector) &optional (y (make-marray element-type :dimensions (matrix-product-dimensions A x) :initial-element 0)) (alpha 1) (beta 1) (uplo :upper) (side :left)) - ;; This always signals an error because you can't pass a - ;; struct in CFFI yet. ("gsl_blas_" :type "hemv") ((uplo cblas-uplo) (alpha :element-c-type) ((mpointer A) :pointer) ((mpointer x) :pointer) (beta :element-c-type) ((mpointer y) :pointer)) @@ -194,7 +195,7 @@ ((alpha :element-c-type) ((mpointer A) :pointer) ((mpointer x) :pointer) ((mpointer y) :pointer)) :definition :generic - :element-types :float-complex + :element-types #+fsbv :float-complex #-fsbv :float :inputs (x y A) :outputs (A) :documentation ; FDL @@ -205,7 +206,7 @@ ((alpha :element-c-type) ((mpointer A) :pointer) ((mpointer x) :pointer) ((mpointer y) :pointer)) :definition :generic - :element-types :complex + :element-types #+fsbv :float-complex #-fsbv :float :inputs (x y A) :outputs (A) :documentation ; FDL @@ -236,6 +237,7 @@ used, and when Uplo is CblasLower then the lower triangle and diagonal of C are used.") +#+fsbv (defmfun hermitian-rank-1-update ((x vector) (A matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) @@ -289,6 +291,7 @@ then the upper triangle and diagonal of C are used, and when Uplo is :lower then the lower triangle and diagonal of C are used.") +#+fsbv (defmfun hermitian-rank-2-update ((x vector) (y vector) (A matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) @@ -321,7 +324,7 @@ ;;;; Examples and unit test ;;;;**************************************************************************** -(generate-all-array-tests matrix-product :float-complex +(generate-all-array-tests matrix-product #+fsbv :float-complex #-fsbv :float (let ((m1 (array-default '(3 3))) (v1 (array-default 3)) (v2 (array-default 3)) @@ -329,13 +332,15 @@ (s2 (scalar-default))) (cl-array (matrix-product m1 v1 v2 s1 s2)))) -(generate-all-array-tests matrix-product-triangular :float-complex +(generate-all-array-tests matrix-product-triangular + #+fsbv :float-complex #-fsbv :float (let ((m1 (array-default '(3 3))) (v1 (array-default 3)) (s1 (scalar-default))) (cl-array (matrix-product-triangular m1 v1 s1)))) -(generate-all-array-tests inverse-matrix-product :float-complex +(generate-all-array-tests inverse-matrix-product + #+fsbv :float-complex #-fsbv :float (let ((m1 (array-default '(3 3))) (v1 (array-default 3)) (s1 (scalar-default))) @@ -349,6 +354,7 @@ (s2 (scalar-default))) (cl-array (matrix-product-symmetric m1 v1 v3 s1 s2)))) +#+fsbv (generate-all-array-tests matrix-product-hermitian :complex (let ((m1 (array-default '(3 3))) (v1 (array-default 3)) diff --git a/linear-algebra/blas3.lisp b/linear-algebra/blas3.lisp index 5bba4439376d2a31cb32b4933877096ba480908d..95dcfd36dfc73b4147f01ae40aa696e8534bc74f 100644 --- a/linear-algebra/blas3.lisp +++ b/linear-algebra/blas3.lisp @@ -1,6 +1,6 @@ ;; BLAS level 3, Matrix-matrix operations ;; Liam Healy, Wed Apr 26 2006 - 21:08 -;; Time-stamp: <2009-04-29 20:36:48EDT blas3.lisp> +;; Time-stamp: <2009-05-03 11:18:02EDT blas3.lisp> ;; $Id$ (in-package :gsl) @@ -15,6 +15,7 @@ "/usr/include/gsl/gsl_cblas.h." (:left 141) :right) +#+fsbv (fsbv:defcenum-aux cblas-side) ;;;;**************************************************************************** @@ -33,7 +34,7 @@ (alpha :element-c-type) ((mpointer A) :pointer) ((mpointer B) :pointer) (beta :element-c-type) ((mpointer C) :pointer)) :definition :methods - :element-types :float-complex + :element-types #+fsbv :float-complex #-fsbv :float :inputs (A B C) :outputs (C)) @@ -48,10 +49,11 @@ ((mpointer A) :pointer) ((mpointer B) :pointer) (beta :element-c-type) ((mpointer C) :pointer)) :definition :methods - :element-types :float-complex + :element-types #+fsbv :float-complex #-fsbv :float :inputs (A B C) :outputs (C)) +#+fsbv (defmfun matrix-product-hermitian ((A matrix) (B matrix) &optional @@ -78,7 +80,7 @@ (diag cblas-diag) (alpha :element-c-type) ((mpointer A) :pointer) ((mpointer B) :pointer)) :definition :methods - :element-types :float-complex + :element-types #+fsbv :float-complex #-fsbv :float :inputs (A B) :outputs (B)) @@ -93,7 +95,7 @@ (TransA cblas-transpose) (diag cblas-diag) (alpha :element-c-type) ((mpointer A) :pointer) ((mpointer B) :pointer)) :definition :methods - :element-types :float-complex + :element-types #+fsbv :float-complex #-fsbv :float :inputs (A B) :outputs (B)) @@ -105,10 +107,11 @@ (alpha :element-c-type) ((mpointer A) :pointer) (beta :element-c-type) ((mpointer C) :pointer)) :definition :methods - :element-types :float-complex + :element-types #+fsbv :float-complex #-fsbv :float :inputs (A C) :outputs (C)) +#+fsbv (defmfun hermitian-rank-1-update ((A matrix) (C matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) @@ -134,6 +137,7 @@ :inputs (A B C) :outputs (C)) +#+fsbv (defmfun hermitian-rank-2-update ((A matrix) (B matrix) (C matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) @@ -151,7 +155,7 @@ ;;;; Examples and unit test ;;;;**************************************************************************** -(generate-all-array-tests matrix-product :float-complex +(generate-all-array-tests matrix-product #+fsbv :float-complex #-fsbv :float (let ((m1 (array-default '(3 3))) (m2 (array-default '(3 3))) (m3 (array-default '(3 3))) @@ -164,13 +168,15 @@ (m2 (array-default '(3 2)))) (cl-array (matrix-product m1 m2)))) -(generate-all-array-tests matrix-product-triangular :float-complex +(generate-all-array-tests matrix-product-triangular + #+fsbv :float-complex #-fsbv :float (let ((m1 (array-default '(3 3))) (m2 (array-default '(3 3))) (s1 (scalar-default))) (cl-array (matrix-product-triangular m1 m2 s1)))) -(generate-all-array-tests inverse-matrix-product :float-complex +(generate-all-array-tests inverse-matrix-product + #+fsbv :float-complex #-fsbv :float (let ((m1 (array-default '(3 3))) (m2 (array-default '(3 3))) (s1 (scalar-default))) @@ -184,6 +190,7 @@ (s2 (scalar-default))) (cl-array (matrix-product-symmetric m1 m2 m3 s1 s2)))) +#+fsbv (generate-all-array-tests matrix-product-hermitian :complex (let ((m1 (array-default '(3 3))) (m2 (array-default '(3 3))) diff --git a/polynomial.lisp b/polynomial.lisp index 8adc4df59308e4595a39d89fb288f86ffd337f41..c4e4d5afb73244cf003fcdc4dca8fe393da6610d 100644 --- a/polynomial.lisp +++ b/polynomial.lisp @@ -1,6 +1,6 @@ ;; Polynomials ;; Liam Healy, Tue Mar 21 2006 - 18:33 -;; Time-stamp: <2009-04-30 22:57:18EDT polynomial.lisp> +;; Time-stamp: <2009-05-03 09:37:35EDT polynomial.lisp> ;; $Id$ (in-package :gsl) @@ -26,6 +26,7 @@ :documentation ; FDL "Evaluate the polyonomial with coefficients at the point x.") +#+fsbv (defmfun evaluate ((coefficients vector-double-float) (x complex) &key) @@ -39,6 +40,7 @@ :documentation ; FDL "Evaluate the polyonomial with coefficients at the complex value x.") +#+fsbv (defmfun evaluate ((coefficients vector-complex-double-float) (x complex) &key) diff --git a/tests/axpy.lisp b/tests/axpy.lisp index be0969284d2e83e23d6efb56f5bdec50b419a7ea..86db499bdbbf7e1cd11a4d6968cb2191ad757dbe 100644 --- a/tests/axpy.lisp +++ b/tests/axpy.lisp @@ -36,6 +36,7 @@ -49.08d0))) (SCALAR -39.66d0)) (CL-ARRAY (AXPY SCALAR V1 V2))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #(#C(1808.3204 1422.3015) #C(-589.3992 234.75043) @@ -59,6 +60,7 @@ 31.67))) (SCALAR #C(-39.66 -49.46))) (CL-ARRAY (AXPY SCALAR V1 V2))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #(#C(1808.3204d0 1422.3016000000002d0) diff --git a/tests/inverse-matrix-product.lisp b/tests/inverse-matrix-product.lisp index bfac7c9df004a9c65a198af63c72415d10e5ecff..d84e0ba58975247a13a2f50614b697bf443ee2e9 100644 --- a/tests/inverse-matrix-product.lisp +++ b/tests/inverse-matrix-product.lisp @@ -42,6 +42,7 @@ (-49.08d0 -39.66d0 -49.46d0)))) (S1 19.68d0)) (CL-ARRAY (INVERSE-MATRIX-PRODUCT M1 M2 S1))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #2A((#C(-28.191956 35.052914) #C(-13.378113 28.736774) @@ -71,6 +72,7 @@ -5.55 -8.82)))) (S1 #C(19.68 -5.55))) (CL-ARRAY (INVERSE-MATRIX-PRODUCT M1 M2 S1))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #2A((#C(-28.191956546692666d0 35.052909000810466d0) diff --git a/tests/matrix-product-nonsquare.lisp b/tests/matrix-product-nonsquare.lisp index 14ee6e713b52b2ffb36e536b7313358ced229567..1b580601a9abaac0f98ef497798eb744670d42cd 100644 --- a/tests/matrix-product-nonsquare.lisp +++ b/tests/matrix-product-nonsquare.lisp @@ -30,6 +30,7 @@ (32.5d0 42.73d0) (-17.24d0 43.31d0))))) (CL-ARRAY (MATRIX-PRODUCT M1 M2))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #2A((#C(-1422.0259 2305.5098) @@ -51,6 +52,7 @@ (32.5 42.73 -17.24 43.31) (-17.24 43.31 -16.12 -8.25))))) (CL-ARRAY (MATRIX-PRODUCT M1 M2))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #2A((#C(-1422.0258d0 2305.5097000000005d0) diff --git a/tests/matrix-product-triangular.lisp b/tests/matrix-product-triangular.lisp index 5f98794b2411cea6d364d16c8c736f7904762fd3..4f5dc56eae337a932575694994ce61acddd11194 100644 --- a/tests/matrix-product-triangular.lisp +++ b/tests/matrix-product-triangular.lisp @@ -42,6 +42,7 @@ (-49.08d0 -39.66d0 -49.46d0)))) (S1 19.68d0)) (CL-ARRAY (MATRIX-PRODUCT-TRIANGULAR M1 M2 S1))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #2A((#C(-66397.9 18986.908) #C(-56335.145 48514.305) @@ -72,6 +73,7 @@ -5.55 -8.82)))) (S1 #C(19.68 -5.55))) (CL-ARRAY (MATRIX-PRODUCT-TRIANGULAR M1 M2 S1))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #2A((#C(-66397.89753899998d0 18986.908142999997d0) @@ -130,6 +132,7 @@ '(42.73d0 -17.24d0 43.31d0))) (S1 -16.12d0)) (CL-ARRAY (MATRIX-PRODUCT-TRIANGULAR M1 V1 S1))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #(#C(-1483.223 1289.3523) #C(-57.63159 1675.6711) @@ -151,6 +154,7 @@ 21.44))) (S1 #C(-16.12 -8.25))) (CL-ARRAY (MATRIX-PRODUCT-TRIANGULAR M1 V1 S1))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #(#C(-1483.2230999999997d0 1289.3523999999998d0) diff --git a/tests/matrix-product.lisp b/tests/matrix-product.lisp index 7389dc1c6bbb8645399ede4377979270b85762cc..de5af1a036c54e3f2b672cc154ec5fe72d6093df 100644 --- a/tests/matrix-product.lisp +++ b/tests/matrix-product.lisp @@ -54,6 +54,7 @@ (S1 -41.67d0) (S2 42.0d0)) (CL-ARRAY (MATRIX-PRODUCT M1 M2 M3 S1 S2))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #2A((#C(140927.64 -143005.16) #C(72986.305 -201162.86) @@ -93,6 +94,7 @@ (S1 #C(-41.67 42.0)) (S2 #C(42.0 -20.81))) (CL-ARRAY (MATRIX-PRODUCT M1 M2 M3 S1 S2))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #2A((#C(140927.638311d0 -143005.14965699997d0) @@ -171,6 +173,7 @@ (S1 -49.08d0) (S2 -39.66d0)) (CL-ARRAY (MATRIX-PRODUCT M1 V1 V2 S1 S2))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #(#C(124163.57 -3332.2988) #C(119793.48 -166378.0) @@ -198,6 +201,7 @@ (S1 #C(-49.08 -39.66)) (S2 #C(-39.66 -49.46))) (CL-ARRAY (MATRIX-PRODUCT M1 V1 V2 S1 S2))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #(#C(124163.58013199999d0 -3332.2974459999896d0) diff --git a/tests/matrix-set-all.lisp b/tests/matrix-set-all.lisp index 44cb017b5d321badc60ed12080d704ee69bbce90..ce5782110a14e54efed2e9c3e48018f779e781ff 100644 --- a/tests/matrix-set-all.lisp +++ b/tests/matrix-set-all.lisp @@ -21,6 +21,7 @@ (LET ((M1 (MAKE-MARRAY 'DOUBLE-FLOAT :DIMENSIONS '(3 3)))) (CL-ARRAY (SET-ALL M1 -34.5d0))))) + #+fsbv (LISP-UNIT:ASSERT-NUMERICAL-EQUAL (LIST #2A((#C(-34.5 8.24) #C(-34.5 8.24) #C(-34.5 8.24)) @@ -31,6 +32,7 @@ (MAKE-MARRAY '(COMPLEX SINGLE-FLOAT) :DIMENSIONS '(3 3)))) (CL-ARRAY (SET-ALL M1 #C(-34.5 8.24)))))) + #+fsbv (LISP-UNIT:ASSERT-NUMERICAL-EQUAL (LIST #2A((#C(-34.5d0 8.24d0) #C(-34.5d0 8.24d0) diff --git a/tests/scale.lisp b/tests/scale.lisp index e40fe7c5f7107fde2ec6715695bad719ed56681d..50e49f0f4665d5c85dd8b5412094ccc4170a29d9 100644 --- a/tests/scale.lisp +++ b/tests/scale.lisp @@ -62,6 +62,7 @@ -13.49d0))) (SCALAR 32.5d0)) (CL-ARRAY (SCALE SCALAR V1))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #(#C(-1473.3452 -1206.385) #C(488.5039 -149.64331) @@ -78,6 +79,7 @@ -49.08))) (SCALAR #C(32.5 42.73))) (CL-ARRAY (SCALE SCALAR V1))))) + #+fsbv (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST #(#C(-1473.3452d0 -1206.385d0) diff --git a/tests/vector-set-all.lisp b/tests/vector-set-all.lisp index 826390747289e973b2aa22ed2a138d0f0a4b6813..331e3dfee42d7eaa14b348d5611e58ff14c88162 100644 --- a/tests/vector-set-all.lisp +++ b/tests/vector-set-all.lisp @@ -13,6 +13,7 @@ (MULTIPLE-VALUE-LIST (LET ((V1 (MAKE-MARRAY 'DOUBLE-FLOAT :DIMENSIONS '3))) (CL-ARRAY (SET-ALL V1 -34.5d0))))) + #+fsbv (LISP-UNIT:ASSERT-NUMERICAL-EQUAL (LIST #(#C(-34.5 8.24) #C(-34.5 8.24) #C(-34.5 8.24))) (MULTIPLE-VALUE-LIST @@ -20,6 +21,7 @@ (MAKE-MARRAY '(COMPLEX SINGLE-FLOAT) :DIMENSIONS '3))) (CL-ARRAY (SET-ALL V1 #C(-34.5 8.24)))))) + #+fsbv (LISP-UNIT:ASSERT-NUMERICAL-EQUAL (LIST #(#C(-34.5d0 8.24d0) #C(-34.5d0 8.24d0)