diff --git a/books/bookvol10.5.pamphlet b/books/bookvol10.5.pamphlet index 023c286..1262b46 100644 --- a/books/bookvol10.5.pamphlet +++ b/books/bookvol10.5.pamphlet @@ -380,7 +380,7 @@ stored in $DX(1+ (N-1)*|INCX|)$. )set message auto off )clear all ---S 1 of 183 +--S 1 of 208 t1:Complex DoubleFloat := complex(1.0,0) --R --R @@ -388,7 +388,7 @@ t1:Complex DoubleFloat := complex(1.0,0) --R Type: Complex(DoubleFloat) --E 1 ---S 2 of 183 +--S 2 of 208 dcabs1(t1) --R --R @@ -396,7 +396,7 @@ dcabs1(t1) --R Type: DoubleFloat --E 2 ---S 3 of 183 +--S 3 of 208 t2:Complex DoubleFloat := complex(1.0,1.0) --R --R @@ -404,7 +404,7 @@ t2:Complex DoubleFloat := complex(1.0,1.0) --R Type: Complex(DoubleFloat) --E 3 ---S 4 of 183 +--S 4 of 208 dcabs1(t2) --R --R @@ -412,7 +412,7 @@ dcabs1(t2) --R Type: DoubleFloat --E 4 ---S 5 of 183 +--S 5 of 208 t3:Complex DoubleFloat := complex(1.0,-1.0) --R --R @@ -420,7 +420,7 @@ t3:Complex DoubleFloat := complex(1.0,-1.0) --R Type: Complex(DoubleFloat) --E 5 ---S 6 of 183 +--S 6 of 208 dcabs1(t3) --R --R @@ -428,7 +428,7 @@ dcabs1(t3) --R Type: DoubleFloat --E 6 ---S 7 of 183 +--S 7 of 208 t4:Complex DoubleFloat := complex(-1.0,-1.0) --R --R @@ -436,7 +436,7 @@ t4:Complex DoubleFloat := complex(-1.0,-1.0) --R Type: Complex(DoubleFloat) --E 7 ---S 8 of 183 +--S 8 of 208 dcabs1(t4) --R --R @@ -444,7 +444,7 @@ dcabs1(t4) --R Type: DoubleFloat --E 8 ---S 9 of 183 +--S 9 of 208 t5:Complex DoubleFloat := complex(-2.0,-2.0) --R --R @@ -452,7 +452,7 @@ t5:Complex DoubleFloat := complex(-2.0,-2.0) --R Type: Complex(DoubleFloat) --E 9 ---S 10 of 183 +--S 10 of 208 dcabs1(t5) --R --R @@ -462,196 +462,196 @@ dcabs1(t5) )clear all ---S 11 of 183 +--S 11 of 208 a:PRIMARR(DFLOAT):=[ [1.0,2.0,3.0,4,0,5,0,6,0] ] --R --R (1) [1.,2.,3.,4.,0.,5.,0.,6.,0.] --R Type: PrimitiveArray(DoubleFloat) --E 11 ---S 12 of 183 +--S 12 of 208 dasum(3,a,-1) -- 0.0 neg incx --R --R (2) 0. --R Type: DoubleFloat --E 12 ---S 13 of 183 +--S 13 of 208 dasum(3,a,0) -- 0.0 zero incx --R --R (3) 0. --R Type: DoubleFloat --E 13 ---S 14 of 183 +--S 14 of 208 dasum(-1,a,1) -- 0.0 neg elements --R --R (4) 0. --R Type: DoubleFloat --E 14 ---S 15 of 183 +--S 15 of 208 dasum(0,a,1) -- 0.0 no elements --R --R (5) 0. --R Type: DoubleFloat --E 15 ---S 16 of 183 +--S 16 of 208 dasum(1,a,1) -- 1.0 1.0 --R --R (6) 1. --R Type: DoubleFloat --E 16 ---S 17 of 183 +--S 17 of 208 dasum(2,a,1) -- 3.0 1.0+2.0 --R --R (7) 3. --R Type: DoubleFloat --E 17 ---S 18 of 183 +--S 18 of 208 dasum(3,a,1) -- 6.0 1.0+2.0+3.0 --R --R (8) 6. --R Type: DoubleFloat --E 18 ---S 19 of 183 +--S 19 of 208 dasum(4,a,1) -- 10.0 1.0+2.0+3.0+4.0 --R --R (9) 10. --R Type: DoubleFloat --E 19 ---S 20 of 183 +--S 20 of 208 dasum(5,a,1) -- 15.0 1.0+2.0+3.0+4.0+5.0 --R --R (10) 10. --R Type: DoubleFloat --E 20 ---S 21 of 183 +--S 21 of 208 dasum(6,a,1) -- 21.0 1.0+2.0+3.0+4.0+5.0+6.0 --R --R (11) 15. --R Type: DoubleFloat --E 21 ---S 22 of 183 +--S 22 of 208 dasum(7,a,1) -- 21.0 1.0+2.0+3.0+4.0+5.0+6.0 --R --R (12) 15. --R Type: DoubleFloat --E 22 ---S 23 of 183 +--S 23 of 208 dasum(1,a,2) -- 1.0 1.0 --R --R (13) 1. --R Type: DoubleFloat --E 23 ---S 24 of 183 +--S 24 of 208 dasum(2,a,2) -- 4.0 1.0+3.0 --R --R (14) 4. --R Type: DoubleFloat --E 24 ---S 25 of 183 +--S 25 of 208 dasum(3,a,2) -- 9.0 1.0+3.0+5.0 --R --R (15) 4. --R Type: DoubleFloat --E 25 ---S 26 of 183 +--S 26 of 208 dasum(4,a,2) -- 9.0 1.0+3.0+5.0 --R --R (16) 4. --R Type: DoubleFloat --E 26 ---S 27 of 183 +--S 27 of 208 dasum(1,a,3) -- 1.0 1.0 --R --R (17) 1. --R Type: DoubleFloat --E 27 ---S 28 of 183 +--S 28 of 208 dasum(2,a,3) -- 5.0 1.0+4.0 --R --R (18) 5. --R Type: DoubleFloat --E 28 ---S 29 of 183 +--S 29 of 208 dasum(3,a,3) -- 5.0 1.0+4.0 --R --R (19) 5. --R Type: DoubleFloat --E 29 ---S 30 of 183 +--S 30 of 208 dasum(1,a,4) -- 1.0 1.0 --R --R (20) 1. --R Type: DoubleFloat --E 30 ---S 31 of 183 +--S 31 of 208 dasum(2,a,4) -- 6.0 1.0+5.0 --R --R (21) 1. --R Type: DoubleFloat --E 31 ---S 32 of 183 +--S 32 of 208 dasum(3,a,4) -- 6.0 1.0+5.0 --R --R (22) 1. --R Type: DoubleFloat --E 32 ---S 33 of 183 +--S 33 of 208 dasum(1,a,5) -- 1.0 1.0 --R --R (23) 1. --R Type: DoubleFloat --E 33 ---S 34 of 183 +--S 34 of 208 dasum(2,a,5) -- 7.0 1.0+6.0 --R --R (24) 6. --R Type: DoubleFloat --E 34 ---S 35 of 183 +--S 35 of 208 dasum(3,a,5) -- 7.0 1.0+6.0 --R --R (25) 6. --R Type: DoubleFloat --E 35 ---S 36 of 183 +--S 36 of 208 dasum(1,a,6) -- 1.0 1.0 --R --R (26) 1. --R Type: DoubleFloat --E 36 ---S 37 of 183 +--S 37 of 208 dasum(2,a,6) -- 1.0 1.0 --R --R (27) 1. --R Type: DoubleFloat --E 37 ---S 38 of 183 +--S 38 of 208 dasum(1,a,7) -- 1.0 1.0 --R --R (28) 1. @@ -660,7 +660,7 @@ dasum(1,a,7) -- 1.0 1.0 )clear all ---S 39 of 183 +--S 39 of 208 a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -668,7 +668,7 @@ a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 39 ---S 40 of 183 +--S 40 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -676,7 +676,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 40 ---S 41 of 183 +--S 41 of 208 daxpy(3,2.0,a,1,b,1) --R --R @@ -684,7 +684,7 @@ daxpy(3,2.0,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 41 ---S 42 of 183 +--S 42 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -692,7 +692,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 42 ---S 43 of 183 +--S 43 of 208 daxpy(7,2.0,a,1,b,1) --R --R @@ -700,7 +700,7 @@ daxpy(7,2.0,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 43 ---S 44 of 183 +--S 44 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -713,7 +713,7 @@ Note that Axiom properly handles array indexes that are out of bounds. The BLAS daxpy routine cannot check this condition. \begin{chunk}{BlasLevelOne.input} ---S 45 of 183 +--S 45 of 208 daxpy(8,2.0,a,1,b,1) --R --R @@ -721,7 +721,7 @@ daxpy(8,2.0,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 45 ---S 46 of 183 +--S 46 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -729,7 +729,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 46 ---S 47 of 183 +--S 47 of 208 daxpy(3,2.0,a,3,b,3) --R --R @@ -737,7 +737,7 @@ daxpy(3,2.0,a,3,b,3) --R Type: PrimitiveArray(DoubleFloat) --E 47 ---S 48 of 183 +--S 48 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -745,7 +745,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 48 ---S 49 of 183 +--S 49 of 208 daxpy(4,2.0,a,2,b,2) --R --R @@ -753,7 +753,7 @@ daxpy(4,2.0,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 49 ---S 50 of 183 +--S 50 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -761,7 +761,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 50 ---S 51 of 183 +--S 51 of 208 daxpy(5,2.0,a,2,b,2) --R --R @@ -769,7 +769,7 @@ daxpy(5,2.0,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 51 ---S 52 of 183 +--S 52 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -777,7 +777,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 52 ---S 53 of 183 +--S 53 of 208 daxpy(3,2.0,a,2,b,2) --R --R @@ -785,7 +785,7 @@ daxpy(3,2.0,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 53 ---S 54 of 183 +--S 54 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -793,7 +793,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 54 ---S 55 of 183 +--S 55 of 208 daxpy(3,-2.0,a,2,b,2) --R --R @@ -801,7 +801,7 @@ daxpy(3,-2.0,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 55 ---S 56 of 183 +--S 56 of 208 a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R --R @@ -809,7 +809,7 @@ a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 56 ---S 57 of 183 +--S 57 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R --R @@ -817,7 +817,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 57 ---S 58 of 183 +--S 58 of 208 daxpy(3,-2.0,a,1,b,2) --R --R @@ -825,7 +825,7 @@ daxpy(3,-2.0,a,1,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 58 ---S 59 of 183 +--S 59 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -833,7 +833,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 59 ---S 60 of 183 +--S 60 of 208 daxpy(3,0.0,a,1,b,2) --R --R @@ -843,7 +843,7 @@ daxpy(3,0.0,a,1,b,2) )clear all ---S 61 of 183 +--S 61 of 208 a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -851,7 +851,7 @@ a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 61 ---S 62 of 183 +--S 62 of 208 b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R --R @@ -859,7 +859,7 @@ b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 62 ---S 63 of 183 +--S 63 of 208 dcopy(3,a,1,b,1) --R --R @@ -867,7 +867,7 @@ dcopy(3,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 63 ---S 64 of 183 +--S 64 of 208 b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R --R @@ -875,7 +875,7 @@ b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 64 ---S 65 of 183 +--S 65 of 208 dcopy(7,a,1,b,1) --R --R @@ -883,7 +883,7 @@ dcopy(7,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 65 ---S 66 of 183 +--S 66 of 208 b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R --R @@ -891,7 +891,7 @@ b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 66 ---S 67 of 183 +--S 67 of 208 dcopy(8,a,1,b,1) --R --R @@ -899,7 +899,7 @@ dcopy(8,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 67 ---S 68 of 183 +--S 68 of 208 b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R --R @@ -907,7 +907,7 @@ b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 68 ---S 69 of 183 +--S 69 of 208 dcopy(3,a,3,b,3) --R --R @@ -915,7 +915,7 @@ dcopy(3,a,3,b,3) --R Type: PrimitiveArray(DoubleFloat) --E 69 ---S 70 of 183 +--S 70 of 208 b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R --R @@ -923,7 +923,7 @@ b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 70 ---S 71 of 183 +--S 71 of 208 dcopy(4,a,2,b,2) --R --R @@ -931,7 +931,7 @@ dcopy(4,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 71 ---S 72 of 183 +--S 72 of 208 b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R --R @@ -939,7 +939,7 @@ b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 72 ---S 73 of 183 +--S 73 of 208 dcopy(5,a,2,b,2) --R --R @@ -947,7 +947,7 @@ dcopy(5,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 73 ---S 74 of 183 +--S 74 of 208 b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R --R @@ -955,7 +955,7 @@ b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 74 ---S 75 of 183 +--S 75 of 208 dcopy(3,a,2,b,2) --R --R @@ -963,7 +963,7 @@ dcopy(3,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 75 ---S 76 of 183 +--S 76 of 208 a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R --R @@ -971,7 +971,7 @@ a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 76 ---S 77 of 183 +--S 77 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R --R @@ -979,7 +979,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 77 ---S 78 of 183 +--S 78 of 208 dcopy(3,a,1,b,1) --R --R @@ -987,7 +987,7 @@ dcopy(3,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 78 ---S 79 of 183 +--S 79 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R --R @@ -995,7 +995,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 79 ---S 80 of 183 +--S 80 of 208 dcopy(3,a,1,b,2) --R --R @@ -1003,7 +1003,7 @@ dcopy(3,a,1,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 80 ---S 81 of 183 +--S 81 of 208 a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R --R @@ -1011,7 +1011,7 @@ a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 81 ---S 82 of 183 +--S 82 of 208 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R --R @@ -1019,7 +1019,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 82 ---S 83 of 183 +--S 83 of 208 dcopy(5,a,1,b,1) --R --R @@ -1029,63 +1029,63 @@ dcopy(5,a,1,b,1) )clear all ---S 84 of 183 +--S 84 of 208 a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R --R (1) [1.,2.,3.,4.,5.] --R Type: PrimitiveArray(DoubleFloat) --E 84 ---S 85 of 183 +--S 85 of 208 b:PRIMARR(DFLOAT):=[ [ 5.0, 6.0, 7.0, 8.0, 9.0] ] --R --R (2) [5.,6.,7.,8.,9.] --R Type: PrimitiveArray(DoubleFloat) --E 85 ---S 86 of 183 +--S 86 of 208 ddot(0,a,1,b,1) --R --R (3) 0. --R Type: DoubleFloat --E 86 ---S 87 of 183 +--S 87 of 208 ddot(3,a,1,b,1) --R --R (4) 38. --R Type: DoubleFloat --E 87 ---S 88 of 183 +--S 88 of 208 ddot(3,a,1,b,2) --R --R (5) 46. --R Type: DoubleFloat --E 88 ---S 89 of 183 +--S 89 of 208 ddot(3,a,2,b,1) --R --R (6) 58. --R Type: DoubleFloat --E 89 ---S 90 of 183 +--S 90 of 208 ddot(3,a,1,b,-2) --R --R (7) 38. --R Type: DoubleFloat --E 90 ---S 91 of 183 +--S 91 of 208 ddot(3,a,-2,b,1) --R --R (8) 50. --R Type: DoubleFloat --E 91 ---S 92 of 183 +--S 92 of 208 ddot(3,a,-2,b,-2) --R --R (9) 71. @@ -1094,28 +1094,28 @@ ddot(3,a,-2,b,-2) )clear all ---S 93 of 183 +--S 93 of 208 a:PRIMARR(DFLOAT):=[ [ 3.0, -4.0, 5.0, -7.0, 9.0] ] --R --R (1) [3.,- 4.,5.,- 7.,9.] --R Type: PrimitiveArray(DoubleFloat) --E 93 ---S 94 of 183 +--S 94 of 208 dnrm2(3,a,1) --R --R (2) 7.0710678118654755 --R Type: DoubleFloat --E 94 ---S 95 of 183 +--S 95 of 208 dnrm2(5,a,1) --R --R (3) 13.416407864998739 --R Type: DoubleFloat --E 95 ---S 96 of 183 +--S 96 of 208 dnrm2(3,a,2) --R --R (4) 10.723805294763608 @@ -1123,7 +1123,7 @@ dnrm2(3,a,2) --E 96 )clear all ---S 97 of 183 +--S 97 of 208 a:MATRIX(DFLOAT):=[[6,5,0],[5,1,4],[0,4,3]] --R --R +6. 5. 0.+ @@ -1134,7 +1134,7 @@ a:MATRIX(DFLOAT):=[[6,5,0],[5,1,4],[0,4,3]] --R Type: Matrix(DoubleFloat) --E 97 ---S 98 of 183 +--S 98 of 208 t1:=drotg(elt(a,1,1),elt(a,1,2),0.0,0.0) --R --R (2) @@ -1143,7 +1143,7 @@ t1:=drotg(elt(a,1,1),elt(a,1,2),0.0,0.0) --R Type: PrimitiveArray(DoubleFloat) --E 98 ---S 99 of 183 +--S 99 of 208 g1:MATRIX(DFLOAT):=[[elt(t1,2), elt(t1,3),0.0],_ [-elt(t1,3),elt(t1,2),0.0],_ [0.0, 0.0, 1.0]] @@ -1157,7 +1157,7 @@ g1:MATRIX(DFLOAT):=[[elt(t1,2), elt(t1,3),0.0],_ --R Type: Matrix(DoubleFloat) --E 99 ---S 100 of 183 +--S 100 of 208 t2:=g1*a --R --R + 7.810249675906654 4.4812907976513596 2.5607375986579197+ @@ -1168,7 +1168,7 @@ t2:=g1*a --R Type: Matrix(DoubleFloat) --E 100 ---S 101 of 183 +--S 101 of 208 t3:=drotg(elt(t2,2,2),elt(a,3,2),0.0,0.0) --R --R (5) @@ -1177,7 +1177,7 @@ t3:=drotg(elt(t2,2,2),elt(a,3,2),0.0,0.0) --R Type: PrimitiveArray(DoubleFloat) --E 101 ---S 102 of 183 +--S 102 of 208 g2:MATRIX(DFLOAT):=[[1.0, 0.0, 0.0],_ [0.0, elt(t3,2),elt(t3,3)],_ [0.0,-elt(t3,3),elt(t3,2)]] @@ -1191,7 +1191,7 @@ g2:MATRIX(DFLOAT):=[[1.0, 0.0, 0.0],_ --R Type: Matrix(DoubleFloat) --E 102 ---S 103 of 183 +--S 103 of 208 g2*g1*a --R --R + 7.810249675906654 4.4812907976513596 2.5607375986579197 + @@ -1202,7 +1202,7 @@ g2*g1*a --R Type: Matrix(DoubleFloat) --E 103 ---S 104 of 183 +--S 104 of 208 q:=transpose(g1)*transpose(g2) --R --R +0.76822127959737585 0.33265417936007158 0.54697098874441952 + @@ -1215,21 +1215,21 @@ q:=transpose(g1)*transpose(g2) )clear all ---S 105 of 183 +--S 105 of 208 dx:PRIMARR(DFLOAT):=[[6,0, 1.0, 4.0, -1.0, -1.0]] --R --R (1) [6.,0.,1.,4.,- 1.,- 1.] --R Type: PrimitiveArray(DoubleFloat) --E 105 ---S 106 of 183 +--S 106 of 208 dy:PRIMARR(DFLOAT):=[[5.0, 1.0, -4.0, 4.0, -4.0]] --R --R (2) [5.,1.,- 4.,4.,- 4.] --R Type: PrimitiveArray(DoubleFloat) --E 106 ---S 107 of 183 +--S 107 of 208 drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate by 45 degrees --R --R (3) @@ -1244,7 +1244,7 @@ drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate by 45 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 107 ---S 108 of 183 +--S 108 of 208 [dx,dy] -- note that the input arguments, dx and dy were modified --R --R (4) @@ -1259,7 +1259,7 @@ drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate by 45 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 108 ---S 109 of 183 +--S 109 of 208 drot(5,dx,1,dy,1,0.707106781,-0.707106781) -- rotate by -45 degrees --R --R (5) @@ -1274,7 +1274,7 @@ drot(5,dx,1,dy,1,0.707106781,-0.707106781) -- rotate by -45 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 109 ---S 110 of 183 +--S 110 of 208 [dx,dy] -- note that the input arguments, dx and dy were modified --R --R (6) @@ -1289,21 +1289,21 @@ drot(5,dx,1,dy,1,0.707106781,-0.707106781) -- rotate by -45 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 110 ---S 111 of 183 +--S 111 of 208 dx:PRIMARR(DFLOAT):=[[6,0, 1.0, 4.0, -1.0, -1.0]] --R --R (7) [6.,0.,1.,4.,- 1.,- 1.] --R Type: PrimitiveArray(DoubleFloat) --E 111 ---S 112 of 183 +--S 112 of 208 dy:PRIMARR(DFLOAT):=[[5.0, 1.0, -4.0, 4.0, -4.0]] --R --R (8) [5.,1.,- 4.,4.,- 4.] --R Type: PrimitiveArray(DoubleFloat) --E 112 ---S 113 of 183 +--S 113 of 208 drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate by 45 degrees --R --R (9) @@ -1318,7 +1318,7 @@ drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate by 45 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 113 ---S 114 of 183 +--S 114 of 208 drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 90 degrees --R --R (10) @@ -1333,7 +1333,7 @@ drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 90 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 114 ---S 115 of 183 +--S 115 of 208 drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 135 degrees --R --R (11) @@ -1348,7 +1348,7 @@ drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 135 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 115 ---S 116 of 183 +--S 116 of 208 drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 180 degrees --R --R (12) @@ -1363,7 +1363,7 @@ drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 180 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 116 ---S 117 of 183 +--S 117 of 208 drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 225 degrees --R --R (13) @@ -1378,7 +1378,7 @@ drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 225 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 117 ---S 118 of 183 +--S 118 of 208 drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 270 degrees --R --R (14) @@ -1393,7 +1393,7 @@ drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 270 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 118 ---S 119 of 183 +--S 119 of 208 drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 315 degrees --R --R (15) @@ -1408,7 +1408,7 @@ drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 315 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 119 ---S 120 of 183 +--S 120 of 208 drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 360 degrees --R --R (16) @@ -1423,7 +1423,7 @@ drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 360 degrees --R Type: List(PrimitiveArray(DoubleFloat)) --E 120 ---S 121 of 183 +--S 121 of 208 [dx,dy] -- note that the input arguments, dx and dy were modified --R --R (17) @@ -1439,42 +1439,42 @@ drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 360 degrees --E 121 )clear all ---S 122 of 183 +--S 122 of 208 dx:PRIMARR(DFLOAT):=[[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]] --R --R (1) [1.,2.,3.,4.,5.,6.] --R Type: PrimitiveArray(DoubleFloat) --E 122 ---S 123 of 183 +--S 123 of 208 dscal(6,2.0,dx,1) --R --R (2) [2.,4.,6.,8.,10.,12.] --R Type: PrimitiveArray(DoubleFloat) --E 123 ---S 124 of 183 +--S 124 of 208 dx --R --R (3) [2.,4.,6.,8.,10.,12.] --R Type: PrimitiveArray(DoubleFloat) --E 124 ---S 125 of 183 +--S 125 of 208 dx:PRIMARR(DFLOAT):=[[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]] --R --R (4) [1.,2.,3.,4.,5.,6.] --R Type: PrimitiveArray(DoubleFloat) --E 125 ---S 126 of 183 +--S 126 of 208 dscal(3,0.5,dx,1) --R --R (5) [0.5,1.,1.5,4.,5.,6.] --R Type: PrimitiveArray(DoubleFloat) --E 126 ---S 127 of 183 +--S 127 of 208 dx --R --R (6) [0.5,1.,1.5,4.,5.,6.] @@ -1483,63 +1483,63 @@ dx )clear all ---S 128 of 183 +--S 128 of 208 dx:PRIMARR(DFLOAT):=[[1.0, 2.0, 3.0, 4.0, 5.0]] --R --R (1) [1.,2.,3.,4.,5.] --R Type: PrimitiveArray(DoubleFloat) --E 128 ---S 129 of 183 +--S 129 of 208 dy:PRIMARR(DFLOAT):=[[9.0, 8.0, 7.0, 6.0, -5.0]] --R --R (2) [9.,8.,7.,6.,- 5.] --R Type: PrimitiveArray(DoubleFloat) --E 129 ---S 130 of 183 +--S 130 of 208 dswap(5,dx,1,dy,1) --R --R (3) [[9.,8.,7.,6.,- 5.],[1.,2.,3.,4.,5.]] --R Type: List(PrimitiveArray(DoubleFloat)) --E 130 ---S 131 of 183 +--S 131 of 208 dx:PRIMARR(DFLOAT):=[[1.0, 2.0, 3.0, 4.0, 5.0]] --R --R (4) [1.,2.,3.,4.,5.] --R Type: PrimitiveArray(DoubleFloat) --E 131 ---S 132 of 183 +--S 132 of 208 dy:PRIMARR(DFLOAT):=[[9.0, 8.0, 7.0, 6.0, -5.0]] --R --R (5) [9.,8.,7.,6.,- 5.] --R Type: PrimitiveArray(DoubleFloat) --E 132 ---S 133 of 183 +--S 133 of 208 dswap(3,dx,2,dy,2) --R --R (6) [[9.,2.,7.,4.,- 5.],[1.,8.,3.,6.,5.]] --R Type: List(PrimitiveArray(DoubleFloat)) --E 133 ---S 134 of 183 +--S 134 of 208 dx:PRIMARR(DFLOAT):=[[1.0, 2.0, 3.0, 4.0, 5.0]] --R --R (7) [1.,2.,3.,4.,5.] --R Type: PrimitiveArray(DoubleFloat) --E 134 ---S 135 of 183 +--S 135 of 208 dy:PRIMARR(DFLOAT):=[[9.0, 8.0, 7.0, 6.0, -5.0]] --R --R (8) [9.,8.,7.,6.,- 5.] --R Type: PrimitiveArray(DoubleFloat) --E 135 ---S 136 of 183 +--S 136 of 208 dswap(5,dx,1,dy,-1) --R --R (9) [[9.,8.,7.,6.,- 5.],[1.,2.,3.,4.,5.]] @@ -1548,28 +1548,28 @@ dswap(5,dx,1,dy,-1) )clear all ---S 137 of 183 +--S 137 of 208 d:PRIMARR(COMPLEX(DFLOAT)):=[[1.0+2.0*%i,-3.0+4.0*%i,5.0-6.0*%i]] --R --R (1) [1. + 2. %i,- 3. + 4. %i,5. - 6. %i] --R Type: PrimitiveArray(Complex(DoubleFloat)) --E 137 ---S 138 of 183 +--S 138 of 208 dzasum(3,d,1) -- 21.0 --R --R (2) 21. --R Type: DoubleFloat --E 138 ---S 139 of 183 +--S 139 of 208 dzasum(3,d,2) -- 14.0 --R --R (3) 14. --R Type: DoubleFloat --E 139 ---S 140 of 183 +--S 140 of 208 dzasum(-3,d,1) -- 0.0 --R --R (4) 0. @@ -1578,7 +1578,7 @@ dzasum(-3,d,1) -- 0.0 )clear all ---S 141 of 183 +--S 141 of 208 a:PRIMARR(COMPLEX(DFLOAT)):=_ [[3.+4.*%i, -4.+5.*%i, 5.+6.*%i, 7.-8.*%i, -9.-2.*%i]] --R @@ -1586,49 +1586,49 @@ a:PRIMARR(COMPLEX(DFLOAT)):=_ --R Type: PrimitiveArray(Complex(DoubleFloat)) --E 141 ---S 142 of 183 +--S 142 of 208 dznrm2(5,a,1) -- should be 18.028 --R --R (2) 18.027756377319946 --R Type: DoubleFloat --E 142 ---S 143 of 183 +--S 143 of 208 dznrm2(3,a,2) -- should be 13.077 --R --R (3) 13.076696830622021 --R Type: DoubleFloat --E 143 ---S 144 of 183 +--S 144 of 208 dznrm2(3,a,1) -- should be 11.269 --R --R (4) 11.269427669584644 --R Type: DoubleFloat --E 144 ---S 145 of 183 +--S 145 of 208 dznrm2(3,a,-1) -- should be 0.0 --R --R (5) 0. --R Type: DoubleFloat --E 145 ---S 146 of 183 +--S 146 of 208 dznrm2(-3,a,-1) -- should be 0.0 --R --R (6) 0. --R Type: DoubleFloat --E 146 ---S 147 of 183 +--S 147 of 208 dznrm2(1,a,1) -- should be 5.0 --R --R (7) 5. --R Type: DoubleFloat --E 147 ---S 148 of 183 +--S 148 of 208 dznrm2(1,a,2) -- should be 5.0 --R --R (8) 5. @@ -1637,47 +1637,47 @@ dznrm2(1,a,2) -- should be 5.0 )clear all ---S 149 of 183 +--S 149 of 208 a:PRIMARR(COMPLEX(FLOAT)) --R Type: Void --E 149 ---S 150 of 183 +--S 150 of 208 a:=[[3.+4.*%i,-4.+5.*%i,5.+6.*%i,7.-8.*%i,-9.-2.*%i]] --R --R (2) [3.0 + 4.0 %i,- 4.0 + 5.0 %i,5.0 + 6.0 %i,7.0 - 8.0 %i,- 9.0 - 2.0 %i] --R Type: PrimitiveArray(Complex(Float)) --E 150 ---S 151 of 183 +--S 151 of 208 icamax(5,a,1) -- should be 3 --R --R (3) 3 --R Type: PositiveInteger --E 151 ---S 152 of 183 +--S 152 of 208 icamax(0,a,1) -- should be -1 --R --R (4) - 1 --R Type: Integer --E 152 ---S 153 of 183 +--S 153 of 208 icamax(5,a,-1) -- should be -1 --R --R (5) - 1 --R Type: Integer --E 153 ---S 154 of 183 +--S 154 of 208 icamax(3,a,1) -- should be 2 --R --R (6) 2 --R Type: PositiveInteger --E 155 ---S 155 of 183 +--S 155 of 208 icamax(3,a,2) -- should be 1 --R --R (7) 1 @@ -1686,77 +1686,77 @@ icamax(3,a,2) -- should be 1 )clear all ---S 156 of 183 +--S 156 of 208 a:PRIMARR(DFLOAT):=[[3.0, 4.0, -3.0, 5.0, -1.0]] --R --R (1) [3.,4.,- 3.,5.,- 1.] --R Type: PrimitiveArray(DoubleFloat) --E 156 ---S 157 of 183 +--S 157 of 208 idamax(5,a,1) -- should be 3 --R --R (2) 3 --R Type: PositiveInteger --E 157 ---S 158 of 183 +--S 158 of 208 idamax(3,a,1) -- should be 1 --R --R (3) 1 --R Type: PositiveInteger --E 158 ---S 159 of 183 +--S 159 of 208 idamax(0,a,1) -- should be -1 --R --R (4) - 1 --R Type: Integer --E 159 ---S 160 of 183 +--S 160 of 208 idamax(-5,a,1) -- should be -1 --R --R (5) - 1 --R Type: Integer --E 160 ---S 161 of 183 +--S 161 of 208 idamax(5,a,-1) -- should be -1 --R --R (6) - 1 --R Type: Integer --E 161 ---S 162 of 183 +--S 162 of 208 idamax(5,a,2) -- should be 0 --R --R (7) 0 --R Type: NonNegativeInteger --E 162 ---S 163 of 183 +--S 163 of 208 idamax(1,a,0) -- should be -1 --R --R (8) - 1 --R Type: Integer --E 163 ---S 164 of 183 +--S 164 of 208 idamax(1,a,-1) -- should be -1 --R --R (9) - 1 --R Type: Integer --E 164 ---S 165 of 183 +--S 165 of 208 a:PRIMARR(DFLOAT):=[[3.0, 4.0, -3.0, -5.0, -1.0]] --R --R (10) [3.,4.,- 3.,- 5.,- 1.] --R Type: PrimitiveArray(DoubleFloat) --E 165 ---S 166 of 183 +--S 166 of 208 idamax(5,a,1) -- should be 3 --R --R (11) 3 @@ -1765,7 +1765,7 @@ idamax(5,a,1) -- should be 3 )clear all ---S 167 of 183 +--S 167 of 208 a:PRIMARR(FLOAT):=[[3.0, 4.0, -3.0, 5.0, -1.0]] --R --R @@ -1773,63 +1773,63 @@ a:PRIMARR(FLOAT):=[[3.0, 4.0, -3.0, 5.0, -1.0]] --R Type: PrimitiveArray(Float) --E 167 ---S 168 of 183 +--S 168 of 208 isamax(5,a,1) -- should be 3 --R --R (2) 3 --R Type: PositiveInteger --E 168 ---S 169 of 183 +--S 169 of 208 isamax(3,a,1) -- should be 1 --R --R (3) 1 --R Type: PositiveInteger --E 169 ---S 170 of 183 +--S 170 of 208 isamax(0,a,1) -- should be -1 --R --R (4) - 1 --R Type: Integer --E 170 ---S 171 of 183 +--S 171 of 208 isamax(-5,a,1) -- should be -1 --R --R (5) - 1 --R Type: Integer --E 171 ---S 172 of 183 +--S 172 of 208 isamax(5,a,-1) -- should be -1 --R --R (6) - 1 --R Type: Integer --E 172 ---S 173 of 183 +--S 173 of 208 isamax(5,a,2) -- should be 0 --R --R (7) 0 --R Type: NonNegativeInteger --E 173 ---S 174 of 183 +--S 174 of 208 isamax(1,a,0) -- should be -1 --R --R (8) - 1 --R Type: Integer --E 174 ---S 175 of 183 +--S 175 of 208 isamax(1,a,-1) -- should be -1 --R --R (9) - 1 --R Type: Integer --E 175 ---S 176 of 183 +--S 176 of 208 a:PRIMARR(FLOAT):=[[3.0, 4.0, -3.0, -5.0, -1.0]] --R --R @@ -1837,7 +1837,7 @@ a:PRIMARR(FLOAT):=[[3.0, 4.0, -3.0, -5.0, -1.0]] --R Type: PrimitiveArray(Float) --E 176 ---S 177 of 183 +--S 177 of 208 isamax(5,a,1) -- should be 3 --R --R (11) 3 @@ -1846,48 +1846,227 @@ isamax(5,a,1) -- should be 3 )clear all ---S 178 of 183 +--S 178 of 208 a:PRIMARR(COMPLEX(DFLOAT)):=[[3.+4.*%i,-4.+5.*%i,5.+6.*%i,7.-8.*%i,-9.-2.*%i]] --R --R (1) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] --R Type: PrimitiveArray(Complex(DoubleFloat)) --E 178 ---S 179 of 183 +--S 179 of 208 izamax(5,a,1) -- should be 3 --R --R (2) 3 --R Type: PositiveInteger --E 179 ---S 180 of 183 +--S 180 of 208 izamax(0,a,1) -- should be -1 --R --R (3) - 1 --R Type: Integer --E 180 ---S 181 of 183 +--S 181 of 208 izamax(5,a,-1) -- should be -1 --R --R (4) - 1 --R Type: Integer --E 181 ---S 182 of 183 +--S 182 of 208 izamax(3,a,1) -- should be 2 --R --R (5) 2 --R Type: PositiveInteger --E 182 ---S 183 of 183 +--S 183 of 208 izamax(3,a,2) -- should be 1 --R --R (6) 1 --R Type: PositiveInteger --E 183 +)clear all + +--S 184 of 208 +a:PRIMARR(COMPLEX(DFLOAT)):=_ + [[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (1) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 184 + +--S 185 of 208 +b:PRIMARR(COMPLEX(DFLOAT)):=_ + [[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (2) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 185 + +--S 186 of 208 +zaxpy(3,2.0,a,1,b,1) +--R +--R (3) [9. + 12. %i,- 12. + 15. %i,15. + 18. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 186 + +--S 187 of 208 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (4) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 187 + +--S 188 of 208 +zaxpy(5,2.0,a,1,b,1) +--R +--R (5) [9. + 12. %i,- 12. + 15. %i,15. + 18. %i,21. - 24. %i,- 27. - 6. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 188 + +--S 189 of 208 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (6) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 189 + +--S 190 of 208 +zaxpy(3,2.0,a,3,b,3) +--R +--R (7) [9. + 12. %i,- 4. + 5. %i,5. + 6. %i,21. - 24. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 190 + +--S 191 of 208 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (8) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 191 + +--S 192 of 208 +zaxpy(4,2.0,a,2,b,2) +--R +--R (9) [9. + 12. %i,- 4. + 5. %i,15. + 18. %i,7. - 8. %i,- 27. - 6. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 192 + +--S 193 of 208 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (10) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 193 + +--S 194 of 208 +zaxpy(3,2.0,a,2,b,2) +--R +--R (11) [9. + 12. %i,- 4. + 5. %i,15. + 18. %i,7. - 8. %i,- 27. - 6. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 194 + +--S 195 of 208 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (12) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 195 + +--S 196 of 208 +zaxpy(3,-2.0,a,1,b,2) +--R +--R (13) [- 3. - 4. %i,- 4. + 5. %i,13. - 4. %i,7. - 8. %i,- 19. - 14. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 196 + +--S 197 of 208 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (14) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 197 + +--S 198 of 208 +zaxpy(3,2.0,a,1,b,2) +--R +--R (15) [9. + 12. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,1. + 10. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 198 + +--S 199 of 208 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (16) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 199 + +--S 200 of 208 +zaxpy(-3,2.0,a,1,b,2) +--R +--R (17) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 200 + +--S 201 of 208 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (18) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 201 + +--S 202 of 208 +zaxpy(3,2.0,a,-1,b,2) +--R +--R (19) [13. + 16. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,- 3. + 6. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 202 + +--S 203 of 208 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (20) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 203 + +--S 204 of 208 +zaxpy(3,2.0,a,1,b,-2) +--R +--R (21) [13. + 16. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,- 3. + 6. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 204 + +--S 205 of 208 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (22) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 205 + +--S 206 of 208 +zaxpy(3,2.0,a,-1,b,-2) +--R +--R (23) [9. + 12. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,1. + 10. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 206 + +--S 207 of 208 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (24) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 207 + +--S 208 of 208 +zaxpy(3,0.0,a,1,b,1) +--R +--R (25) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray(Complex(DoubleFloat)) +--E 208 + )spool )lisp (bye) \end{chunk} @@ -2161,6 +2340,24 @@ BlasLevelOne() : Exports == Implementation where ++X izamax(3,a,1) -- should be 2 ++X izamax(3,a,2) -- should be 1 + zaxpy: (SI, CDF, PCDF, SI, PCDF, SI) -> PCDF + ++ zaxpy(n,da,x,incx,y,incy) computes a y = a*x + y + ++ for each of the chosen elements of the vectors x and y + ++ and a constant multiplier a + ++ Note that the vector y is modified with the results. + ++ + ++X a:PRIMARR(COMPLEX(DFLOAT)) + ++X a:=[[3.+4.*%i, -4.+5.*%i, 5.+6.*%i, 7.-8.*%i, -9.-2.*%i]] + ++X b:PRIMARR(COMPLEX(DFLOAT)) + ++X b:=[[3.+4.*%i, -4.+5.*%i, 5.+6.*%i, 7.-8.*%i, -9.-2.*%i]] + ++X zaxpy(3,2.0,a,1,b,1) + ++X b:=[[3.+4.*%i, -4.+5.*%i, 5.+6.*%i, 7.-8.*%i, -9.-2.*%i]] + ++X zaxpy(5,2.0,a,1,b,1) + ++X b:=[[3.+4.*%i, -4.+5.*%i, 5.+6.*%i, 7.-8.*%i, -9.-2.*%i]] + ++X zaxpy(3,2.0,a,3,b,3) + ++X b:=[[3.+4.*%i, -4.+5.*%i, 5.+6.*%i, 7.-8.*%i, -9.-2.*%i]] + ++X zaxpy(4,2.0,a,2,b,2) + Implementation == add dcabs1(z:CDF):DF == @@ -2195,6 +2392,9 @@ BlasLevelOne() : Exports == Implementation where ISAMAXSPAD(n,dz,incx)$Lisp izamax(n:SI,dz:PCDF,incx:SI):INT == IZAMAXSPAD(n,dz,incx)$Lisp + zaxpy(n:SI,da:CDF,dx:PCDF,incx:SI,dy:PCDF,incy:SI):PCDF == + ZAXPYSPAD(n,da,dx,incx,dy,incy)$Lisp + \end{chunk} \begin{chunk}{BLAS1.dotabb} @@ -3755,12 +3955,7 @@ b(4)= 4.000 b(5)=11.000 b(6)= 6.000 b(7)= 7.000 (> incx 0) (< (* (1- n) incx) maxx) (> incy 0) (< (* (1- n) incy) maxy)) (if (and (= incx 1) (= incy 1)) - ; unit increments (dotimes (i n) - ; (format t "dy(~s)[~s] = dy(~s)[~s] + ( da[~s] * dx(~s)[~s] )~%" - ; i (+ (svref dy i) (* da (svref dx i))) - ; i (svref dy i) - ; da i (svref dx i)) (setf (the double-float (svref dy i)) (+ (the double-float (svref dy i)) (* (the double-float da) @@ -3769,12 +3964,8 @@ b(4)= 4.000 b(5)=11.000 b(6)= 6.000 b(7)= 7.000 (let ((ix 0) (iy 0)) (declare (type fixnum ix iy)) (when (< incx 0) (setq ix (* (1+ (- n)) incx))) - (when (< incy 0) (setq ix (* (1+ (- n)) incy))) + (when (< incy 0) (setq iy (* (1+ (- n)) incy))) (dotimes (i n) - ; (format t "dy(~s)[~s] = dy(~s)[~s] + ( da[~s] * dx(~s)[~s] )~%" - ; iy (+ (svref dy iy) (* da (svref dx ix))) - ; iy (svref dy iy) - ; da ix (svref dx ix)) (setf (the double-float (svref dy iy)) (+ (the double-float (svref dy iy)) (* (the double-float da) @@ -9199,6 +9390,183 @@ the results are displaced by 1. )set message auto off )clear all +--S 1 of 25 +a:PRIMARR(COMPLEX(DFLOAT)):=_ + [[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (1) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 1 + +--S 2 of 25 +b:PRIMARR(COMPLEX(DFLOAT)):=_ + [[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (2) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 2 + +--S 3 of 25 +zaxpy(3,2.0,a,1,b,1) +--R +--R (3) [9. + 12. %i,- 12. + 15. %i,15. + 18. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 3 + +--S 4 of 25 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (4) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 4 + +--S 5 of 25 +zaxpy(5,2.0,a,1,b,1) +--R +--R (5) [9. + 12. %i,- 12. + 15. %i,15. + 18. %i,21. - 24. %i,- 27. - 6. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 5 + +--S 6 of 25 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (6) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 6 + +--S 7 of 25 +zaxpy(3,2.0,a,3,b,3) +--R +--R (7) [9. + 12. %i,- 4. + 5. %i,5. + 6. %i,21. - 24. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 7 + +--S 8 of 25 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (8) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 8 + +--S 9 of 25 +zaxpy(4,2.0,a,2,b,2) +--R +--R (9) [9. + 12. %i,- 4. + 5. %i,15. + 18. %i,7. - 8. %i,- 27. - 6. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 9 + +--S 10 of 25 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (10) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 10 + +--S 11 of 25 +zaxpy(3,2.0,a,2,b,2) +--R +--R (11) [9. + 12. %i,- 4. + 5. %i,15. + 18. %i,7. - 8. %i,- 27. - 6. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 11 + +--S 12 of 25 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (12) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 12 + +--S 13 of 25 +zaxpy(3,-2.0,a,1,b,2) +--R +--R (13) [- 3. - 4. %i,- 4. + 5. %i,13. - 4. %i,7. - 8. %i,- 19. - 14. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 13 + +--S 14 of 25 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (14) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 14 + +--S 15 of 25 +zaxpy(3,2.0,a,1,b,2) +--R +--R (15) [9. + 12. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,1. + 10. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 15 + +--S 16 of 25 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (16) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 16 + +--S 17 of 25 +zaxpy(-3,2.0,a,1,b,2) +--R +--R (17) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 17 + +--S 18 of 25 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (18) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 18 + +--S 19 of 25 +zaxpy(3,2.0,a,-1,b,2) +--R +--R (19) [13. + 16. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,- 3. + 6. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 19 + +--S 20 of 25 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (20) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 20 + +--S 21 of 25 +zaxpy(3,2.0,a,1,b,-2) +--R +--R (21) [13. + 16. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,- 3. + 6. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 21 + +--S 22 of 25 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (22) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 22 + +--S 23 of 25 +zaxpy(3,2.0,a,-1,b,-2) +--R +--R (23) [9. + 12. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,1. + 10. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 23 + +--S 24 of 25 +b:=[[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] +--R +--R (24) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 24 + +--S 25 of 25 +zaxpy(3,0.0,a,1,b,1) +--R +--R (25) [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] +--R Type: PrimitiveArray Complex DoubleFloat +--E 25 + )spool )lisp (bye) \end{chunk} @@ -9207,6 +9575,65 @@ the results are displaced by 1. zaxpy examples ==================================================================== +a:PRIMARR(COMPLEX(DFLOAT)):=_ + [[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] + [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] + +b:PRIMARR(COMPLEX(DFLOAT)):=_ + [[3.0+4.0*%i, -4.0+5.0*%i, 5.0+6.0*%i, 7.0-8.0*%i, -9.0-2.0*%i]] + + [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] + +zaxpy(3,2.0,a,1,b,1) + + [9. + 12. %i,- 12. + 15. %i,15. + 18. %i,7. - 8. %i,- 9. - 2. %i] + +NOTE: We reset b to the above value before every execution + +zaxpy(5,2.0,a,1,b,1) + + [9. + 12. %i,- 12. + 15. %i,15. + 18. %i,21. - 24. %i,- 27. - 6. %i] + +zaxpy(3,2.0,a,3,b,3) + + [9. + 12. %i,- 4. + 5. %i,5. + 6. %i,21. - 24. %i,- 9. - 2. %i] + +zaxpy(4,2.0,a,2,b,2) + + [9. + 12. %i,- 4. + 5. %i,15. + 18. %i,7. - 8. %i,- 27. - 6. %i] + +zaxpy(3,2.0,a,2,b,2) + + [9. + 12. %i,- 4. + 5. %i,15. + 18. %i,7. - 8. %i,- 27. - 6. %i] + +zaxpy(3,-2.0,a,1,b,2) + + [- 3. - 4. %i,- 4. + 5. %i,13. - 4. %i,7. - 8. %i,- 19. - 14. %i] + +zaxpy(3,2.0,a,1,b,2) + + [9. + 12. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,1. + 10. %i] + +zaxpy(-3,2.0,a,1,b,2) + + [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] + +zaxpy(3,2.0,a,-1,b,2) + + [13. + 16. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,- 3. + 6. %i] + +zaxpy(3,2.0,a,1,b,-2) + + [13. + 16. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,- 3. + 6. %i] + +zaxpy(3,2.0,a,-1,b,-2) + + [9. + 12. %i,- 4. + 5. %i,- 3. + 16. %i,7. - 8. %i,1. + 10. %i] + +zaxpy(3,0.0,a,1,b,1) + + [3. + 4. %i,- 4. + 5. %i,5. + 6. %i,7. - 8. %i,- 9. - 2. %i] + ==================================================================== Man Page Details ==================================================================== @@ -9290,16 +9717,6 @@ Arguments are: \item incy - fixnum \end{itemize} -Return values are: -\begin{itemize} -\item 1 nil -\item 2 nil -\item 3 nil -\item 4 nil -\item 5 nil -\item 6 nil -\end{itemize} - \begin{chunk}{zaxpy.f} subroutine zaxpy(n,za,zx,incx,zy,incy) c @@ -9338,52 +9755,409 @@ c \end{chunk} +\begin{chunk}{zaxpyEX example} + program zaxpyEX +* Tim Daly May 20, 2012 +* unit tests for BLAS zaxpy (a*x+y) + double complex a(5) + double complex b(5) + double complex c(5) + a(1) = ( 3.0D0, 4.0D0) + a(2) = (-4.0D0, 5.0D0) + a(3) = ( 5.0D0, 6.0D0) + a(4) = ( 7.0D0,-8.0D0) + a(5) = (-9.0D0,-2.0D0) + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + write(6,100)a(1),a(2),a(3),a(4),a(5) + 100 format("a(1)=(",f7.2,",",f7.2,")",/ + C "a(2)=(",f7.2,",",f7.2,")",/ + C "a(3)=(",f7.2,",",f7.2,")",/ + C "a(4)=(",f7.2,",",f7.2,")",/ + C "a(5)=(",f7.2,",",f7.2,")") + write(6,101)b(1),b(2),b(3),b(4),b(5) + 101 format(/,"b(1)=(",f7.2,",",f7.2,")",/ + C "b(2)=(",f7.2,",",f7.2,")",/ + C "b(3)=(",f7.2,",",f7.2,")",/ + C "b(4)=(",f7.2,",",f7.2,")",/ + C "b(5)=(",f7.2,",",f7.2,")") + + call zaxpy(3,2.0d0,a,1,b,1) + write(6,200) + 200 format(/,"t200 is (9.00,12.00), (-12.00,15.00), (15.00,18.00) ",/, + C " (7.00,-8.00), (-9.00,-2.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + call zaxpy(5,2.0d0,a,1,b,1) + write(6,300) + 300 format(/,"t300 is (9.00,12.00), (-12.00,15.00), (15.00,18.00) ",/, + C " (21.00,-24.00), (-27.00,-6.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + call zaxpy(3,2.0d0,a,3,b,3) + write(6,301) + 301 format(/,"t301 is (9.00,12.00), (-4.00,5.00), (5.00,6.00) ",/, + C " (21.00,-24.00), (-9.00,-2.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + call zaxpy(4,2.0d0,a,2,b,2) + write(6,302) + 302 format(/,"t302 is (9.00,12.00), (-4.00,5.00), (15.00,18.00) ",/, + C " (7.00,-8.00), ( -27.00, -6.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + call zaxpy(3,2.0d0,a,2,b,2) + write(6,303) + 303 format(/,"t303 is (9.00,12.00), (-4.00,5.00), (15.00,18.00) ",/, + C " (7.00,-8.00), ( -27.00, -6.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + call zaxpy(3,-2.0d0,a,1,b,2) + write(6,304) + 304 format(/,"t304 is (-3.00,-4.00), (-4.00,5.00), (13.00,-4.00) ",/, + C " (7.00,-8.00), (-19.00,-14.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + call zaxpy(3,2.0d0,a,1,b,2) + write(6,305) + 305 format(/,"t305 is (9.00,12.00), (-4.00,5.00), (-3.00,16.00) ",/, + C " (7.00,-8.00), (1.00,10.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + call zaxpy(-3,2.0d0,a,1,b,2) + write(6,306) + 306 format(/,"t306 is (3.00,4.00), (-4.00,5.00), (5.00,6.00) ",/, + C " (7.00,-8.00), (-9.00,-2.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + call zaxpy(3,2.0d0,a,-1,b,2) + write(6,307) + 307 format(/,"t307 is (13.00,16.00), (-4.00,5.00), (-3.00,16.00) ",/, + C " (7.00,-8.00), (-3.00,6.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + call zaxpy(3,2.0d0,a,1,b,-2) + write(6,308) + 308 format(/,"t308 is (13.00,16.00), (-4.00,5.00), (-3.00,16.00) ",/, + C " (7.00,-8.00), (-3.00,6.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + call zaxpy(3,2.0d0,a,-1,b,-2) + write(6,309) + 309 format(/,"t309 is (9.00,12.00), (-4.00,5.00), (-3.00,16.00) ",/, + C " (7.00,-8.00), (1.00,10.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + b(1) = ( 3.0D0, 4.0D0) + b(2) = (-4.0D0, 5.0D0) + b(3) = ( 5.0D0, 6.0D0) + b(4) = ( 7.0D0,-8.0D0) + b(5) = (-9.0D0,-2.0D0) + call zaxpy(3,0.0d0,a,1,b,1) + write(6,310) + 310 format(/,"t310 is (3.00,4.00), (-4.00,5.00), (5.00,6.00) ",/, + C " (7.00,-8.00), (-9.00,-2.00)") + write(6,101)b(1),b(2),b(3),b(4),b(5) + + stop + end +\end{chunk} + +\begin{verbatim} +gcc -o zaxpyEX zaxpyEX.f -lgfortran zaxpy.o dcabs1.o && ./zaxpyEX +a(1)=( 3.00, 4.00) +a(2)=( -4.00, 5.00) +a(3)=( 5.00, 6.00) +a(4)=( 7.00, -8.00) +a(5)=( -9.00, -2.00) + +b(1)=( 3.00, 4.00) +b(2)=( -4.00, 5.00) +b(3)=( 5.00, 6.00) +b(4)=( 7.00, -8.00) +b(5)=( -9.00, -2.00) + +t200 is (9.00,12.00), (-12.00,15.00), (15.00,18.00) + (7.00,-8.00), (-9.00,-2.00) + +b(1)=( 9.00, 12.00) +b(2)=( -12.00, 15.00) +b(3)=( 15.00, 18.00) +b(4)=( 7.00, -8.00) +b(5)=( -9.00, -2.00) + +t300 is (9.00,12.00), (-12.00,15.00), (15.00,18.00) + (21.00,-24.00), (-27.00,-6.00) + +b(1)=( 9.00, 12.00) +b(2)=( -12.00, 15.00) +b(3)=( 15.00, 18.00) +b(4)=( 21.00, -24.00) +b(5)=( -27.00, -6.00) + +t301 is (9.00,12.00), (-4.00,5.00), (5.00,6.00) + (21.00,-24.00), (-9.00,-2.00) + +b(1)=( 9.00, 12.00) +b(2)=( -4.00, 5.00) +b(3)=( 5.00, 6.00) +b(4)=( 21.00, -24.00) +b(5)=( -9.00, -2.00) + +t302 is (9.00,12.00), (-4.00,5.00), (15.00,18.00) + (7.00,-8.00), ( -27.00, -6.00) + +b(1)=( 9.00, 12.00) +b(2)=( -4.00, 5.00) +b(3)=( 15.00, 18.00) +b(4)=( 7.00, -8.00) +b(5)=( -27.00, -6.00) + +t303 is (9.00,12.00), (-4.00,5.00), (15.00,18.00) + (7.00,-8.00), ( -27.00, -6.00) + +b(1)=( 9.00, 12.00) +b(2)=( -4.00, 5.00) +b(3)=( 15.00, 18.00) +b(4)=( 7.00, -8.00) +b(5)=( -27.00, -6.00) + +t304 is (-3.00,-4.00), (-4.00,5.00), (13.00,-4.00) + (7.00,-8.00), (-19.00,-14.00) + +b(1)=( -3.00, -4.00) +b(2)=( -4.00, 5.00) +b(3)=( 13.00, -4.00) +b(4)=( 7.00, -8.00) +b(5)=( -19.00, -14.00) + +t305 is (9.00,12.00), (-4.00,5.00), (-3.00,16.00) + (7.00,-8.00), (1.00,10.00) + +b(1)=( 9.00, 12.00) +b(2)=( -4.00, 5.00) +b(3)=( -3.00, 16.00) +b(4)=( 7.00, -8.00) +b(5)=( 1.00, 10.00) + +t306 is (3.00,4.00), (-4.00,5.00), (5.00,6.00) + (7.00,-8.00), (-9.00,-2.00) + +b(1)=( 3.00, 4.00) +b(2)=( -4.00, 5.00) +b(3)=( 5.00, 6.00) +b(4)=( 7.00, -8.00) +b(5)=( -9.00, -2.00) + +t307 is (13.00,16.00), (-4.00,5.00), (-3.00,16.00) + (7.00,-8.00), (-3.00,6.00) + +b(1)=( 13.00, 16.00) +b(2)=( -4.00, 5.00) +b(3)=( -3.00, 16.00) +b(4)=( 7.00, -8.00) +b(5)=( -3.00, 6.00) + +t308 is (13.00,16.00), (-4.00,5.00), (-3.00,16.00) + (7.00,-8.00), (-3.00,6.00) + +b(1)=( 13.00, 16.00) +b(2)=( -4.00, 5.00) +b(3)=( -3.00, 16.00) +b(4)=( 7.00, -8.00) +b(5)=( -3.00, 6.00) + +t309 is (9.00,12.00), (-4.00,5.00), (-3.00,16.00) + (7.00,-8.00), (1.00,10.00) + +b(1)=( 9.00, 12.00) +b(2)=( -4.00, 5.00) +b(3)=( -3.00, 16.00) +b(4)=( 7.00, -8.00) +b(5)=( 1.00, 10.00) + +t310 is (3.00,4.00), (-4.00,5.00), (5.00,6.00) + (7.00,-8.00), (-9.00,-2.00) + +b(1)=( 3.00, 4.00) +b(2)=( -4.00, 5.00) +b(3)=( 5.00, 6.00) +b(4)=( 7.00, -8.00) +b(5)=( -9.00, -2.00) +\end{verbatim} + +Axiom delivers PRIMARR(COMPLEX(DFLOAT)) as a list of pairs. We create +a thunk function zaxpySpad which creates an array of complex double-float +objects required by zaxpy. + +The zaxpy function is defined to modify the second array. So the thunk +function has to setf this information back into the original array. + +The zaxpySpad function could be more efficient if it only copied +elements that were modified. This was not done because of the overhead +of figuring out which elements this could be under all possible arguments. + \begin{chunk}{BLAS 1 zaxpy} +(defun zaxpySpad (n za zx incx zy incy) +; Tim Daly May 23, 2012 + (let (result vecx vecy tx ty) + (dotimes (i (length zx)) + (push (complex (car (svref zx i)) (cdr (svref zx i))) tx)) + (setq vecx (make-array (length tx) :initial-contents (nreverse tx))) + (dotimes (i (length zy)) + (push (complex (car (svref zy i)) (cdr (svref zy i))) ty)) + (setq vecy (make-array (length ty) :initial-contents (nreverse ty))) + (zaxpy n (complex (car za) (cdr za)) vecx incx vecy incy) + (dotimes (i (length vecx)) + (setf (svref zy i) + (cons (realpart (svref vecy i)) (imagpart (svref vecy i))))) + zy)) + (defun zaxpy (n za zx incx zy incy) - (declare (type (simple-array (complex double-float) (*)) zy zx) - (type (complex double-float) za) - (type fixnum incy incx n)) - (f2cl-lib:with-multi-array-data - ((zx (complex double-float) zx-%data% zx-%offset%) - (zy (complex double-float) zy-%data% zy-%offset%)) - (prog ((i 0) (ix 0) (iy 0)) - (declare (type fixnum iy ix i)) - (if (<= n 0) (go end_label)) - (if (= (dcabs1 za) 0.0) (go end_label)) - (if (and (= incx 1) (= incy 1)) (go label20)) - (setf ix 1) - (setf iy 1) - (if (< incx 0) - (setf ix - (f2cl-lib:int-add - (f2cl-lib:int-mul (the fixnum (1- n)) incx) - 1))) - (if (< incy 0) - (setf iy - (f2cl-lib:int-add - (f2cl-lib:int-mul (the fixnum (1- n)) incy) - 1))) - (f2cl-lib:fdo (i 1 (f2cl-lib:int-add i 1)) - ((> i n) nil) - (tagbody - (setf (f2cl-lib:fref zy-%data% (iy) ((1 *)) zy-%offset%) - (+ (f2cl-lib:fref zy-%data% (iy) ((1 *)) zy-%offset%) - (* za - (f2cl-lib:fref zx-%data% (ix) ((1 *)) zx-%offset%)))) - (setf ix (f2cl-lib:int-add ix incx)) - (setf iy (f2cl-lib:int-add iy incy)))) - (go end_label) - label20 - (f2cl-lib:fdo (i 1 (f2cl-lib:int-add i 1)) - ((> i n) nil) - (tagbody - (setf (f2cl-lib:fref zy-%data% (i) ((1 *)) zy-%offset%) - (+ (f2cl-lib:fref zy-%data% (i) ((1 *)) zy-%offset%) - (* za (f2cl-lib:fref zx-%data% (i) ((1 *)) zx-%offset%)))))) - end_label - (return (values nil nil nil nil nil nil))))) +; Tim Daly May 23, 2012 + (declare (type (simple-array (complex double-float) (*)) zy zx) + (type (complex double-float) za) + (type fixnum incy incx n)) + (let ((ix 0) (iy 0) (limitx (length zx)) (limity (length zy))) + (declare (type fixnum iy ix limitx limity)) + (when (and (> n 0) (/= (dcabs1 za) 0.0)) + (when (< incx 0) + (setf ix (the fixnum (* (the fixnum (1+ (the fixnum (- n)))) incx)))) + (when (< incy 0) + (setf iy (the fixnum (* (the fixnum (1+ (the fixnum (- n)))) incy)))) + (do ((i 0 (1+ i))) + ((or (>= i n) (< ix 0) (< iy 0) (>= ix limitx) (>= iy limity))) + (setf (the (complex double-float) (svref zy iy)) + (+ (the (complex double-float) (svref zy iy)) + (the (complex double-float) + (* za (the (complex double-float) (svref zx ix)))))) + (setf ix (+ ix incx)) + (setf iy (+ iy incy)))))) \end{chunk} + +\begin{chunk}{BLAS 1 izamax lisp test} +(load "zaxpy.lisp") +(load "dcabs1.lisp") +(setq zx (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad 3 2.0d0 zx 1 zy 1) ; t200 +; #((9.0 . 12.0) (-12.0 . 15.0) (15.0 . 18.0) (7.0 . -8.0) (-9.0 . -2.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad 5 2.0d0 zx 1 zy 1) ; t300 +; #((9.0 . 12.0) (-12.0 . 15.0) (15.0 . 18.0) (21.0 . -24.0) (-27.0 . -6.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad 3 2.0d0 zx 3 zy 3) ; t301 +; #((9.0 . 12.0) (-4.0 . 5.0) (5.0 . 6.0) (21.0 . -24.0) (-9.0 . -2.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad 4 2.0d0 zx 2 zy 2) ; t302 +; #((9.0 . 12.0) (-4.0 . 5.0) (15.0 . 18.0) (7.0 . -8.0) (-27.0 . -6.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad 3 2.0d0 zx 2 zy 2) ; t303 +; #((9.0 . 12.0) (-4.0 . 5.0) (15.0 . 18.0) (7.0 . -8.0) (-27.0 . -6.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad 3 -2.0d0 zx 1 zy 2) ; t304 +; #((-3.0 . -4.0) (-4.0 . 5.0) (13.0 . -4.0) (7.0 . -8.0) (-19.0 . -14.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad 3 2.0d0 zx 1 zy 2) ; t305 +; #((9.0 . 12.0) (-4.0 . 5.0) (-3.0 . 16.0) (7.0 . -8.0) (1.0 . 10.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad -3 2.0d0 zx 1 zy 2) ; t306 +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad 3 2.0d0 zx -1 zy 2) ; t307 +; #((13.0 . 16.0) (-4.0 . 5.0) (-3.0 . 16.0) (7.0 . -8.0) (-3.0 . 6.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad 3 2.0d0 zx 1 zy -2) ; t308 +; #((13.0 . 16.0) (-4.0 . 5.0) (-3.0 . 16.0) (7.0 . -8.0) (-3.0 . 6.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad 3 2.0d0 zx -1 zy -2) ; t309 +; #((9.0 . 12.0) (-4.0 . 5.0) (-3.0 . 16.0) (7.0 . -8.0) (1.0 . 10.0)) +(setq zy (vector (cons 3.0d0 4.0d0) (cons -4.0d0 5.0d0) (cons 5.0d0 6.0d0) + (cons 7.0d0 -8.0d0) (cons -9.0d0 -2.0d0))) +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) +(zaxpyspad 3 0.0d0 zx 1 zy 1) ; t310 +; #((3.0 . 4.0) (-4.0 . 5.0) (5.0 . 6.0) (7.0 . -8.0) (-9.0 . -2.0)) + +\end{chunk} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{zcopy BLAS} %\pagehead{zcopy}{zcopy} @@ -140312,12 +141086,12 @@ Warning: Types of argument 1 in call to ZLARFB do not match. \getchunk{BLAS 1 idamax} \getchunk{BLAS 1 isamax} \getchunk{BLAS 1 izamax} +\getchunk{BLAS 1 zaxpy} \end{chunk} \begin{chunk}{untested} \getchunk{BLAS lsame} \getchunk{BLAS xerbla} -\getchunk{BLAS 1 zaxpy} \getchunk{BLAS 1 zcopy} \getchunk{BLAS 1 zdotc} \getchunk{BLAS 1 zdotu} diff --git a/changelog b/changelog index 2cee059..836120e 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20120523 tpd src/axiom-website/patches.html 20120523.01.tpd.patch +20120523 tpd books/bookvol10.5 BLAS1 zaxpy 20120520 tpd src/axiom-website/patches.html 20120520.01.tpd.patch 20120520 tpd books/bookvol10.5 BLAS1 izamax 20120519 tpd src/axiom-website/patches.html 20120519.01.tpd.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 12dbc7b..95691ab 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3924,5 +3924,7 @@ src/input/simplify.input added from sci.math.symbolic
books/bookvol10.5 BLAS1 isamax
20120520.01.tpd.patch books/bookvol10.5 BLAS1 izamax
+20120523.01.tpd.patch +books/bookvol10.5 BLAS1 zaxpy