1*DECK CHECK2 2 SUBROUTINE CHECK2 (SFAC, SDFAC, DFAC, DQFAC, KPRINT) 3C***BEGIN PROLOGUE CHECK2 4C***PURPOSE (UNKNOWN) 5C***LIBRARY SLATEC 6C***AUTHOR Lawson, C. L., (JPL) 7C***DESCRIPTION 8C 9C THIS SUBPROGRAM TESTS THE BASIC LINEAR ALGEBRA SUBPROGRAMS 1-11, 10C 14-15, AND 18-25. SUBPROGRAMS IN THIS SET EACH REQUIRE TWO ARRAYS 11C IN THE PARAMETER LIST. 12C 13C C. L. LAWSON, JPL, 1975 FEB 26, APR 29, MAY 8, MAY 28 14C 15C***ROUTINES CALLED CAXPY, CCOPY, CDOTC, CDOTU, CSWAP, DAXPY, DCOPY, 16C DDOT, DQDOTA, DQDOTI, DROT, DROTM, DSDOT, DSWAP, 17C DTEST, SAXPY, SCOPY, SDOT, SDSDOT, SROT, SROTM, 18C SSWAP, STEST 19C***COMMON BLOCKS COMBLA 20C***REVISION HISTORY (YYMMDD) 21C 750226 DATE WRITTEN 22C 890911 Removed unnecessary intrinsics. (WRB) 23C 890911 REVISION DATE from Version 3.2 24C 891214 Prologue converted to Version 4.0 format. (BAB) 25C***END PROLOGUE CHECK2 26 COMMON /COMBLA/ NPRINT, ICASE, N, INCX, INCY, MODE, PASS 27C 28 LOGICAL PASS 29 INTEGER INCXS(4),INCYS(4),LENS(4,2),NS(4) 30 REAL SX(7),SY(7),STX(7),STY(7),SSIZE1(4),SSIZE2(14,2) 31 REAL SSIZE(7),QC(30),SPARAM(5),ST7B(4,4),SSIZE3(4) 32 DOUBLE PRECISION DX(7),DA,DX1(7),DY1(7),DY(7),DT7(4,4),DT8(7,4,4) 33 DOUBLE PRECISION DX2(7), DY2(7), DT2(4,4,2), DPARAM(5), DPAR(5,4) 34 DOUBLE PRECISION DSDOT,DDOT,DQDOTI,DQDOTA,DFAC,DQFAC 35 DOUBLE PRECISION DT10X(7,4,4),DT10Y(7,4,4),DB 36 DOUBLE PRECISION DSIZE1(4),DSIZE2(7,2),DSIZE(7) 37 DOUBLE PRECISION DC,DS,DT9X(7,4,4),DT9Y(7,4,4),DTX(7),DTY(7) 38 DOUBLE PRECISION DT19X(7,4,16),DT19XA(7,4,4),DT19XB(7,4,4) 39 DOUBLE PRECISION DT19XC(7,4,4),DT19XD(7,4,4),DT19Y(7,4,16) 40 DOUBLE PRECISION DT19YA(7,4,4),DT19YB(7,4,4),DT19YC(7,4,4) 41 DOUBLE PRECISION DT19YD(7,4,4) 42C 43 EQUIVALENCE (DT19X(1,1,1),DT19XA(1,1,1)),(DT19X(1,1,5), 44 A DT19XB(1,1,1)),(DT19X(1,1,9),DT19XC(1,1,1)), 45 B (DT19X(1,1,13),DT19XD(1,1,1)) 46 EQUIVALENCE (DT19Y(1,1,1),DT19YA(1,1,1)),(DT19Y(1,1,5), 47 A DT19YB(1,1,1)),(DT19Y(1,1,9),DT19YC(1,1,1)), 48 B (DT19Y(1,1,13),DT19YD(1,1,1)) 49 COMPLEX CX(7),CA,CX1(7),CY1(7),CY(7),CT6(4,4),CT7(4,4) 50 COMPLEX CT8(7,4,4),CSIZE1(4),CSIZE2(7,2) 51 COMPLEX CT10X(7,4,4), CT10Y(7,4,4) 52 COMPLEX CDOTC,CDOTU 53 DATA SA,DA,CA,DB,SB/.3,.3D0,(.4,-.7),.25D0,.1/ 54 DATA INCXS/ 1, 2, -2, -1 / 55 DATA INCYS/ 1, -2, 1, -2 / 56 DATA LENS/1, 1, 2, 4, 1, 1, 3, 7/ 57 DATA NS / 0, 1, 2, 4 / 58 DATA SC,SS,DC,DS/ .8,.6,.8D0,.6D0/ 59 DATA DX1/ .6D0, .1D0,-.5D0, .8D0, .9D0,-.3D0,-.4D0/ 60 DATA DY1/ .5D0,-.9D0, .3D0, .7D0,-.6D0, .2D0, .8D0/ 61 DATA DX2/ 1.D0,.01D0, .02D0,1.D0,.06D0, 2.D0, 1.D0/ 62 DATA DY2/ 1.D0,.04D0,-.03D0,-1.D0,.05D0,3.D0,-1.D0/ 63C THE TERMS D11(3,2) AND D11(4,2) WILL BE SET BY 64C COMPUTATION AT RUN TIME. 65 DATA CX1/(.7,-.8),(-.4,-.7),(-.1,-.9),(.2,-.8),(-.9,-.4),(.1,.4), 66 * (-.6,.6)/ 67 DATA CY1/(.6,-.6),(-.9,.5),(.7,-.6),(.1,-.5),(-.1,-.2),(-.5,-.3), 68 * (.8,-.7) / 69C 70C FOR DQDOTI AND DQDOTA 71C 72 DATA DT2/0.25D0,1.25D0,1.2504D0,0.2498D0, 73 A 0.25D0,1.25D0,0.24D0,0.2492D0, 74 B 0.25D0,1.25D0,0.31D0,0.2518D0, 75 C 0.25D0,1.25D0,1.2497D0,0.2507D0, 76 D 0.D0,2.D0,2.0008D0,-.0004D0, 77 E 0.D0,2.D0,-.02D0,-.0016D0, 78 F 0.D0,2.D0,.12D0,.0036D0, 79 G 0.D0,2.D0,1.9994D0,.0014D0/ 80 DATA DT7/ 0.D0,.30D0,.21D0,.62D0, 0.D0,.30D0,-.07D0,.85D0, 81 * 0.D0,.30D0,-.79D0,-.74D0, 0.D0,.30D0,.33D0,1.27D0/ 82 DATA ST7B/ .1, .4, .31, .72, .1, .4, .03, .95, 83 * .1, .4, -.69, -.64, .1, .4, .43, 1.37/ 84C 85C FOR CDOTU 86C 87 DATA CT7/(0.,0.),(-.06,-.90),(.65,-.47),(-.34,-1.22), 88 1 (0.,0.),(-.06,-.90),(-.59,-1.46),(-1.04,-.04), 89 2 (0.,0.),(-.06,-.90),(-.83,.59), ( .07,-.37), 90 3 (0.,0.),(-.06,-.90),(-.76,-1.15),(-1.33,-1.82)/ 91C 92C FOR CDOTC 93C 94 DATA CT6/(0.,0.),(.90,0.06), (.91,-.77), (1.80,-.10), 95 A (0.,0.),(.90,0.06), (1.45,.74), (.20,.90), 96 B (0.,0.),(.90,0.06), (-.55,.23), (.83,-.39), 97 C (0.,0.),(.90,0.06), (1.04,0.79), (1.95,1.22)/ 98C 99 DATA DT8/.5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 100 1 .68D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 101 2 .68D0,-.87D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 102 3 .68D0,-.87D0,.15D0,.94D0, 0.D0,0.D0,0.D0, 103 4 .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 104 5 .68D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 105 6 .35D0,-.9D0,.48D0, 0.D0,0.D0,0.D0,0.D0, 106 7 .38D0,-.9D0,.57D0,.7D0,-.75D0,.2D0,.98D0, 107 8 .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 108 9 .68D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 109 A .35D0,-.72D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 110 B .38D0,-.63D0,.15D0,.88D0, 0.D0,0.D0,0.D0, 111 C .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 112 D .68D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 113 E .68D0,-.9D0,.33D0, 0.D0,0.D0,0.D0,0.D0, 114 F .68D0,-.9D0,.33D0,.7D0,-.75D0,.2D0,1.04D0/ 115C 116 DATA CT8/ 117 A(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 118 B(.32,-1.41),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 119 C(.32,-1.41),(-1.55,.5),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 120 D(.32,-1.41),(-1.55,.5),(.03,-.89),(-.38,-.96),(0.,0.),(0.,0.), 121 E (0.,0.), 122 F(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 123 G(.32,-1.41),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 124 H(-.07,-.89),(-.9,.5),(.42,-1.41),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 125 I(.78,.06),(-.9,.5),(.06,-.13),(.1,-.5),(-.77,-.49),(-.5,-.3), 126 J (.52,-1.51), 127 K(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 128 L(.32,-1.41),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 129 M(-.07,-.89),(-1.18,-.31),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 130 N(.78,.06),(-1.54,.97),(.03,-.89),(-.18,-1.31),(0.,0.),(0.,0.), 131 O(0.,0.),(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 132 P(.32,-1.41),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 133 Q(.32,-1.41),(-.9,.5),(.05,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 134 R(.32,-1.41),(-.9,.5),(.05,-.6),(.1,-.5),(-.77,-.49),(-.5,-.3), 135 S (.32,-1.16) / 136C 137C 138C TRUE X VALUES AFTER ROTATION USING SROT OR DROT. 139 DATA DT9X/.6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 140 A .78D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 141 B .78D0,-.46D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 142 C .78D0,-.46D0,-.22D0,1.06D0, 0.D0,0.D0,0.D0, 143 D .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 144 E .78D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 145 F .66D0,.1D0,-.1D0, 0.D0,0.D0,0.D0,0.D0, 146 G .96D0,.1D0,-.76D0,.8D0,.90D0,-.3D0,-.02D0, 147 H .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 148 I .78D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 149 J -.06D0,.1D0,-.1D0, 0.D0,0.D0,0.D0,0.D0, 150 K .90D0,.1D0,-.22D0,.8D0,.18D0,-.3D0,-.02D0, 151 L .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 152 M .78D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 153 N .78D0,.26D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 154 O .78D0,.26D0,-.76D0,1.12D0, 0.D0,0.D0,0.D0/ 155C 156C TRUE Y VALUES AFTER ROTATION USING SROT OR DROT. 157C 158 DATA DT9Y/ .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 159 A .04D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 160 B .04D0,-.78D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 161 C .04D0,-.78D0, .54D0, .08D0, 0.D0,0.D0,0.D0, 162 D .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 163 E .04D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 164 F .7D0,-.9D0,-.12D0, 0.D0,0.D0,0.D0,0.D0, 165 G .64D0,-.9D0,-.30D0, .7D0,-.18D0, .2D0, .28D0, 166 H .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 167 I .04D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 168 J .7D0,-1.08D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 169 K .64D0,-1.26D0,.54D0, .20D0, 0.D0,0.D0,0.D0, 170 L .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 171 M .04D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 172 N .04D0,-.9D0, .18D0, 0.D0,0.D0,0.D0,0.D0, 173 O .04D0,-.9D0, .18D0, .7D0,-.18D0, .2D0, .16D0/ 174C 175 DATA DT10X/.6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 176 A .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 177 B .5D0,-.9D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 178 C .5D0,-.9D0,.3D0,.7D0, 0.D0,0.D0,0.D0, 179 D .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 180 E .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 181 F .3D0,.1D0 ,.5D0, 0.D0,0.D0,0.D0,0.D0, 182 G .8D0,.1D0 ,-.6D0,.8D0 ,.3D0,-.3D0,.5D0, 183 H .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 184 I .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 185 J -.9D0,.1D0,.5D0, 0.D0,0.D0,0.D0,0.D0, 186 K .7D0, .1D0,.3D0, .8D0,-.9D0,-.3D0,.5D0, 187 L .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 188 M .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 189 N .5D0,.3D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 190 O .5D0,.3D0,-.6D0,.8D0, 0.D0,0.D0,0.D0/ 191C 192 DATA DT10Y/.5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 193 A .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 194 B .6D0,.1D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 195 C .6D0,.1D0,-.5D0,.8D0, 0.D0,0.D0,0.D0, 196 D .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 197 E .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 198 F -.5D0,-.9D0,.6D0, 0.D0,0.D0,0.D0,0.D0, 199 G -.4D0,-.9D0,.9D0, .7D0,-.5D0, .2D0,.6D0, 200 H .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 201 I .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 202 J -.5D0,.6D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 203 K -.4D0,.9D0,-.5D0,.6D0, 0.D0,0.D0,0.D0, 204 L .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 205 M .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 206 N .6D0,-.9D0,.1D0, 0.D0,0.D0,0.D0,0.D0, 207 O .6D0,-.9D0,.1D0, .7D0,-.5D0, .2D0, .8D0/ 208C 209 DATA CT10X/ 210 A(.7,-.8),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 211 B(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 212 C(.6,-.6),(-.9,.5),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 213 D(.6,-.6),(-.9,.5),(.7,-.6),(.1,-.5),(0.,0.),(0.,0.),(0.,0.), 214 E(.7,-.8),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 215 F(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 216 G(.7,-.6),(-.4,-.7),(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 217 H(.8,-.7),(-.4,-.7),(-.1,-.2),(.2,-.8),(.7,-.6),(.1,.4),(.6,-.6), 218 I(.7,-.8),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 219 J(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 220 K(-.9,.5),(-.4,-.7),(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 221 L(.1,-.5),(-.4,-.7),(.7,-.6),(.2,-.8),(-.9,.5),(.1,.4),(.6,-.6), 222 M(.7,-.8),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 223 N(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 224 O(.6,-.6),(.7,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 225 P(.6,-.6),(.7,-.6),(-.1,-.2),(.8,-.7),(0.,0.),(0.,0.),(0.,0.) / 226C 227 DATA CT10Y/ 228 A(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 229 B(.7,-.8),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 230 C(.7,-.8),(-.4,-.7),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 231 D(.7,-.8),(-.4,-.7),(-.1,-.9),(.2,-.8),(0.,0.),(0.,0.),(0.,0.), 232 E(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 233 F(.7,-.8),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 234 G(-.1,-.9),(-.9,.5),(.7,-.8),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 235 H(-.6,.6),(-.9,.5),(-.9,-.4),(.1,-.5),(-.1,-.9),(-.5,-.3),(.7,-.8), 236 I(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 237 J(.7,-.8),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 238 K(-.1,-.9),(.7,-.8),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 239 L(-.6,.6),(-.9,-.4),(-.1,-.9),(.7,-.8),(0.,0.),(0.,0.),(0.,0.), 240 M(.6,-.6),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 241 N(.7,-.8),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 242 O(.7,-.8),(-.9,.5),(-.4,-.7),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 243 P(.7,-.8),(-.9,.5),(-.4,-.7),(.1,-.5),(-.1,-.9),(-.5,-.3),(.2,-.8)/ 244C TRUE X RESULTS F0R ROTATIONS SROTM AND DROTM 245 DATA DT19XA/.6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 246 A .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 247 B .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 248 C .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 249 D .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 250 E -.8D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 251 F -.9D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 252 G 3.5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 253 H .6D0, .1D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 254 I -.8D0, 3.8D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 255 J -.9D0, 2.8D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 256 K 3.5D0, -.4D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 257 L .6D0, .1D0, -.5D0, .8D0, 0.D0,0.D0,0.D0, 258 M -.8D0, 3.8D0, -2.2D0, -1.2D0, 0.D0,0.D0,0.D0, 259 N -.9D0, 2.8D0, -1.4D0, -1.3D0, 0.D0,0.D0,0.D0, 260 O 3.5D0, -.4D0, -2.2D0, 4.7D0, 0.D0,0.D0,0.D0/ 261C 262 DATA DT19XB/.6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 263 A .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 264 B .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 265 C .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 266 D .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 267 E -.8D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 268 F -.9D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 269 G 3.5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 270 H .6D0, .1D0, -.5D0, 0.D0,0.D0,0.D0,0.D0, 271 I 0.D0, .1D0, -3.0D0, 0.D0,0.D0,0.D0,0.D0, 272 J -.3D0, .1D0, -2.0D0, 0.D0,0.D0,0.D0,0.D0, 273 K 3.3D0, .1D0, -2.0D0, 0.D0,0.D0,0.D0,0.D0, 274 L .6D0, .1D0, -.5D0, .8D0, .9D0, -.3D0, -.4D0, 275 M -2.0D0, .1D0, 1.4D0, .8D0, .6D0, -.3D0, -2.8D0, 276 N -1.8D0, .1D0, 1.3D0, .8D0, 0.D0, -.3D0, -1.9D0, 277 O 3.8D0, .1D0, -3.1D0, .8D0, 4.8D0, -.3D0, -1.5D0 / 278C 279 DATA DT19XC/.6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 280 A .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 281 B .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 282 C .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 283 D .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 284 E -.8D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 285 F -.9D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 286 G 3.5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 287 H .6D0, .1D0, -.5D0, 0.D0,0.D0,0.D0,0.D0, 288 I 4.8D0, .1D0, -3.0D0, 0.D0,0.D0,0.D0,0.D0, 289 J 3.3D0, .1D0, -2.0D0, 0.D0,0.D0,0.D0,0.D0, 290 K 2.1D0, .1D0, -2.0D0, 0.D0,0.D0,0.D0,0.D0, 291 L .6D0, .1D0, -.5D0, .8D0, .9D0, -.3D0, -.4D0, 292 M -1.6D0, .1D0, -2.2D0, .8D0, 5.4D0, -.3D0, -2.8D0, 293 N -1.5D0, .1D0, -1.4D0, .8D0, 3.6D0, -.3D0, -1.9D0, 294 O 3.7D0, .1D0, -2.2D0, .8D0, 3.6D0, -.3D0, -1.5D0 / 295C 296 DATA DT19XD/.6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 297 A .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 298 B .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 299 C .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 300 D .6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 301 E -.8D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 302 F -.9D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 303 G 3.5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 304 H .6D0, .1D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 305 I -.8D0, -1.0D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 306 J -.9D0, -.8D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 307 K 3.5D0, .8D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 308 L .6D0, .1D0, -.5D0, .8D0, 0.D0,0.D0,0.D0, 309 M -.8D0, -1.0D0, 1.4D0, -1.6D0, 0.D0,0.D0,0.D0, 310 N -.9D0, -.8D0, 1.3D0, -1.6D0, 0.D0,0.D0,0.D0, 311 O 3.5D0, .8D0, -3.1D0, 4.8D0, 0.D0,0.D0,0.D0/ 312C TRUE Y RESULTS FOR ROTATIONS SROTM AND DROTM 313 DATA DT19YA/.5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 314 A .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 315 B .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 316 C .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 317 D .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 318 E .7D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 319 F 1.7D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 320 G -2.6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 321 H .5D0, -.9D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 322 I .7D0, -4.8D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 323 J 1.7D0, -.7D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 324 K -2.6D0, 3.5D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 325 L .5D0, -.9D0, .3D0, .7D0, 0.D0,0.D0,0.D0, 326 M .7D0, -4.8D0, 3.0D0, 1.1D0, 0.D0,0.D0,0.D0, 327 N 1.7D0, -.7D0, -.7D0, 2.3D0, 0.D0,0.D0,0.D0, 328 O -2.6D0, 3.5D0, -.7D0, -3.6D0, 0.D0,0.D0,0.D0/ 329C 330 DATA DT19YB/.5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 331 A .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 332 B .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 333 C .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 334 D .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 335 E .7D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 336 F 1.7D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 337 G -2.6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 338 H .5D0, -.9D0, .3D0, 0.D0,0.D0,0.D0,0.D0, 339 I 4.0D0, -.9D0, -.3D0, 0.D0,0.D0,0.D0,0.D0, 340 J -.5D0, -.9D0, 1.5D0, 0.D0,0.D0,0.D0,0.D0, 341 K -1.5D0, -.9D0, -1.8D0, 0.D0,0.D0,0.D0,0.D0, 342 L .5D0, -.9D0, .3D0, .7D0, -.6D0, .2D0, .8D0, 343 M 3.7D0, -.9D0, -1.2D0, .7D0, -1.5D0, .2D0, 2.2D0, 344 N -.3D0, -.9D0, 2.1D0, .7D0, -1.6D0, .2D0, 2.0D0, 345 O -1.6D0, -.9D0, -2.1D0, .7D0, 2.9D0, .2D0, -3.8D0 / 346C 347 DATA DT19YC/.5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 348 A .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 349 B .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 350 C .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 351 D .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 352 E .7D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 353 F 1.7D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 354 G -2.6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 355 H .5D0, -.9D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 356 I 4.0D0, -6.3D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 357 J -.5D0, .3D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 358 K -1.5D0, 3.0D0, 0.D0,0.D0,0.D0,0.D0,0.D0, 359 L .5D0, -.9D0, .3D0, .7D0, 0.D0,0.D0,0.D0, 360 M 3.7D0, -7.2D0, 3.0D0, 1.7D0, 0.D0,0.D0,0.D0, 361 N -.3D0, .9D0, -.7D0, 1.9D0, 0.D0,0.D0,0.D0, 362 O -1.6D0, 2.7D0, -.7D0, -3.4D0, 0.D0,0.D0,0.D0/ 363C 364 DATA DT19YD/.5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 365 A .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 366 B .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 367 C .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 368 D .5D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 369 E .7D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 370 F 1.7D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 371 G -2.6D0, 0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 372 H .5D0, -.9D0, .3D0, 0.D0,0.D0,0.D0,0.D0, 373 I .7D0, -.9D0, 1.2D0, 0.D0,0.D0,0.D0,0.D0, 374 J 1.7D0, -.9D0, .5D0, 0.D0,0.D0,0.D0,0.D0, 375 K -2.6D0, -.9D0, -1.3D0, 0.D0,0.D0,0.D0,0.D0, 376 L .5D0, -.9D0, .3D0, .7D0, -.6D0, .2D0, .8D0, 377 M .7D0, -.9D0, 1.2D0, .7D0, -1.5D0, .2D0, 1.6D0, 378 N 1.7D0, -.9D0, .5D0, .7D0, -1.6D0, .2D0, 2.4D0, 379 O -2.6D0, -.9D0, -1.3D0, .7D0, 2.9D0, .2D0, -4.0D0 / 380C 381 DATA SSIZE1/ 0. , .3 , 1.6 , 3.2 / 382 DATA DSIZE1/ 0.D0, .3D0, 1.6D0, 3.2D0 / 383 DATA SSIZE3/ .1, .4, 1.7, 3.3 / 384C 385C FOR CDOTC AND CDOTU 386C 387 DATA CSIZE1/ (0.,0.), (.9,.9), (1.63,1.73), (2.90,2.78) / 388 DATA SSIZE2/0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0., 389 A 1.17,1.17,1.17,1.17,1.17,1.17,1.17, 390 B 1.17,1.17,1.17,1.17,1.17,1.17,1.17/ 391 DATA DSIZE2/0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0, 392 A 1.17D0,1.17D0,1.17D0,1.17D0,1.17D0,1.17D0,1.17D0/ 393C 394C FOR CAXPY 395C 396 DATA CSIZE2/ 397 A (0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.),(0.,0.), 398 B (1.54,1.54),(1.54,1.54),(1.54,1.54),(1.54,1.54),(1.54,1.54), 399 C (1.54,1.54),(1.54,1.54) / 400C 401C FOR SROTM AND DROTM 402C 403 DATA DPAR/-2.D0, 0.D0,0.D0,0.D0,0.D0, 404 A -1.D0, 2.D0, -3.D0, -4.D0, 5.D0, 405 B 0.D0, 0.D0, 2.D0, -3.D0, 0.D0, 406 C 1.D0, 5.D0, 2.D0, 0.D0, -4.D0/ 407C***FIRST EXECUTABLE STATEMENT CHECK2 408 DO 520 KI = 1, 4 409 INCX = INCXS(KI) 410 INCY = INCYS(KI) 411 MX = ABS(INCX) 412 MY = ABS(INCY) 413C 414 DO 500 KN=1,4 415 N= NS(KN) 416 KSIZE=MIN(2,KN) 417 LENX = LENS(KN,MX) 418 LENY = LENS(KN,MY) 419C INITIALIZE ALL ARGUMENT ARRAYS. 420 DO 5 I = 1, 7 421 SX(I) = DX1(I) 422 SY(I) = DY1(I) 423 DX(I) = DX1(I) 424 DY(I) = DY1(I) 425 CX(I) = CX1(I) 426 5 CY(I) = CY1(I) 427C 428C BRANCH TO SELECT SUBPROGRAM TO BE TESTED. 429C 430 GO TO ( 10, 20, 30, 40, 50, 60, 70, 80, 90,100, 431 A 110,999,999,140,150,999,999,180,190,200, 432 B 210,220,230,240,250), ICASE 433C 1. SDOT 434 10 CALL STEST(1,SDOT(N,SX,INCX,SY,INCY),REAL(DT7(KN,KI)), 435 * SSIZE1(KN),SFAC,KPRINT) 436 GO TO 500 437C 2. DSDOT 438 20 CALL STEST(1,REAL(DSDOT(N,SX,INCX,SY,INCY)), 439 * REAL(DT7(KN,KI)),SSIZE1(KN),SFAC,KPRINT) 440 GO TO 500 441C 3. SDSDOT 442 30 CALL STEST(1,SDSDOT(N,SB,SX,INCX,SY,INCY), 443 * ST7B(KN,KI),SSIZE3(KN),SFAC,KPRINT) 444 GO TO 500 445C 4. DDOT 446 40 CALL DTEST(1,DDOT(N,DX,INCX,DY,INCY),DT7(KN,KI), 447 * DSIZE1(KN),DFAC,KPRINT) 448 GO TO 500 449C 5. DQDOTI 450 50 CONTINUE 451C DQDOTI AND DQDOTA ARE SUPPOSED TO USE EXTENDED 452C PRECISION ARITHMETIC INTERNALLY. 453C SET MODE = 1 OR 2 TO DISTINGUISH TESTS OF DQDOTI OR DQDOTA 454C IN THE DIAGNOSTIC OUTPUT. 455C 456 MODE = 1 457 CALL DTEST(1,DQDOTI(N,DB,QC,DX2,INCX,DY2,INCY), 458 * DT2(KN,KI,1),DT2(KN,KI,1),DQFAC,KPRINT) 459 GO TO 500 460C 6. DQDOTA 461 60 CONTINUE 462C TO TEST DQDOTA WE ACTUALLY TEST BOTH DQDOTI AND DQDOTA. 463C THE OUTPUT VALUE OF QX FROM DQDOTI WILL BE USED AS INPUT 464C TO DQDOTA. QX IS SUPPOSED TO BE IN A MACHINE-DEPENDENT 465C EXTENDED PRECISION FORM. 466C MODE IS SET TO 1 OR 2 TO DISTINGUISH TESTS OF 467C DQDOTI OR DQDOTA IN THE DIAGNOSTIC OUTPUT. 468C 469 MODE = 1 470 CALL DTEST(1,DQDOTI(N,DB,QC,DX2,INCX,DY2,INCY), 471 * DT2(KN,KI,1),DT2(KN,KI,1),DQFAC,KPRINT) 472 MODE = 2 473 CALL DTEST(1,DQDOTA(N,-DB,QC,DX2,INCX,DY2,INCY), 474 * DT2(KN,KI,2),DT2(KN,KI,2),DQFAC,KPRINT) 475 GO TO 500 476C 7. CDOTC 477 70 CALL STEST(2, CDOTC(N,CX,INCX,CY,INCY), 478 * CT6(KN,KI),CSIZE1(KN),SFAC,KPRINT) 479 GO TO 500 480C 8. CDOTU 481 80 CALL STEST(2,CDOTU(N,CX,INCX,CY,INCY), 482 * CT7(KN,KI),CSIZE1(KN),SFAC,KPRINT) 483 GO TO 500 484C 9. SAXPY 485 90 CALL SAXPY(N,SA,SX,INCX,SY,INCY) 486 DO 95 J = 1, LENY 487 95 STY(J) = DT8(J,KN,KI) 488 CALL STEST(LENY,SY,STY,SSIZE2(1,KSIZE),SFAC,KPRINT) 489 GO TO 500 490C 10. DAXPY 491 100 CALL DAXPY(N,DA,DX,INCX,DY,INCY) 492 CALL DTEST(LENY,DY,DT8(1,KN,KI),DSIZE2(1,KSIZE),DFAC,KPRINT) 493 GO TO 500 494C 11. CAXPY 495 110 CALL CAXPY(N,CA,CX,INCX,CY,INCY) 496 CALL STEST(2*LENY,CY,CT8(1,KN,KI),CSIZE2(1,KSIZE),SFAC,KPRINT) 497 GO TO 500 498C 14. SROT 499 140 CONTINUE 500 DO 144 I = 1, 7 501 SX(I) = DX1(I) 502 SY(I) = DY1(I) 503 STX(I) = DT9X(I,KN,KI) 504 STY(I) = DT9Y(I,KN,KI) 505 144 CONTINUE 506 CALL SROT (N,SX,INCX,SY,INCY,SC,SS) 507 CALL STEST(LENX,SX,STX,SSIZE2(1,KSIZE),SFAC,KPRINT) 508 CALL STEST(LENY,SY,STY,SSIZE2(1,KSIZE),SFAC,KPRINT) 509 GO TO 500 510C 15. DROT 511 150 CONTINUE 512 DO 154 I = 1, 7 513 DX(I) = DX1(I) 514 DY(I) = DY1(I) 515 154 CONTINUE 516 CALL DROT (N,DX,INCX,DY,INCY,DC,DS) 517 CALL DTEST(LENX,DX,DT9X(1,KN,KI),DSIZE2(1,KSIZE),DFAC,KPRINT) 518 CALL DTEST(LENY,DY,DT9Y(1,KN,KI),DSIZE2(1,KSIZE),DFAC,KPRINT) 519 GO TO 500 520C 18. SROTM 521 180 KNI = KN + 4*(KI-1) 522 DO 189 KPAR=1,4 523 DO 182 I = 1, 7 524 SX(I) = DX1(I) 525 SY(I) = DY1(I) 526 STX(I) = DT19X(I,KPAR,KNI) 527 182 STY(I) = DT19Y(I,KPAR,KNI) 528C 529 DO 186 I = 1, 5 530 186 SPARAM(I) = DPAR(I,KPAR) 531C SET MODE TO IDENTIFY DIAGNOSTIC OUTPUT, 532C IF ANY 533 MODE = INT(SPARAM(1)) 534C 535 DO 187 I = 1, LENX 536 187 SSIZE(I) = STX(I) 537C THE TRUE RESULTS DT19X(1,2,7) AND 538C DT19X(5,3,8) ARE ZERO DUE TO CANCELLATION. 539C DT19X(1,2,7) = 2.*.6 - 4.*.3 = 0 540C DT19X(5,3,8) = .9 - 3.*.3 = 0 541C FOR THESE CASES RESPECTIVELY SET SIZE( ) 542C EQUAL TO 2.4 AND 1.8 543 IF ((KPAR .EQ. 2) .AND. (KNI .EQ. 7)) 544 1 SSIZE(1) = 2.4E0 545 IF ((KPAR .EQ. 3) .AND. (KNI .EQ. 8)) 546 1 SSIZE(5) = 1.8E0 547C 548 CALL SROTM(N,SX,INCX,SY,INCY,SPARAM) 549 CALL STEST(LENX,SX,STX,SSIZE,SFAC,KPRINT) 550 CALL STEST(LENY,SY,STY,STY,SFAC,KPRINT) 551 189 CONTINUE 552 GO TO 500 553C 19. DROTM 554 190 KNI = KN + 4*(KI-1) 555 DO 199 KPAR=1,4 556 DO 192 I = 1, 7 557 DX(I) = DX1(I) 558 DY(I) = DY1(I) 559 DTX(I) = DT19X(I,KPAR,KNI) 560 192 DTY(I) = DT19Y(I,KPAR,KNI) 561C 562 DO 196 I = 1, 5 563 196 DPARAM(I) = DPAR(I,KPAR) 564C SET MODE TO IDENTIFY DIAGNOSTIC OUTPUT, 565C IF ANY 566 MODE = INT(DPARAM(1)) 567C 568 DO 197 I = 1, LENX 569 197 DSIZE(I) = DTX(I) 570C SEE REMARK ABOVE ABOUT DT11X(1,2,7) 571C AND DT11X(5,3,8). 572 IF ((KPAR .EQ. 2) .AND. (KNI .EQ. 7)) 573 1 DSIZE(1) = 2.4D0 574 IF ((KPAR .EQ. 3) .AND. (KNI .EQ. 8)) 575 1 DSIZE(5) = 1.8D0 576C 577 CALL DROTM(N,DX,INCX,DY,INCY,DPARAM) 578 CALL DTEST(LENX,DX,DTX,DSIZE,DFAC,KPRINT) 579 CALL DTEST(LENY,DY,DTY,DTY,DFAC,KPRINT) 580 199 CONTINUE 581 GO TO 500 582C 20. SCOPY 583 200 DO 205 I = 1, 7 584 205 STY(I) = DT10Y(I,KN,KI) 585 CALL SCOPY(N,SX,INCX,SY,INCY) 586 CALL STEST(LENY,SY,STY,SSIZE2(1,1),1.,KPRINT) 587 GO TO 500 588C 21. DCOPY 589 210 CALL DCOPY(N,DX,INCX,DY,INCY) 590 CALL DTEST(LENY,DY,DT10Y(1,KN,KI),DSIZE2(1,1),1.D0,KPRINT) 591 GO TO 500 592C 22. CCOPY 593 220 CALL CCOPY(N,CX,INCX,CY,INCY) 594 CALL STEST(2*LENY,CY,CT10Y(1,KN,KI),SSIZE2(1,1),1.,KPRINT) 595 GO TO 500 596C 23. SSWAP 597 230 CALL SSWAP(N,SX,INCX,SY,INCY) 598 DO 235 I = 1, 7 599 STX(I) = DT10X(I,KN,KI) 600 235 STY(I) = DT10Y(I,KN,KI) 601 CALL STEST(LENX,SX,STX,SSIZE2(1,1),1.,KPRINT) 602 CALL STEST(LENY,SY,STY,SSIZE2(1,1),1.,KPRINT) 603 GO TO 500 604C 24. DSWAP 605 240 CALL DSWAP(N,DX,INCX,DY,INCY) 606 CALL DTEST(LENX,DX,DT10X(1,KN,KI),DSIZE2(1,1),1.D0,KPRINT) 607 CALL DTEST(LENY,DY,DT10Y(1,KN,KI),DSIZE2(1,1),1.D0,KPRINT) 608 GO TO 500 609C 25. CSWAP 610 250 CALL CSWAP(N,CX,INCX,CY,INCY) 611 CALL STEST(2*LENX,CX,CT10X(1,KN,KI),SSIZE2(1,1),1.,KPRINT) 612 CALL STEST(2*LENY,CY,CT10Y(1,KN,KI),SSIZE2(1,1),1.,KPRINT) 613C 614C 615C 616 500 CONTINUE 617 520 CONTINUE 618 RETURN 619C THE FOLLOWING STOP SHOULD NEVER BE REACHED. 620 999 STOP 621 END 622