diff --git a/books/bookvol10.5.pamphlet b/books/bookvol10.5.pamphlet index 99b5790..8c637a3 100644 --- a/books/bookvol10.5.pamphlet +++ b/books/bookvol10.5.pamphlet @@ -348,7 +348,7 @@ For complex symmetric matrices, TRANSx=H is not allowed. )set message auto off )clear all ---S 1 of 104 +--S 1 of 121 t1:Complex DoubleFloat := complex(1.0,0) --R --R @@ -356,7 +356,7 @@ t1:Complex DoubleFloat := complex(1.0,0) --R Type: Complex(DoubleFloat) --E 1 ---S 2 of 104 +--S 2 of 121 dcabs1(t1) --R --R @@ -364,7 +364,7 @@ dcabs1(t1) --R Type: DoubleFloat --E 2 ---S 3 of 104 +--S 3 of 121 t2:Complex DoubleFloat := complex(1.0,1.0) --R --R @@ -372,7 +372,7 @@ t2:Complex DoubleFloat := complex(1.0,1.0) --R Type: Complex(DoubleFloat) --E 3 ---S 4 of 104 +--S 4 of 121 dcabs1(t2) --R --R @@ -380,7 +380,7 @@ dcabs1(t2) --R Type: DoubleFloat --E 4 ---S 5 of 104 +--S 5 of 121 t3:Complex DoubleFloat := complex(1.0,-1.0) --R --R @@ -388,7 +388,7 @@ t3:Complex DoubleFloat := complex(1.0,-1.0) --R Type: Complex(DoubleFloat) --E 5 ---S 6 of 104 +--S 6 of 121 dcabs1(t3) --R --R @@ -396,7 +396,7 @@ dcabs1(t3) --R Type: DoubleFloat --E 6 ---S 7 of 104 +--S 7 of 121 t4:Complex DoubleFloat := complex(-1.0,-1.0) --R --R @@ -404,7 +404,7 @@ t4:Complex DoubleFloat := complex(-1.0,-1.0) --R Type: Complex(DoubleFloat) --E 7 ---S 8 of 104 +--S 8 of 121 dcabs1(t4) --R --R @@ -412,7 +412,7 @@ dcabs1(t4) --R Type: DoubleFloat --E 8 ---S 9 of 104 +--S 9 of 121 t5:Complex DoubleFloat := complex(-2.0,-2.0) --R --R @@ -420,7 +420,7 @@ t5:Complex DoubleFloat := complex(-2.0,-2.0) --R Type: Complex(DoubleFloat) --E 9 ---S 10 of 104 +--S 10 of 121 dcabs1(t5) --R --R @@ -430,196 +430,196 @@ dcabs1(t5) )clear all ---S 11 of 104 +--S 11 of 121 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 104 +--S 12 of 121 dasum(3,a,-1) -- 0.0 neg incx --R --R (2) 0. --R Type: DoubleFloat --E 12 ---S 13 of 104 +--S 13 of 121 dasum(3,a,0) -- 0.0 zero incx --R --R (3) 0. --R Type: DoubleFloat --E 13 ---S 14 of 104 +--S 14 of 121 dasum(-1,a,1) -- 0.0 neg elements --R --R (4) 0. --R Type: DoubleFloat --E 14 ---S 15 of 104 +--S 15 of 121 dasum(0,a,1) -- 0.0 no elements --R --R (5) 0. --R Type: DoubleFloat --E 15 ---S 16 of 104 +--S 16 of 121 dasum(1,a,1) -- 1.0 1.0 --R --R (6) 1. --R Type: DoubleFloat --E 16 ---S 17 of 104 +--S 17 of 121 dasum(2,a,1) -- 3.0 1.0+2.0 --R --R (7) 3. --R Type: DoubleFloat --E 17 ---S 18 of 104 +--S 18 of 121 dasum(3,a,1) -- 6.0 1.0+2.0+3.0 --R --R (8) 6. --R Type: DoubleFloat --E 18 ---S 19 of 104 +--S 19 of 121 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 104 +--S 20 of 121 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 104 +--S 21 of 121 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 104 +--S 22 of 121 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 104 +--S 23 of 121 dasum(1,a,2) -- 1.0 1.0 --R --R (13) 1. --R Type: DoubleFloat --E 23 ---S 24 of 104 +--S 24 of 121 dasum(2,a,2) -- 4.0 1.0+3.0 --R --R (14) 4. --R Type: DoubleFloat --E 24 ---S 25 of 104 +--S 25 of 121 dasum(3,a,2) -- 9.0 1.0+3.0+5.0 --R --R (15) 4. --R Type: DoubleFloat --E 25 ---S 26 of 104 +--S 26 of 121 dasum(4,a,2) -- 9.0 1.0+3.0+5.0 --R --R (16) 4. --R Type: DoubleFloat --E 26 ---S 27 of 104 +--S 27 of 121 dasum(1,a,3) -- 1.0 1.0 --R --R (17) 1. --R Type: DoubleFloat --E 27 ---S 28 of 104 +--S 28 of 121 dasum(2,a,3) -- 5.0 1.0+4.0 --R --R (18) 5. --R Type: DoubleFloat --E 28 ---S 29 of 104 +--S 29 of 121 dasum(3,a,3) -- 5.0 1.0+4.0 --R --R (19) 5. --R Type: DoubleFloat --E 29 ---S 30 of 104 +--S 30 of 121 dasum(1,a,4) -- 1.0 1.0 --R --R (20) 1. --R Type: DoubleFloat --E 30 ---S 31 of 104 +--S 31 of 121 dasum(2,a,4) -- 6.0 1.0+5.0 --R --R (21) 1. --R Type: DoubleFloat --E 31 ---S 32 of 104 +--S 32 of 121 dasum(3,a,4) -- 6.0 1.0+5.0 --R --R (22) 1. --R Type: DoubleFloat --E 32 ---S 33 of 104 +--S 33 of 121 dasum(1,a,5) -- 1.0 1.0 --R --R (23) 1. --R Type: DoubleFloat --E 33 ---S 34 of 104 +--S 34 of 121 dasum(2,a,5) -- 7.0 1.0+6.0 --R --R (24) 6. --R Type: DoubleFloat --E 34 ---S 35 of 104 +--S 35 of 121 dasum(3,a,5) -- 7.0 1.0+6.0 --R --R (25) 6. --R Type: DoubleFloat --E 35 ---S 36 of 104 +--S 36 of 121 dasum(1,a,6) -- 1.0 1.0 --R --R (26) 1. --R Type: DoubleFloat --E 36 ---S 37 of 104 +--S 37 of 121 dasum(2,a,6) -- 1.0 1.0 --R --R (27) 1. --R Type: DoubleFloat --E 37 ---S 38 of 104 +--S 38 of 121 dasum(1,a,7) -- 1.0 1.0 --R --R (28) 1. @@ -628,7 +628,7 @@ dasum(1,a,7) -- 1.0 1.0 )clear all ---S 39 of 104 +--S 39 of 121 a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -636,7 +636,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 104 +--S 40 of 121 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -644,7 +644,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 104 +--S 41 of 121 daxpy(3,2.0,a,1,b,1) --R --R @@ -652,7 +652,7 @@ daxpy(3,2.0,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 41 ---S 42 of 104 +--S 42 of 121 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -660,7 +660,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 104 +--S 43 of 121 daxpy(7,2.0,a,1,b,1) --R --R @@ -668,7 +668,7 @@ daxpy(7,2.0,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 43 ---S 44 of 104 +--S 44 of 121 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -681,7 +681,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 104 +--S 45 of 121 daxpy(8,2.0,a,1,b,1) --R --R @@ -689,7 +689,7 @@ daxpy(8,2.0,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 45 ---S 46 of 104 +--S 46 of 121 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -697,7 +697,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 104 +--S 47 of 121 daxpy(3,2.0,a,3,b,3) --R --R @@ -705,7 +705,7 @@ daxpy(3,2.0,a,3,b,3) --R Type: PrimitiveArray(DoubleFloat) --E 47 ---S 48 of 104 +--S 48 of 121 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -713,7 +713,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 104 +--S 49 of 121 daxpy(4,2.0,a,2,b,2) --R --R @@ -721,7 +721,7 @@ daxpy(4,2.0,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 49 ---S 50 of 104 +--S 50 of 121 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 50 ---S 51 of 104 +--S 51 of 121 daxpy(5,2.0,a,2,b,2) --R --R @@ -737,7 +737,7 @@ daxpy(5,2.0,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 51 ---S 52 of 104 +--S 52 of 121 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 52 ---S 53 of 104 +--S 53 of 121 daxpy(3,2.0,a,2,b,2) --R --R @@ -753,7 +753,7 @@ daxpy(3,2.0,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 53 ---S 54 of 104 +--S 54 of 121 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 54 ---S 55 of 104 +--S 55 of 121 daxpy(3,-2.0,a,2,b,2) --R --R @@ -769,7 +769,7 @@ daxpy(3,-2.0,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 55 ---S 56 of 104 +--S 56 of 121 a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R --R @@ -777,7 +777,7 @@ a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 56 ---S 57 of 104 +--S 57 of 121 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R --R @@ -785,7 +785,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 57 ---S 58 of 104 +--S 58 of 121 daxpy(3,-2.0,a,1,b,2) --R --R @@ -793,7 +793,7 @@ daxpy(3,-2.0,a,1,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 58 ---S 59 of 104 +--S 59 of 121 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -801,7 +801,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 104 +--S 60 of 121 daxpy(3,0.0,a,1,b,2) --R --R @@ -811,7 +811,7 @@ daxpy(3,0.0,a,1,b,2) )clear all ---S 61 of 104 +--S 61 of 121 a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] ] --R --R @@ -819,7 +819,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 104 +--S 62 of 121 b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R --R @@ -827,7 +827,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 104 +--S 63 of 121 dcopy(3,a,1,b,1) --R --R @@ -835,7 +835,7 @@ dcopy(3,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 63 ---S 64 of 104 +--S 64 of 121 b:PRIMARR(DFLOAT):=[ [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ] --R --R @@ -843,7 +843,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 104 +--S 65 of 121 dcopy(7,a,1,b,1) --R --R @@ -851,7 +851,7 @@ dcopy(7,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 65 ---S 66 of 104 +--S 66 of 121 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 66 ---S 67 of 104 +--S 67 of 121 dcopy(8,a,1,b,1) --R --R @@ -867,7 +867,7 @@ dcopy(8,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 67 ---S 68 of 104 +--S 68 of 121 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 68 ---S 69 of 104 +--S 69 of 121 dcopy(3,a,3,b,3) --R --R @@ -883,7 +883,7 @@ dcopy(3,a,3,b,3) --R Type: PrimitiveArray(DoubleFloat) --E 69 ---S 70 of 104 +--S 70 of 121 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 70 ---S 71 of 104 +--S 71 of 121 dcopy(4,a,2,b,2) --R --R @@ -899,7 +899,7 @@ dcopy(4,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 71 ---S 72 of 104 +--S 72 of 121 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 72 ---S 73 of 104 +--S 73 of 121 dcopy(5,a,2,b,2) --R --R @@ -915,7 +915,7 @@ dcopy(5,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 73 ---S 74 of 104 +--S 74 of 121 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 74 ---S 75 of 104 +--S 75 of 121 dcopy(3,a,2,b,2) --R --R @@ -931,7 +931,7 @@ dcopy(3,a,2,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 75 ---S 76 of 104 +--S 76 of 121 a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R --R @@ -939,7 +939,7 @@ a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 76 ---S 77 of 104 +--S 77 of 121 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R --R @@ -947,7 +947,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 77 ---S 78 of 104 +--S 78 of 121 dcopy(3,a,1,b,1) --R --R @@ -955,7 +955,7 @@ dcopy(3,a,1,b,1) --R Type: PrimitiveArray(DoubleFloat) --E 78 ---S 79 of 104 +--S 79 of 121 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R --R @@ -963,7 +963,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 79 ---S 80 of 104 +--S 80 of 121 dcopy(3,a,1,b,2) --R --R @@ -971,7 +971,7 @@ dcopy(3,a,1,b,2) --R Type: PrimitiveArray(DoubleFloat) --E 80 ---S 81 of 104 +--S 81 of 121 a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R --R @@ -979,7 +979,7 @@ a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 81 ---S 82 of 104 +--S 82 of 121 b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R --R @@ -987,7 +987,7 @@ b:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0] ] --R Type: PrimitiveArray(DoubleFloat) --E 82 ---S 83 of 104 +--S 83 of 121 dcopy(5,a,1,b,1) --R --R @@ -997,63 +997,63 @@ dcopy(5,a,1,b,1) )clear all ---S 84 of 104 +--S 84 of 121 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 104 +--S 85 of 121 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 104 +--S 86 of 121 ddot(0,a,1,b,1) --R --R (3) 0. --R Type: DoubleFloat --E 86 ---S 87 of 104 +--S 87 of 121 ddot(3,a,1,b,1) --R --R (4) 38. --R Type: DoubleFloat --E 87 ---S 88 of 104 +--S 88 of 121 ddot(3,a,1,b,2) --R --R (5) 46. --R Type: DoubleFloat --E 88 ---S 89 of 104 +--S 89 of 121 ddot(3,a,2,b,1) --R --R (6) 58. --R Type: DoubleFloat --E 89 ---S 90 of 104 +--S 90 of 121 ddot(3,a,1,b,-2) --R --R (7) 38. --R Type: DoubleFloat --E 90 ---S 91 of 104 +--S 91 of 121 ddot(3,a,-2,b,1) --R --R (8) 50. --R Type: DoubleFloat --E 91 ---S 92 of 104 +--S 92 of 121 ddot(3,a,-2,b,-2) --R --R (9) 71. @@ -1062,28 +1062,28 @@ ddot(3,a,-2,b,-2) )clear all ---S 93 of 104 +--S 93 of 121 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 104 +--S 94 of 121 dnrm2(3,a,1) --R --R (2) 7.0710678118654755 --R Type: DoubleFloat --E 94 ---S 95 of 104 +--S 95 of 121 dnrm2(5,a,1) --R --R (3) 13.416407864998739 --R Type: DoubleFloat --E 95 ---S 96 of 104 +--S 96 of 121 dnrm2(3,a,2) --R --R (4) 10.723805294763608 @@ -1091,7 +1091,7 @@ dnrm2(3,a,2) --E 96 )clear all ---S 97 of 104 +--S 97 of 121 a:MATRIX(DFLOAT):=[[6,5,0],[5,1,4],[0,4,3]] --R --R +6. 5. 0.+ @@ -1102,7 +1102,7 @@ a:MATRIX(DFLOAT):=[[6,5,0],[5,1,4],[0,4,3]] --R Type: Matrix(DoubleFloat) --E 97 ---S 98 of 104 +--S 98 of 121 t1:=drotg(elt(a,1,1),elt(a,1,2),0.0,0.0) --R --R (2) @@ -1111,7 +1111,7 @@ t1:=drotg(elt(a,1,1),elt(a,1,2),0.0,0.0) --R Type: PrimitiveArray(DoubleFloat) --E 98 ---S 99 of 104 +--S 99 of 121 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]] @@ -1125,7 +1125,7 @@ g1:MATRIX(DFLOAT):=[[elt(t1,2), elt(t1,3),0.0],_ --R Type: Matrix(DoubleFloat) --E 99 ---S 100 of 104 +--S 100 of 121 t2:=g1*a --R --R + 7.810249675906654 4.4812907976513596 2.5607375986579197+ @@ -1136,7 +1136,7 @@ t2:=g1*a --R Type: Matrix(DoubleFloat) --E 100 ---S 101 of 104 +--S 101 of 121 t3:=drotg(elt(t2,2,2),elt(a,3,2),0.0,0.0) --R --R (5) @@ -1145,7 +1145,7 @@ t3:=drotg(elt(t2,2,2),elt(a,3,2),0.0,0.0) --R Type: PrimitiveArray(DoubleFloat) --E 101 ---S 102 of 104 +--S 102 of 121 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)]] @@ -1159,7 +1159,7 @@ g2:MATRIX(DFLOAT):=[[1.0, 0.0, 0.0],_ --R Type: Matrix(DoubleFloat) --E 102 ---S 103 of 104 +--S 103 of 121 g2*g1*a --R --R + 7.810249675906654 4.4812907976513596 2.5607375986579197 + @@ -1170,7 +1170,7 @@ g2*g1*a --R Type: Matrix(DoubleFloat) --E 103 ---S 104 of 104 +--S 104 of 121 q:=transpose(g1)*transpose(g2) --R --R +0.76822127959737585 0.33265417936007158 0.54697098874441952 + @@ -1181,6 +1181,230 @@ q:=transpose(g1)*transpose(g2) --R Type: Matrix(DoubleFloat) --E 104 +)clear all + +--S 105 of 121 +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 121 +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 121 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate by 45 degrees +--R +--R (3) +--R [ +--R [7.778174591, 0.70710678100000002, - 2.1213203429999998, +--R 5.6568542480000001, - 3.5355339050000003, - 1.] +--R , +--R +--R [- 0.70710678100000002, 0.70710678100000002, - 3.5355339050000003, 0., +--R - 2.1213203429999998] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 107 + +--S 108 of 121 +[dx,dy] -- note that the input arguments, dx and dy were modified +--R +--R (4) +--R [ +--R [7.778174591, 0.70710678100000002, - 2.1213203429999998, +--R 5.6568542480000001, - 3.5355339050000003, - 1.] +--R , +--R +--R [- 0.70710678100000002, 0.70710678100000002, - 3.5355339050000003, 0., +--R - 2.1213203429999998] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 108 + +--S 109 of 121 +drot(5,dx,1,dy,1,0.707106781,-0.707106781) -- rotate by -45 degrees +--R +--R (5) +--R [ +--R [5.9999999968341839, 7.8496237287950521E-17, 0.99999999947236384, +--R 3.9999999978894558, - 0.99999999947236451, - 1.] +--R , +--R +--R [4.9999999973618188, 0.99999999947236384, - 3.9999999978894558, +--R 3.9999999978894554, - 3.9999999978894554] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 109 + +--S 110 of 121 +[dx,dy] -- note that the input arguments, dx and dy were modified +--R +--R (6) +--R [ +--R [5.9999999968341839, 7.8496237287950521E-17, 0.99999999947236384, +--R 3.9999999978894558, - 0.99999999947236451, - 1.] +--R , +--R +--R [4.9999999973618188, 0.99999999947236384, - 3.9999999978894558, +--R 3.9999999978894554, - 3.9999999978894554] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 110 + +--S 111 of 121 +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 121 +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 121 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate by 45 degrees +--R +--R (9) +--R [ +--R [7.778174591, 0.70710678100000002, - 2.1213203429999998, +--R 5.6568542480000001, - 3.5355339050000003, - 1.] +--R , +--R +--R [- 0.70710678100000002, 0.70710678100000002, - 3.5355339050000003, 0., +--R - 2.1213203429999998] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 113 + +--S 114 of 121 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 90 degrees +--R +--R (10) +--R [ +--R [4.9999999973618197, 0.99999999947236395, - 3.9999999978894558, +--R 3.9999999978894558, - 3.9999999978894558, - 1.] +--R , +--R +--R [- 5.9999999968341839, 0., - 0.99999999947236429, - 3.9999999978894558, +--R 0.99999999947236429] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 114 + +--S 115 of 121 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 135 degrees +--R +--R (11) +--R [ +--R [- 0.70710678062690524, 0.70710678062690502, - 3.535533903134525, 0., +--R - 2.1213203418807147, - 1.] +--R , +--R +--R [- 7.7781745868959549, - 0.70710678062690502, 2.1213203418807147, +--R - 5.6568542450152401, 3.535533903134525] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 115 + +--S 116 of 121 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 180 degrees +--R +--R (12) +--R [ +--R [- 5.9999999936683679, 0., - 0.99999999894472813, - 3.9999999957789121, +--R 0.99999999894472813, - 1.] +--R , +--R +--R [- 4.9999999947236393, - 0.99999999894472802, 3.9999999957789116, +--R - 3.9999999957789121, 3.9999999957789116] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 116 + +--S 117 of 121 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 225 degrees +--R +--R (13) +--R [ +--R [- 7.7781745827919098, - 0.70710678025381002, 2.1213203407614296, +--R - 5.6568542420304802, 3.5355339012690501, - 1.] +--R , +--R +--R [0.70710678025381046, - 0.70710678025381002, 3.5355339012690501, 0., +--R 2.1213203407614296] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 117 + +--S 118 of 121 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 270 degrees +--R +--R (14) +--R [ +--R [- 4.999999992085459, - 0.99999999841709197, 3.9999999936683674, +--R - 3.9999999936683679, 3.9999999936683674, - 1.] +--R , +--R +--R [5.9999999905025518, 0., 0.99999999841709231, 3.9999999936683679, +--R - 0.99999999841709231] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 118 + +--S 119 of 121 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 315 degrees +--R +--R (15) +--R [ +--R [0.70710677988071569, - 0.70710677988071502, 3.5355338994035752, 0., +--R 2.1213203396421445, - 1.] +--R , +--R +--R [7.7781745786878647, 0.70710677988071502, - 2.1213203396421445, +--R 5.6568542390457202, - 3.5355338994035752] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 119 + +--S 120 of 121 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 360 degrees +--R +--R (16) +--R [ +--R [5.9999999873367358, 0., 0.99999999788945637, 3.9999999915578237, +--R - 0.99999999788945637, - 1.] +--R , +--R +--R [4.9999999894472786, 0.99999999788945593, - 3.9999999915578233, +--R 3.9999999915578237, - 3.9999999915578233] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 120 + +--S 121 of 121 +[dx,dy] -- note that the input arguments, dx and dy were modified +--R +--R (17) +--R [ +--R [5.9999999873367358, 0., 0.99999999788945637, 3.9999999915578237, +--R - 0.99999999788945637, - 1.] +--R , +--R +--R [4.9999999894472786, 0.99999999788945593, - 3.9999999915578233, +--R 3.9999999915578237, - 3.9999999915578233] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 121 )spool )lisp (bye) \end{chunk} @@ -1242,6 +1466,7 @@ BlasLevelOne() : Exports == Implementation where DF ==> DoubleFloat DX ==> PrimitiveArray(DoubleFloat) CDF ==> Complex DoubleFloat + LDX ==> List(PrimitiveArray(DoubleFloat)) Exports == with @@ -1319,6 +1544,24 @@ BlasLevelOne() : Exports == Implementation where ++X a:MATRIX(DFLOAT):=[[6,5,0],[5,1,4],[0,4,3]] ++X drotg(elt(a,1,1),elt(a,1,2),0.0D0,0.0D0) + drot: (SI, DX, SI, DX, SI, DF, DF) -> LDX + ++ drot computes a 2D plane Givens rotation spanned by two + ++ coordinate axes. It modifies the arrays in place. + ++ The call drot(n,dx,incx,dy,incy,c,s) has the dx array which + ++ contains the y axis locations and dy which contains the + ++ y axis locations. They are rotated in parallel where + ++ c is the cosine of the angle and s is the sine of the angle and + ++ c^2+s^2 = 1 + ++ + ++X dx:PRIMARR(DFLOAT):=[[6,0, 1.0, 4.0, -1.0, -1.0]] + ++X dy:PRIMARR(DFLOAT):=[[5.0, 1.0, -4.0, 4.0, -4.0]] + ++X drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate by 45 degrees + ++X dx -- dx has been modified + ++X dy -- dy has been modified + ++X drot(5,dx,1,dy,1,0.707106781,-0.707106781) -- rotate by -45 degrees + ++X dx -- dx has been modified + ++X dy -- dy has been modified + Implementation == add dcabs1(z:CDF):DF == @@ -1335,6 +1578,8 @@ BlasLevelOne() : Exports == Implementation where DNRM2(n,dx,incx)$Lisp drotg(a:DF,b:DF,c:DF,s:DF):DX == DROTG(a,b,c,s)$Lisp + drot(n:SI,dx:DX,incx:SI,dy:DX,incy:SI,c:DF,s:DF):LDX == + DROT(n,dx,incx,dy,incy,c,s)$Lisp \end{chunk} \begin{chunk}{BLAS1.dotabb} @@ -3544,6 +3789,42 @@ ddot(3,a,-2,b,-2) ddot examples ==================================================================== +a:PRIMARR(DFLOAT):=[ [ 1.0, 2.0, 3.0, 4.0, 5.0] ] + + [1.,2.,3.,4.,5.] + +b:PRIMARR(DFLOAT):=[ [ 5.0, 6.0, 7.0, 8.0, 9.0] ] + + [5.,6.,7.,8.,9.] + +ddot(0,a,1,b,1) + + 0. + +ddot(3,a,1,b,1) + + 38. ( = 1.0*5.0 + 2.0*6.0 + 3.0*7.0 ) + +ddot(3,a,1,b,2) + + 46. ( = 1.0*5.0 + 2.0*7.0 + 3.0*9.0 ) + +ddot(3,a,2,b,1) + + 58. ( = 1.0*5.0 + 3.0*6.0 + 5.0*7.0 ) + +ddot(3,a,1,b,-2) + + 38. ( = 1.0*9.0 + 2.0*7.0 + 3.0*5.0 ) + +ddot(3,a,-2,b,1) + + 50. ( = 5.0*5.0 + 3.0*6.0 + 1.0*7.0 ) + +ddot(3,a,-2,b,-2) + + 71. ( = 5.0*9.0 + 3.0*7.0 + 1.0*5.0 ) + ==================================================================== Man Page Details ==================================================================== @@ -4076,6 +4357,96 @@ c= 10.724 )set message auto off )clear all +--S 1 of 8 +a:MATRIX(DFLOAT):=[[6,5,0],[5,1,4],[0,4,3]] +--R +--R +6. 5. 0.+ +--R | | +--R (1) |5. 1. 4.| +--R | | +--R +0. 4. 3.+ +--R Type: Matrix(DoubleFloat) +--E 1 + +--S 2 of 8 +t1:=drotg(elt(a,1,1),elt(a,1,2),0.0,0.0) +--R +--R (2) +--R [7.810249675906654, 0.64018439966447993, 0.76822127959737585, +--R 0.64018439966447993] +--R Type: PrimitiveArray(DoubleFloat) +--E 2 + +--S 3 of 8 +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]] +--R +--R +--R + 0.76822127959737585 0.64018439966447993 0.+ +--R | | +--R (3) |- 0.64018439966447993 0.76822127959737585 0.| +--R | | +--R + 0. 0. 1.+ +--R Type: Matrix(DoubleFloat) +--E 3 + +--S 4 of 8 +t2:=g1*a +--R +--R + 7.810249675906654 4.4812907976513596 2.5607375986579197+ +--R | | +--R (4) |- 4.4408920985006262E-16 - 2.4327007187250236 3.0728851183895034| +--R | | +--R + 0. 4. 3. + +--R Type: Matrix(DoubleFloat) +--E 4 + +--S 5 of 8 +t3:=drotg(elt(t2,2,2),elt(a,3,2),0.0,0.0) +--R +--R (5) +--R [4.6816698716254272, - 1.924474241977076, - 0.51962243930719854, +--R 0.85439599751428896] +--R Type: PrimitiveArray(DoubleFloat) +--E 5 + +--S 6 of 8 +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)]] +--R +--R +--R +1. 0. 0. + +--R | | +--R (6) |0. - 0.51962243930719854 0.85439599751428896 | +--R | | +--R +0. - 0.85439599751428896 - 0.51962243930719854+ +--R Type: Matrix(DoubleFloat) +--E 6 + +--S 7 of 8 +g2*g1*a +--R +--R + 7.810249675906654 4.4812907976513596 2.5607375986579197 + +--R | | +--R (7) | 2.2204460492503131E-16 4.6816698716254272 0.96644793161452336 | +--R | | +--R +- 4.4408920985006262E-16 0. - 4.1843280638948093+ +--R Type: Matrix(DoubleFloat) +--E 7 + +--S 8 of 8 +q:=transpose(g1)*transpose(g2) +--R +--R +0.76822127959737585 0.33265417936007158 0.54697098874441952 + +--R | | +--R (8) |0.64018439966447993 - 0.39918501523208583 - 0.65636518649330344| +--R | | +--R + 0. 0.85439599751428896 - 0.51962243930719854+ +--R Type: Matrix(DoubleFloat) +--E 8 + )spool )lisp (bye) \end{chunk} @@ -4603,6 +4974,229 @@ Q=transpose(G1)*transpose(G2) )set message auto off )clear all +--S 1 of 17 +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 1 + +--S 2 of 17 +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 2 + +--S 3 of 17 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate by 45 degrees +--R +--R (3) +--R [ +--R [7.778174591, 0.70710678100000002, - 2.1213203429999998, +--R 5.6568542480000001, - 3.5355339050000003, - 1.] +--R , +--R +--R [- 0.70710678100000002, 0.70710678100000002, - 3.5355339050000003, 0., +--R - 2.1213203429999998] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 3 + +--S 4 of 17 +[dx,dy] -- note that the input arguments, dx and dy were modified +--R +--R (4) +--R [ +--R [7.778174591, 0.70710678100000002, - 2.1213203429999998, +--R 5.6568542480000001, - 3.5355339050000003, - 1.] +--R , +--R +--R [- 0.70710678100000002, 0.70710678100000002, - 3.5355339050000003, 0., +--R - 2.1213203429999998] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 4 + +--S 5 of 17 +drot(5,dx,1,dy,1,0.707106781,-0.707106781) -- rotate by -45 degrees +--R +--R (5) +--R [ +--R [5.9999999968341839, 7.8496237287950521E-17, 0.99999999947236384, +--R 3.9999999978894558, - 0.99999999947236451, - 1.] +--R , +--R +--R [4.9999999973618188, 0.99999999947236384, - 3.9999999978894558, +--R 3.9999999978894554, - 3.9999999978894554] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 5 + +--S 6 of 17 +[dx,dy] -- note that the input arguments, dx and dy were modified +--R +--R (6) +--R [ +--R [5.9999999968341839, 7.8496237287950521E-17, 0.99999999947236384, +--R 3.9999999978894558, - 0.99999999947236451, - 1.] +--R , +--R +--R [4.9999999973618188, 0.99999999947236384, - 3.9999999978894558, +--R 3.9999999978894554, - 3.9999999978894554] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 6 + +--S 7 of 17 +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 7 + +--S 8 of 17 +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 8 + +--S 9 of 17 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate by 45 degrees +--R +--R (9) +--R [ +--R [7.778174591, 0.70710678100000002, - 2.1213203429999998, +--R 5.6568542480000001, - 3.5355339050000003, - 1.] +--R , +--R +--R [- 0.70710678100000002, 0.70710678100000002, - 3.5355339050000003, 0., +--R - 2.1213203429999998] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 9 + +--S 10 of 17 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 90 degrees +--R +--R (10) +--R [ +--R [4.9999999973618197, 0.99999999947236395, - 3.9999999978894558, +--R 3.9999999978894558, - 3.9999999978894558, - 1.] +--R , +--R +--R [- 5.9999999968341839, 0., - 0.99999999947236429, - 3.9999999978894558, +--R 0.99999999947236429] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 10 + +--S 11 of 17 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 135 degrees +--R +--R (11) +--R [ +--R [- 0.70710678062690524, 0.70710678062690502, - 3.535533903134525, 0., +--R - 2.1213203418807147, - 1.] +--R , +--R +--R [- 7.7781745868959549, - 0.70710678062690502, 2.1213203418807147, +--R - 5.6568542450152401, 3.535533903134525] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 11 + +--S 12 of 17 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 180 degrees +--R +--R (12) +--R [ +--R [- 5.9999999936683679, 0., - 0.99999999894472813, - 3.9999999957789121, +--R 0.99999999894472813, - 1.] +--R , +--R +--R [- 4.9999999947236393, - 0.99999999894472802, 3.9999999957789116, +--R - 3.9999999957789121, 3.9999999957789116] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 12 + +--S 13 of 17 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 225 degrees +--R +--R (13) +--R [ +--R [- 7.7781745827919098, - 0.70710678025381002, 2.1213203407614296, +--R - 5.6568542420304802, 3.5355339012690501, - 1.] +--R , +--R +--R [0.70710678025381046, - 0.70710678025381002, 3.5355339012690501, 0., +--R 2.1213203407614296] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 13 + +--S 14 of 17 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 270 degrees +--R +--R (14) +--R [ +--R [- 4.999999992085459, - 0.99999999841709197, 3.9999999936683674, +--R - 3.9999999936683679, 3.9999999936683674, - 1.] +--R , +--R +--R [5.9999999905025518, 0., 0.99999999841709231, 3.9999999936683679, +--R - 0.99999999841709231] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 14 + +--S 15 of 17 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 315 degrees +--R +--R (15) +--R [ +--R [0.70710677988071569, - 0.70710677988071502, 3.5355338994035752, 0., +--R 2.1213203396421445, - 1.] +--R , +--R +--R [7.7781745786878647, 0.70710677988071502, - 2.1213203396421445, +--R 5.6568542390457202, - 3.5355338994035752] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 15 + +--S 16 of 17 +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate to 360 degrees +--R +--R (16) +--R [ +--R [5.9999999873367358, 0., 0.99999999788945637, 3.9999999915578237, +--R - 0.99999999788945637, - 1.] +--R , +--R +--R [4.9999999894472786, 0.99999999788945593, - 3.9999999915578233, +--R 3.9999999915578237, - 3.9999999915578233] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 16 + +--S 17 of 17 +[dx,dy] -- note that the input arguments, dx and dy were modified +--R +--R (17) +--R [ +--R [5.9999999873367358, 0., 0.99999999788945637, 3.9999999915578237, +--R - 0.99999999788945637, - 1.] +--R , +--R +--R [4.9999999894472786, 0.99999999788945593, - 3.9999999915578233, +--R 3.9999999915578237, - 3.9999999915578233] +--R ] +--R Type: List(PrimitiveArray(DoubleFloat)) +--E 17 + )spool )lisp (bye) \end{chunk} @@ -4611,6 +5205,51 @@ Q=transpose(G1)*transpose(G2) drot examples ==================================================================== +We set up two arrays of doublefloats, dx and dy + +dx:PRIMARR(DFLOAT):=[[6,0, 1.0, 4.0, -1.0, -1.0]] + + [6.,0.,1.,4.,- 1.,- 1.] + +dy:PRIMARR(DFLOAT):=[[5.0, 1.0, -4.0, 4.0, -4.0]] + + [5.,1.,- 4.,4.,- 4.] + +We rotate them by 45 degrees where + cos(45) = 0.707106781 + sin(45) = 0.707106781 + +drot(5,dx,1,dy,1,0.707106781,0.707106781) -- rotate by 45 degrees + + [ [7.778174591, 0.70710678100000002, - 2.1213203429999998, + 5.6568542480000001, - 3.5355339050000003, - 1.], + + [- 0.70710678100000002, 0.70710678100000002, - 3.5355339050000003, 0., + - 2.1213203429999998] ] + +NOTE that the input arguments, dx and dy were modified, per BLAS spec. + +[dx,dy] + + [ [7.778174591, 0.70710678100000002, - 2.1213203429999998, + 5.6568542480000001, - 3.5355339050000003, - 1.], + + [- 0.70710678100000002, 0.70710678100000002, - 3.5355339050000003, 0., + - 2.1213203429999998] ] + +We rotate them by -45 degrees where + cos(-45) = 0.707106781 + sin(-45) = -0.707106781 + +drot(5,dx,1,dy,1,0.707106781,-0.707106781) -- rotate by -45 degrees + + [ [5.9999999968341839, 7.8496237287950521E-17, 0.99999999947236384, + 3.9999999978894558, - 0.99999999947236451, - 1.], + + [4.9999999973618188, 0.99999999947236384, - 3.9999999978894558, + 3.9999999978894554, - 3.9999999978894554] ] + + ==================================================================== Man Page Details ==================================================================== @@ -4732,56 +5371,414 @@ c \end{chunk} +\begin{chunk}{drotg example} + program drotEX +* Tim Daly May 4, 2012 +* unit tests for BLAS drot + double precision dx(5),dy(5) + double precision c,s + + write(6,1) + 1 format(/,"rotate by 45, -45") + dx(1)=6.0d0 + dy(1)=5.0d0 + dx(2)=1.0d0 + dy(2)=1.0d0 + dx(3)=4.0d0 + dy(3)=-4.0d0 + dx(4)=-1.0d0 + dy(4)=4.0d0 + dx(5)=-1.0d0 + dy(5)=-4.0d0 + write(6,10)dx(1),dy(1) + 10 format(/,"dx(1)=",f6.3," dy(1)=",f6.3) + write(6,20)dx(2),dy(2) + 20 format("dx(2)=",f6.3," dy(2)=",f6.3) + write(6,30)dx(3),dy(3) + 30 format("dx(3)=",f6.3," dy(2)=",f6.3) + write(6,40)dx(4),dy(4) + 40 format("dx(4)=",f6.3," dy(4)=",f6.3) + write(6,50)dx(5),dy(5) + 50 format("dx(5)=",f6.3," dy(5)=",f6.3) + call drot(5,dx,1,dy,1,0.707106781d0,0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(5,dx,1,dy,1,0.707106781d0,-0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + + write(6,2) + 2 format(/,"rotate by 45, -45, only some members") + dx(1)=6.0d0 + dy(1)=5.0d0 + dx(2)=1.0d0 + dy(2)=1.0d0 + dx(3)=4.0d0 + dy(3)=-4.0d0 + dx(4)=-1.0d0 + dy(4)=4.0d0 + dx(5)=-1.0d0 + dy(5)=-4.0d0 + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(3,dx,2,dy,2,0.707106781d0,0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(3,dx,2,dy,2,0.707106781d0,-0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + + write(6,3) + 3 format(/,"rotate by 360") + dx(1)=6.0d0 + dy(1)=5.0d0 + dx(2)=1.0d0 + dy(2)=1.0d0 + dx(3)=4.0d0 + dy(3)=-4.0d0 + dx(4)=-1.0d0 + dy(4)=4.0d0 + dx(5)=-1.0d0 + dy(5)=-4.0d0 + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(5,dx,1,dy,1,0.707106781d0,0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(5,dx,1,dy,1,0.707106781d0,0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(5,dx,1,dy,1,0.707106781d0,0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(5,dx,1,dy,1,0.707106781d0,0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(5,dx,1,dy,1,0.707106781d0,0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(5,dx,1,dy,1,0.707106781d0,0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(5,dx,1,dy,1,0.707106781d0,0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(5,dx,1,dy,1,0.707106781d0,0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + + write(6,4) + 4 format(/,"rotate by 45, from end") + dx(1)=6.0d0 + dy(1)=5.0d0 + dx(2)=1.0d0 + dy(2)=1.0d0 + dx(3)=4.0d0 + dy(3)=-4.0d0 + dx(4)=-1.0d0 + dy(4)=4.0d0 + dx(5)=-1.0d0 + dy(5)=-4.0d0 + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + call drot(2,dx,-1,dy,-1,0.707106781d0,0.707106781d0) + write(6,10)dx(1),dy(1) + write(6,20)dx(2),dy(2) + write(6,30)dx(3),dy(3) + write(6,40)dx(4),dy(4) + write(6,50)dx(5),dy(5) + stop + end +\end{chunk} + +\begin{verbatim} +gcc -o drotEX drotEX.f -lgfortran drot.o && ./drotEX + +rotate by 45, -45 + +dx(1)= 6.000 dy(1)= 5.000 +dx(2)= 1.000 dy(2)= 1.000 +dx(3)= 4.000 dy(2)=-4.000 +dx(4)=-1.000 dy(4)= 4.000 +dx(5)=-1.000 dy(5)=-4.000 + +dx(1)= 7.778 dy(1)=-0.707 +dx(2)= 1.414 dy(2)= 0.000 +dx(3)= 0.000 dy(2)=-5.657 +dx(4)= 2.121 dy(4)= 3.536 +dx(5)=-3.536 dy(5)=-2.121 + +dx(1)= 6.000 dy(1)= 5.000 +dx(2)= 1.000 dy(2)= 1.000 +dx(3)= 4.000 dy(2)=-4.000 +dx(4)=-1.000 dy(4)= 4.000 +dx(5)=-1.000 dy(5)=-4.000 + +rotate by 45, -45, only some members + +dx(1)= 6.000 dy(1)= 5.000 +dx(2)= 1.000 dy(2)= 1.000 +dx(3)= 4.000 dy(2)=-4.000 +dx(4)=-1.000 dy(4)= 4.000 +dx(5)=-1.000 dy(5)=-4.000 + +dx(1)= 7.778 dy(1)=-0.707 +dx(2)= 1.000 dy(2)= 1.000 +dx(3)= 0.000 dy(2)=-5.657 +dx(4)=-1.000 dy(4)= 4.000 +dx(5)=-3.536 dy(5)=-2.121 + +dx(1)= 6.000 dy(1)= 5.000 +dx(2)= 1.000 dy(2)= 1.000 +dx(3)= 4.000 dy(2)=-4.000 +dx(4)=-1.000 dy(4)= 4.000 +dx(5)=-1.000 dy(5)=-4.000 + +rotate by 360 + +dx(1)= 6.000 dy(1)= 5.000 +dx(2)= 1.000 dy(2)= 1.000 +dx(3)= 4.000 dy(2)=-4.000 +dx(4)=-1.000 dy(4)= 4.000 +dx(5)=-1.000 dy(5)=-4.000 + +dx(1)= 7.778 dy(1)=-0.707 +dx(2)= 1.414 dy(2)= 0.000 +dx(3)= 0.000 dy(2)=-5.657 +dx(4)= 2.121 dy(4)= 3.536 +dx(5)=-3.536 dy(5)=-2.121 + +dx(1)= 5.000 dy(1)=-6.000 +dx(2)= 1.000 dy(2)=-1.000 +dx(3)=-4.000 dy(2)=-4.000 +dx(4)= 4.000 dy(4)= 1.000 +dx(5)=-4.000 dy(5)= 1.000 + +dx(1)=-0.707 dy(1)=-7.778 +dx(2)= 0.000 dy(2)=-1.414 +dx(3)=-5.657 dy(2)= 0.000 +dx(4)= 3.536 dy(4)=-2.121 +dx(5)=-2.121 dy(5)= 3.536 + +dx(1)=-6.000 dy(1)=-5.000 +dx(2)=-1.000 dy(2)=-1.000 +dx(3)=-4.000 dy(2)= 4.000 +dx(4)= 1.000 dy(4)=-4.000 +dx(5)= 1.000 dy(5)= 4.000 + +dx(1)=-7.778 dy(1)= 0.707 +dx(2)=-1.414 dy(2)= 0.000 +dx(3)= 0.000 dy(2)= 5.657 +dx(4)=-2.121 dy(4)=-3.536 +dx(5)= 3.536 dy(5)= 2.121 + +dx(1)=-5.000 dy(1)= 6.000 +dx(2)=-1.000 dy(2)= 1.000 +dx(3)= 4.000 dy(2)= 4.000 +dx(4)=-4.000 dy(4)=-1.000 +dx(5)= 4.000 dy(5)=-1.000 + +dx(1)= 0.707 dy(1)= 7.778 +dx(2)= 0.000 dy(2)= 1.414 +dx(3)= 5.657 dy(2)= 0.000 +dx(4)=-3.536 dy(4)= 2.121 +dx(5)= 2.121 dy(5)=-3.536 + +dx(1)= 6.000 dy(1)= 5.000 +dx(2)= 1.000 dy(2)= 1.000 +dx(3)= 4.000 dy(2)=-4.000 +dx(4)=-1.000 dy(4)= 4.000 +dx(5)=-1.000 dy(5)=-4.000 + +rotate by 45, from end + +dx(1)= 6.000 dy(1)= 5.000 +dx(2)= 1.000 dy(2)= 1.000 +dx(3)= 4.000 dy(2)=-4.000 +dx(4)=-1.000 dy(4)= 4.000 +dx(5)=-1.000 dy(5)=-4.000 + +dx(1)= 7.778 dy(1)=-0.707 +dx(2)= 1.414 dy(2)= 0.000 +dx(3)= 4.000 dy(2)=-4.000 +dx(4)=-1.000 dy(4)= 4.000 +dx(5)=-1.000 dy(5)=-4.000 + +\end{verbatim} + \begin{chunk}{BLAS 1 drot} (defun drot (n dx incx dy incy c s) - (declare (type (double-float) s c) - (type (simple-array double-float (*)) dy dx) - (type fixnum incy incx n)) - (f2cl-lib:with-multi-array-data - ((dx double-float dx-%data% dx-%offset%) - (dy double-float dy-%data% dy-%offset%)) - (prog ((i 0) (ix 0) (iy 0) (dtemp 0.0)) - (declare (type (double-float) dtemp) (type fixnum iy ix i)) - (if (<= n 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 dtemp - (+ (* c (f2cl-lib:fref dx-%data% (ix) ((1 *)) dx-%offset%)) - (* s (f2cl-lib:fref dy-%data% (iy) ((1 *)) dy-%offset%)))) - (setf (f2cl-lib:fref dy-%data% (iy) ((1 *)) dy-%offset%) - (- (* c (f2cl-lib:fref dy-%data% (iy) ((1 *)) dy-%offset%)) - (* s (f2cl-lib:fref dx-%data% (ix) ((1 *)) dx-%offset%)))) - (setf (f2cl-lib:fref dx-%data% (ix) ((1 *)) dx-%offset%) dtemp) - (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 dtemp - (+ (* c (f2cl-lib:fref dx-%data% (i) ((1 *)) dx-%offset%)) - (* s (f2cl-lib:fref dy-%data% (i) ((1 *)) dy-%offset%)))) - (setf (f2cl-lib:fref dy-%data% (i) ((1 *)) dy-%offset%) - (- (* c (f2cl-lib:fref dy-%data% (i) ((1 *)) dy-%offset%)) - (* s (f2cl-lib:fref dx-%data% (i) ((1 *)) dx-%offset%)))) - (setf (f2cl-lib:fref dx-%data% (i) ((1 *)) dx-%offset%) dtemp))) - end_label - (return (values nil nil nil nil nil nil nil))))) + (declare (type (double-float) c s) + (type (simple-array double-float (*)) dx dy) + (type fixnum incy incx n)) + (let ((dtemp 0.0d0) (ix 0) (iy 0)) + (declare (type (double-float) dtemp) (type fixnum iy ix)) + (when (> n 0) + (if (< incx 0) + (setf ix (the fixnum (* (the fixnum (1+ (the fixnum (- n)))) incx)))) + (if (< incy 0) + (setf iy (the fixnum (* (the fixnum (1+ (the fixnum (- n)))) incy)))) + (dotimes (i n) + (setf dtemp (the double-float + (+ (the double-float (* c (the double-float (svref dx ix)))) + (the double-float (* s (the double-float (svref dy iy))))))) + (setf (the double-float (svref dy iy)) (the double-float + (- (* c (the double-float (svref dy iy))) + (* s (the double-float (svref dx ix)))))) + (setf (the double-float (svref dx ix)) (the double-float dtemp)) + (setf ix (the fixnum (+ ix incx))) + (setf iy (the fixnum (+ iy incy))))) + (list dx dy))) + +\end{chunk} + +\begin{chunk}{BLAS 1 drot lisp test} +(load "drot.lisp") +; rotate by 45, -45 +(setq dx (vector 6.0d0 1.0d0 4.0d0 -1.0d0 -1.0d0)) +; #(6.0 1.0 4.0 -1.0 -1.0) + +(setq dy (vector 5.0d0 1.0d0 -4.0d0 4.0d0 -4.0d0)) +; #(5.0 1.0 -4.0 4.0 -4.0) + +(drot 5 dx 1 dy 1 0.707106781d0 0.707106781d0) +; (#(7.778174591 1.414213562 0.0 2.1213203429999998 -3.5355339050000003) +; #(-0.70710678099999935 0.0 -5.6568542480000001 3.5355339050000003 +; -2.1213203429999998)) + +(drot 5 dx 1 dy 1 0.707106781d0 -0.707106781d0) +; (#(5.9999999968341831 0.99999999947236395 3.9999999978894558 +; -0.99999999947236451 -0.99999999947236451) +; #(4.9999999973618197 0.99999999947236395 -3.9999999978894558 +; 3.9999999978894563 -3.9999999978894563)) + +; rotate by 45, -45, only some members + +(setq dx (vector 6.0d0 1.0d0 4.0d0 -1.0d0 -1.0d0)) +; #(6.0 1.0 4.0 -1.0 -1.0) + +(setq dy (vector 5.0d0 1.0d0 -4.0d0 4.0d0 -4.0d0)) +; #(5.0 1.0 -4.0 4.0 -4.0) + +(drot 3 dx 2 dy 2 0.707106781d0 0.707106781d0) +; (#(7.778174591 1.0 0.0 -1.0 -3.5355339050000003) +; #(-0.70710678099999935 1.0 -5.6568542480000001 4.0 -2.1213203429999998)) + +(drot 3 dx 2 dy 2 0.707106781d0 -0.707106781d0) +; (#(5.9999999968341831 1.0 3.9999999978894558 -1.0 -0.99999999947236451) +; #(4.9999999973618197 1.0 -3.9999999978894558 4.0 -3.9999999978894563)) + +; rotate by 360 + +(setq dx (vector 6.0d0 1.0d0 4.0d0 -1.0d0 -1.0d0)) +; #(6.0 1.0 4.0 -1.0 -1.0) + +(setq dy (vector 5.0d0 1.0d0 -4.0d0 4.0d0 -4.0d0)) +; #(5.0 1.0 -4.0 4.0 -4.0) + +(drot 5 dx 1 dy 1 0.707106781d0 0.707106781d0) +; (#(7.778174591 1.414213562 0.0 2.1213203429999998 -3.5355339050000003) +; #(-0.70710678099999935 0.0 -5.6568542480000001 3.5355339050000003 +; -2.1213203429999998)) + +(drot 5 dx 1 dy 1 0.707106781d0 0.707106781d0) +; (#(4.9999999973618197 0.99999999947236395 -3.9999999978894558 +; 3.9999999978894563 -3.9999999978894563) +; #(-5.9999999968341831 -0.99999999947236395 -3.9999999978894558 +; 0.99999999947236451 0.99999999947236451)) + +(drot 5 dx 1 dy 1 0.707106781d0 0.707106781d0) +; (#(-0.70710678062690446 0.0 -5.6568542450152401 3.5355339031345254 +; -2.1213203418807147) +; #(-7.778174586895954 -1.41421356125381 0.0 -2.1213203418807147 +; 3.5355339031345254)) + +(drot 5 dx 1 dy 1 0.707106781d0 0.707106781d0) +; (#(-5.9999999936683661 -0.99999999894472802 -3.9999999957789121 +; 0.99999999894472835 0.99999999894472835) +; #(-4.9999999947236393 -0.99999999894472802 3.9999999957789121 +; -3.9999999957789116 3.9999999957789116)) + +(drot 5 dx 1 dy 1 0.707106781d0 0.707106781d0) +; (#(-7.7781745827919089 -1.41421356050762 0.0 -2.1213203407614296 +; 3.5355339012690505) +; #(0.70710678025380957 0.0 5.6568542420304802 -3.5355339012690505 +; 2.1213203407614296)) + +(drot 5 dx 1 dy 1 0.707106781d0 0.707106781d0) +; (#(-4.999999992085459 -0.99999999841709197 3.9999999936683679 +; -3.9999999936683679 3.9999999936683679) +; #(5.999999990502551 0.99999999841709197 3.9999999936683679 +; -0.99999999841709286 -0.99999999841709286)) + +(drot 5 dx 1 dy 1 0.707106781d0 0.707106781d0) +; (#(0.70710677988071557 0.0 5.6568542390457202 -3.5355338994035757 +; 2.1213203396421445) +; #(7.7781745786878638 1.41421355976143 0.0 2.1213203396421445 +; -3.5355338994035757)) + +(drot 5 dx 1 dy 1 0.707106781d0 0.707106781d0) +; (#(5.9999999873367349 0.99999999788945593 3.9999999915578237 +; -0.9999999978894567 -0.9999999978894567) +; #(4.9999999894472777 0.99999999788945593 -3.9999999915578237 +; 3.9999999915578237 -3.9999999915578237)) + +; rotate by 45, -45 from end + +(setq dx (vector 6.0d0 1.0d0 4.0d0 -1.0d0 -1.0d0)) +; #(6.0 1.0 4.0 -1.0 -1.0) + +(setq dy (vector 5.0d0 1.0d0 -4.0d0 4.0d0 -4.0d0)) +; #(5.0 1.0 -4.0 4.0 -4.0) + +(drot 2 dx -1 dy -1 0.707106781d0 0.707106781d0) +; (#(7.778174591 1.414213562 4.0 -1.0 -1.0) +; #(-0.70710678099999935 0.0 -4.0 4.0 -4.0)) \end{chunk} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -137372,12 +138369,12 @@ Warning: Types of argument 1 in call to ZLARFB do not match. \getchunk{BLAS 1 ddot} \getchunk{BLAS 1 dnrm2} \getchunk{BLAS 1 drotg} +\getchunk{BLAS 1 drot} \end{chunk} \begin{chunk}{untested} \getchunk{BLAS lsame} \getchunk{BLAS xerbla} -\getchunk{BLAS 1 drot} \getchunk{BLAS 1 dscal} \getchunk{BLAS 1 dswap} \getchunk{BLAS 1 dzasum} diff --git a/changelog b/changelog index abf94b4..03dfa26 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20120505 tpd src/axiom-website/patches.html 20120505.01.tpd.patch +20100505 tpd books/bookvol10.5 BLAS1 drot 20120503 tpd src/axiom-website/patches.html 20120503.01.tpd.patch 20120503 tpd books/bookvolbib.bib BLAS1 drotg references 20120503 tpd books/bookvolbib BLAS1 drotg references diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 8dd1425..bd79643 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3902,5 +3902,7 @@ books/bookvol5 reset si::*system-directory* to the null string
books/bookvol10.3 change HASHEQ to SXHASH
20120503.01.tpd.patch books/bookvol10.5 BLAS1 drotg
+20120505.01.tpd.patch +books/bookvol10.5 BLAS1 drot