Changeset 48

Show
Ignore:
Timestamp:
03/28/08 14:39:15 (8 months ago)
Author:
lhealy
Message:

Split test into two separate tests, blas1-single and blas1-double, and
leave comment indicating that #'make-tests macro should be expanded
with the opposite binding of *read-default-float-format* so that the
exponent marker will appear on the float in the expansion. This
insures that regardless of how *read-default-float-format* is set on
compilation, the right thing will be read.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/linear-algebra/blas1.lisp

    r34 r48  
    11;; BLAS level 1, Vector operations 
    22;; Liam Healy, Wed Apr 26 2006 - 15:23 
    3 ;; Time-stamp: <2008-03-09 19:35:09EDT blas1.lisp> 
     3;; Time-stamp: <2008-03-28 10:35:04EDT blas1.lisp> 
    44;; $Id$ 
    55 
     
    174174 
    175175#| 
    176 (make-tests blas1 
     176;;; Before expanding, set  
     177;;; (setf *read-default-float-format* 'double-float) 
     178(make-tests blas1-single 
    177179 ;; single 
    178180 (letm ((a (vector-single-float #(1.0f0 2.0f0 3.0f0))) 
     
    198200         (b (vector-single-float #(8.0f0 9.0f0)))) 
    199201    (rot a b (/ (sqrt 2.0f0)) (/ (sqrt 2.0f0))) 
    200     (data b)) 
    201  ;; double 
     202    (data b))) 
     203 
     204;;; Before expanding, set  
     205;;; (setf *read-default-float-format* 'single-float) 
     206(make-tests blas1-double 
    202207 (letm ((a (vector-double-float #(1.0d0 2.0d0 3.0d0))) 
    203208        (b (vector-double-float #(3.0d0 4.0d0 5.0d0)))) 
     
    230235   (rot a b (/ (sqrt 2.0d0)) (/ (sqrt 2.0d0))) 
    231236   (data b))) 
     237 
    232238|# 
    233239 
    234 (LISP-UNIT:DEFINE-TEST BLAS1 
    235   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
    236    (LIST 26.0) 
    237    (MULTIPLE-VALUE-LIST 
    238     (LETM ((A (VECTOR-SINGLE-FLOAT #(1.0 2.0 3.0))) 
    239            (B (VECTOR-SINGLE-FLOAT #(3.0 4.0 5.0)))) 
     240(LISP-UNIT:DEFINE-TEST BLAS1-SINGLE 
     241  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
     242   (LIST 26.0f0) 
     243   (MULTIPLE-VALUE-LIST 
     244    (LETM ((A (VECTOR-SINGLE-FLOAT #(1.0f0 2.0f0 3.0f0))) 
     245           (B (VECTOR-SINGLE-FLOAT #(3.0f0 4.0f0 5.0f0)))) 
    240246      (DOT A B)))) 
    241247  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
    242    (LIST 7.071068) 
    243    (MULTIPLE-VALUE-LIST 
    244     (LETM ((B (VECTOR-SINGLE-FLOAT #(3.0 4.0 5.0)))) 
     248   (LIST 7.071068f0) 
     249   (MULTIPLE-VALUE-LIST 
     250    (LETM ((B (VECTOR-SINGLE-FLOAT #(3.0f0 4.0f0 5.0f0)))) 
    245251      (NORM B)))) 
    246252  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
    247    (LIST 12.0) 
    248    (MULTIPLE-VALUE-LIST 
    249     (LETM ((B (VECTOR-SINGLE-FLOAT #(3.0 4.0 5.0)))) 
     253   (LIST 12.0f0) 
     254   (MULTIPLE-VALUE-LIST 
     255    (LETM ((B (VECTOR-SINGLE-FLOAT #(3.0f0 4.0f0 5.0f0)))) 
    250256      (ASUM B)))) 
    251257  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
    252258   (LIST 1) 
    253259   (MULTIPLE-VALUE-LIST 
    254     (LETM ((B (VECTOR-SINGLE-FLOAT #(3.0 5.0 4.0)))) 
     260    (LETM ((B (VECTOR-SINGLE-FLOAT #(3.0f0 5.0f0 4.0f0)))) 
    255261      (IMAX B)))) 
    256262  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
    257    (LIST #(5.0 8.0 11.0)) 
    258    (MULTIPLE-VALUE-LIST 
    259     (LETM ((A (VECTOR-SINGLE-FLOAT #(1.0 2.0 3.0))) 
    260            (B (VECTOR-SINGLE-FLOAT #(3.0 4.0 5.0)))) 
    261       (SETF (DATA A) #(1.0 2.0 3.0) 
    262             (DATA B) #(3.0 4.0 5.0)) 
    263       (AXPY 2.0 A B) (DATA B)))) 
    264   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
    265    (LIST #(6.0 8.0 10.0)) 
    266    (MULTIPLE-VALUE-LIST 
    267     (LETM ((B (VECTOR-SINGLE-FLOAT #(3.0 4.0 5.0)))) 
    268       (SETF (DATA B) #(3.0 4.0 5.0)) (SCAL 2.0 B) 
    269       (DATA B)))) 
    270   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
    271    (LIST #(4.9497476 4.2426405)) 
    272    (MULTIPLE-VALUE-LIST 
    273     (LETM ((A (VECTOR-SINGLE-FLOAT #(1.0 3.0))) 
    274            (B (VECTOR-SINGLE-FLOAT #(8.0 9.0)))) 
    275       (ROT A B (/ (SQRT 2.0)) (/ (SQRT 2.0))) (DATA B)))) 
     263   (LIST #(5.0f0 8.0f0 11.0f0)) 
     264   (MULTIPLE-VALUE-LIST 
     265    (LETM 
     266        ((A (VECTOR-SINGLE-FLOAT #(1.0f0 2.0f0 3.0f0))) 
     267         (B (VECTOR-SINGLE-FLOAT #(3.0f0 4.0f0 5.0f0)))) 
     268      (SETF (DATA A) 
     269            #(1.0f0 2.0f0 3.0f0) 
     270            (DATA B) 
     271            #(3.0f0 4.0f0 5.0f0)) 
     272      (AXPY 2.0f0 A B) (DATA B)))) 
     273  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
     274   (LIST #(6.0f0 8.0f0 10.0f0)) 
     275   (MULTIPLE-VALUE-LIST 
     276    (LETM ((B (VECTOR-SINGLE-FLOAT #(3.0f0 4.0f0 5.0f0)))) 
     277      (SETF (DATA B) #(3.0f0 4.0f0 5.0f0)) 
     278      (SCAL 2.0f0 B) (DATA B)))) 
     279  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
     280   (LIST #(4.9497476f0 4.2426405f0)) 
     281   (MULTIPLE-VALUE-LIST 
     282    (LETM 
     283        ((A (VECTOR-SINGLE-FLOAT #(1.0f0 3.0f0))) 
     284         (B (VECTOR-SINGLE-FLOAT #(8.0f0 9.0f0)))) 
     285      (ROT A B (/ (SQRT 2.0f0)) (/ (SQRT 2.0f0))) 
     286      (DATA B))))) 
     287 
     288(LISP-UNIT:DEFINE-TEST BLAS1-DOUBLE 
    276289  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
    277290   (LIST 26.0d0) 
     
    300313   (LIST #(3.0d0 4.0d0 5.0d0)) 
    301314   (MULTIPLE-VALUE-LIST 
    302     (LETM ((A (VECTOR-DOUBLE-FLOAT #(1.0d0 2.0d0 3.0d0))) 
    303            (B (VECTOR-DOUBLE-FLOAT #(3.0d0 4.0d0 5.0d0)))) 
     315    (LETM 
     316        ((A (VECTOR-DOUBLE-FLOAT #(1.0d0 2.0d0 3.0d0))) 
     317         (B (VECTOR-DOUBLE-FLOAT #(3.0d0 4.0d0 5.0d0)))) 
    304318      (BLAS-SWAP A B) (DATA A)))) 
    305319  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
     
    328342      (DATA B))))) 
    329343 
     344