diff --git a/books/bookvol10.5.pamphlet b/books/bookvol10.5.pamphlet index 9a76229..8c23f76 100644 --- a/books/bookvol10.5.pamphlet +++ b/books/bookvol10.5.pamphlet @@ -1954,6 +1954,12 @@ c \end{chunk} +Compile with +\begin{verbatim} +gcc -c daxpy.f +gcc -o daxpyEx daxpyEX.f -lgfortran daxpy.o +\end{verbatim} + \begin{chunk}{daxpy example} program daxpyEX * Tim Daly April 24, 2012 @@ -1971,6 +1977,7 @@ c 102 format("b(1)=",f6.3," b(2)=",f6.3," b(3)=",f6.3) write(6,103)b(4),b(5),b(6) 103 format("b(4)=",f6.3," b(5)=",f6.3," b(6)=",f6.3) + call daxpy(3,2.0d0,a,1,b,1) write(6,200) 200 format(/,"t200 is (/ 3.0, 6.0, 9.0, 4.0, 5.0, 6.0, 7.0 /)") @@ -1978,36 +1985,42 @@ c 201 format("b(1)=",f6.3," b(2)=",f6.3," b(3)=",f6.3) write(6,202)b(4),b(5),b(6),b(7) 202 format("b(4)=",f6.3," b(5)=",f6.3," b(6)=",f6.3," b(7)=",f6.3) + write(6,300) 300 format(/,"t300 is (/ 3.0, 6.0, 9.0, 12.0, 15.0, 18.0, 21.0 /)") b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /) call daxpy(7,2.0d0,a,1,b,1) write(6,201)b(1),b(2),b(3) write(6,202)b(4),b(5),b(6),b(7) + write(6,302) 302 format(/,"t302 is (/ 3.0, 2.0, 3.0, 12.0, 5.0, 6.0, 21.0 /)") b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /) call daxpy(3,2.0d0,a,3,b,3) write(6,201)b(1),b(2),b(3) write(6,202)b(4),b(5),b(6),b(7) + write(6,303) 303 format(/,"t303 is (/ 3.0, 2.0, 9.0, 4.0, 15.0, 6.0, 21.0 /)") b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /) call daxpy(4,2.0d0,a,2,b,2) write(6,201)b(1),b(2),b(3) write(6,202)b(4),b(5),b(6),b(7) + write(6,305) 305 format(/,"t305 is (/ 3.0, 2.0, 9.0, 4.0, 15.0, 6.0, 7.0 /)") b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /) call daxpy(3,2.0d0,a,2,b,2) write(6,201)b(1),b(2),b(3) write(6,202)b(4),b(5),b(6),b(7) + write(6,306) 306 format(/,"t306 is (/ -1.0, 2.0, -1.0, 4.0, -1.0, 6.0, 7.0 /)") b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /) call daxpy(3,-2.0d0,a,1,b,2) write(6,201)b(1),b(2),b(3) write(6,202)b(4),b(5),b(6),b(7) + write(6,307) 307 format(/,"t307 is (/ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0 /)") b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /) @@ -2430,6 +2443,78 @@ c \end{chunk} +Compile with +\begin{verbatim} +gcc -c dcopy.f +gcc -o dcopyEx dcopyEX.f -lgfortran dcopy.o +\end{verbatim} + +\begin{chunk}{dcopy example} + program dcopyEX +* Tim Daly April 27, 2012 +* unit tests for BLAS dcopy + double precision a(7) + double precision b(7) + a = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /) + b = (/ 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /) + write(6,100)a(1),a(2),a(3) + 100 format("a(1)=",f6.3," a(2)=",f6.3," a(3)=",f6.3) + write(6,101)a(4),a(5),a(6) + 101 format("a(4)=",f6.3," a(5)=",f6.3," a(6)=",f6.3) + write(6,102)b(1),b(2),b(3) + 102 format("b(1)=",f6.3," b(2)=",f6.3," b(3)=",f6.3) + write(6,103)b(4),b(5),b(6) + 103 format("b(4)=",f6.3," b(5)=",f6.3," b(6)=",f6.3) + + call dcopy(3,a,1,b,1) + write(6,200) + 200 format(/,"t200 is (/ 1.0 2.0 3.0 0.0 0.0 0.0 0.0 /)") + write(6,201)b(1),b(2),b(3) + 201 format("b(1)=",f6.3," b(2)=",f6.3," b(3)=",f6.3) + write(6,202)b(4),b(5),b(6),b(7) + 202 format("b(4)=",f6.3," b(5)=",f6.3," b(6)=",f6.3," b(7)=",f6.3) + + write(6,300) + 300 format(/,"t300 is (/ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0 /)") + b = (/ 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /) + call dcopy(7,a,1,b,1) + write(6,201)b(1),b(2),b(3) + write(6,202)b(4),b(5),b(6),b(7) + + write(6,302) + 302 format(/,"t302 is (/ 1.0, 0.0, 0.0, 4.0, 0.0, 0.0, 7.0 /)") + b = (/ 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /) + call dcopy(3,a,3,b,3) + write(6,201)b(1),b(2),b(3) + write(6,202)b(4),b(5),b(6),b(7) + + write(6,303) + 303 format(/,"t303 is (/ 1.0, 0.0, 3.0, 0.0, 5.0, 0.0, 7.0 /)") + b = (/ 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /) + call dcopy(4,a,2,b,2) + write(6,201)b(1),b(2),b(3) + write(6,202)b(4),b(5),b(6),b(7) + + write(6,305) + 305 format(/,"t305 is (/ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 0.0 /)") + a = (/ 1.0D0, 2.0D0, 3.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /) + b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 0.0D0, 0.0D0 /) + call dcopy(3,a,1,b,1) + write(6,201)b(1),b(2),b(3) + write(6,202)b(4),b(5),b(6),b(7) + + write(6,306) + 306 format(/,"t306 is (/ 1.0, 2.0, 2.0, 4.0, 3.0, 0.0, 0.0 /)") + a = (/ 1.0D0, 2.0D0, 3.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /) + b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 0.0D0, 0.0D0 /) + call dcopy(3,a,1,b,2) + write(6,201)b(1),b(2),b(3) + write(6,202)b(4),b(5),b(6),b(7) + + stop + end +\end{chunk} + \begin{chunk}{BLAS 1 dcopy} (defun dcopy (n dx incx dy incy) (declare (type (simple-array double-float) dy dx) @@ -2455,6 +2540,33 @@ c dy) \end{chunk} + +\begin{chunk}{BLAS 1 dcopy lisp test} +(setq a (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0 6.0d0 7.0d0)) +(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0)) +(dcopy 3 a 1 b 1) +(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0)) +(dcopy 7 a 1 b 1) +(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0)) +(dcopy 8 a 1 b 1) +(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0)) +(dcopy 3 a 3 b 3) +(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0)) +(dcopy 4 a 2 b 2) +(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0)) +(dcopy 5 a 2 b 2) +(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0)) +(dcopy 3 a 2 b 2) +(setq a (vector 1.0d0 2.0d0 3.0d0)) +(setq b (vector 0.0d0 0.0d0 3.0d0 4.0d0 5.0d0)) +(dcopy 3 a 1 b 1) +b +(setq b (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)) +(dcopy 3 a 1 b 2) +(setq a (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)) +(setq b (vector 1.0d0 2.0d0 3.0d0)) +(dcopy 5 a 1 b 1) +\end{chunk} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{ddot BLAS} %\pagehead{ddot}{ddot} diff --git a/changelog b/changelog index 2893cef..405da15 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20120427 tpd src/axiom-website/patches.html 20120427.01.tpd.patch +20120427 tpd books/bookvol10.5 BLAS1 dcopy test cases 20120425 tpd src/axiom-website/patches.html 20120425.01.tpd.patch 20120425 tpd books/bookvol10.5 BLAS1 daxpy test cases 20120423 tpd src/axiom-website/patches.html 20120423.01.tpd.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 03e5e07..e783c66 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3890,5 +3890,7 @@ books/bookvol10.5 add LAPACK reference code
books/bookvol10.5 add missing lapack routines
20120425.01.tpd.patch books/bookvol10.5 BLAS1 daxpy test cases
+20120427.01.tpd.patch +books/bookvol10.5 BLAS1 dcopy test cases