51 INTEGER ICASE, INCX, INCY, N
59 COMMON /combla/icase, n, incx, incy, pass
61 DATA sfac/9.765625d-4/
76 IF (icase.EQ.3 .OR. icase.EQ.11)
THEN
78 ELSE IF (icase.EQ.7 .OR. icase.EQ.8 .OR. icase.EQ.9 .OR.
81 ELSE IF (icase.EQ.1 .OR. icase.EQ.2 .OR. icase.EQ.5 .OR.
82 + icase.EQ.6 .OR. icase.EQ.12 .OR. icase.EQ.13)
THEN
84 ELSE IF (icase.EQ.4)
THEN
88 IF (pass)
WRITE (nout,99998)
92 99999
FORMAT (
' Real BLAS Test Program Results',/1x)
93 99998
FORMAT (
' ----- PASS -----')
100 INTEGER ICASE, INCX, INCY, N
105 COMMON /combla/icase, n, incx, incy, pass
121 WRITE (nout,99999) icase, l(icase)
124 99999
FORMAT (/
' Test of subprogram number',i3,12x,a6)
131 DOUBLE PRECISION SFAC
133 INTEGER ICASE, INCX, INCY, N
136 DOUBLE PRECISION SA, SB, SC, SS, D12
139 DOUBLE PRECISION DA1(8), DATRUE(8), DB1(8), DBTRUE(8), DC1(8),
140 $ ds1(8), dab(4,9), dtemp(9), dtrue(9,9)
144 COMMON /combla/icase, n, incx, incy, pass
146 DATA da1/0.3d0, 0.4d0, -0.3d0, -0.4d0, -0.3d0, 0.0d0,
148 DATA db1/0.4d0, 0.3d0, 0.4d0, 0.3d0, -0.4d0, 0.0d0,
150 DATA dc1/0.6d0, 0.8d0, -0.6d0, 0.8d0, 0.6d0, 1.0d0,
152 DATA ds1/0.8d0, 0.6d0, 0.8d0, -0.6d0, 0.8d0, 0.0d0,
154 DATA datrue/0.5d0, 0.5d0, 0.5d0, -0.5d0, -0.5d0,
155 + 0.0d0, 1.0d0, 1.0d0/
156 DATA dbtrue/0.0d0, 0.6d0, 0.0d0, -0.6d0, 0.0d0,
157 + 0.0d0, 1.0d0, 0.0d0/
159 DATA dab/ .1d0,.3d0,1.2d0,.2d0,
160 a .7d0, .2d0, .6d0, 4.2d0,
161 b 0.d0,0.d0,0.d0,0.d0,
162 c 4.d0, -1.d0, 2.d0, 4.d0,
163 d 6.d-10, 2.d-2, 1.d5, 10.d0,
164 e 4.d10, 2.d-2, 1.d-5, 10.d0,
165 f 2.d-10, 4.d-2, 1.d5, 10.d0,
166 g 2.d10, 4.d-2, 1.d-5, 10.d0,
167 h 4.d0, -2.d0, 8.d0, 4.d0 /
169 DATA dtrue/0.d0,0.d0, 1.3d0, .2d0, 0.d0,0.d0,0.d0, .5d0, 0.d0,
170 a 0.d0,0.d0, 4.5d0, 4.2d0, 1.d0, .5d0, 0.d0,0.d0,0.d0,
171 b 0.d0,0.d0,0.d0,0.d0, -2.d0, 0.d0,0.d0,0.d0,0.d0,
172 c 0.d0,0.d0,0.d0, 4.d0, -1.d0, 0.d0,0.d0,0.d0,0.d0,
173 d 0.d0, 15.d-3, 0.d0, 10.d0, -1.d0, 0.d0, -1.d-4,
175 f 0.d0,0.d0, 6144.d-5, 10.d0, -1.d0, 4096.d0, -1.d6,
177 h 0.d0,0.d0,15.d0,10.d0,-1.d0, 5.d-5, 0.d0,1.d0,0.d0,
178 i 0.d0,0.d0, 15.d0, 10.d0, -1. d0, 5.d5, -4096.d0,
180 k 0.d0,0.d0, 7.d0, 4.d0, 0.d0,0.d0, -.5d0, -.25d0, 0.d0/
183 dtrue(1,1) = 12.d0 / 130.d0
184 dtrue(2,1) = 36.d0 / 130.d0
185 dtrue(7,1) = -1.d0 / 6.d0
186 dtrue(1,2) = 14.d0 / 75.d0
187 dtrue(2,2) = 49.d0 / 75.d0
188 dtrue(9,2) = 1.d0 / 7.d0
189 dtrue(1,5) = 45.d-11 * (d12 * d12)
190 dtrue(3,5) = 4.d5 / (3.d0 * d12)
191 dtrue(6,5) = 1.d0 / d12
192 dtrue(8,5) = 1.d4 / (3.d0 * d12)
193 dtrue(1,6) = 4.d10 / (1.5d0 * d12 * d12)
194 dtrue(2,6) = 2.d-2 / 1.5d0
195 dtrue(8,6) = 5.d-7 * d12
196 dtrue(1,7) = 4.d0 / 150.d0
197 dtrue(2,7) = (2.d-10 / 1.5d0) * (d12 * d12)
198 dtrue(7,7) = -dtrue(6,5)
199 dtrue(9,7) = 1.d4 / d12
200 dtrue(1,8) = dtrue(1,7)
201 dtrue(2,8) = 2.d10 / (1.5d0 * d12 * d12)
202 dtrue(1,9) = 32.d0 / 7.d0
203 dtrue(2,9) = -16.d0 / 7.d0
209 dbtrue(1) = 1.0d0/0.6d0
210 dbtrue(3) = -1.0d0/0.6d0
211 dbtrue(5) = 1.0d0/0.6d0
221 CALL drotg(sa,sb,sc,ss)
222 CALL stest1(sa,datrue(k),datrue(k),sfac)
223 CALL stest1(sb,dbtrue(k),dbtrue(k),sfac)
224 CALL stest1(sc,dc1(k),dc1(k),sfac)
225 CALL stest1(ss,ds1(k),ds1(k),sfac)
226 ELSEIF (icase.EQ.11)
THEN
233 CALL drotmg(dtemp(1),dtemp(2),dtemp(3),dtemp(4),dtemp(5))
234 CALL stest(9,dtemp,dtrue(1,k),dtrue(1,k),sfac)
236 WRITE (nout,*)
' Shouldn''t be here in CHECK0'
247 DOUBLE PRECISION SFAC
249 INTEGER ICASE, INCX, INCY, N
254 DOUBLE PRECISION DTRUE1(5), DTRUE3(5), DTRUE5(8,5,2), DV(8,5,2),
255 + sa(10), stemp(1), strue(8), sx(8)
258 DOUBLE PRECISION DASUM, DNRM2
260 EXTERNAL dasum, dnrm2, idamax
266 COMMON /combla/icase, n, incx, incy, pass
268 DATA sa/0.3d0, -1.0d0, 0.0d0, 1.0d0, 0.3d0, 0.3d0,
269 + 0.3d0, 0.3d0, 0.3d0, 0.3d0/
270 DATA dv/0.1d0, 2.0d0, 2.0d0, 2.0d0, 2.0d0, 2.0d0,
271 + 2.0d0, 2.0d0, 0.3d0, 3.0d0, 3.0d0, 3.0d0, 3.0d0,
272 + 3.0d0, 3.0d0, 3.0d0, 0.3d0, -0.4d0, 4.0d0,
273 + 4.0d0, 4.0d0, 4.0d0, 4.0d0, 4.0d0, 0.2d0,
274 + -0.6d0, 0.3d0, 5.0d0, 5.0d0, 5.0d0, 5.0d0,
275 + 5.0d0, 0.1d0, -0.3d0, 0.5d0, -0.1d0, 6.0d0,
276 + 6.0d0, 6.0d0, 6.0d0, 0.1d0, 8.0d0, 8.0d0, 8.0d0,
277 + 8.0d0, 8.0d0, 8.0d0, 8.0d0, 0.3d0, 9.0d0, 9.0d0,
278 + 9.0d0, 9.0d0, 9.0d0, 9.0d0, 9.0d0, 0.3d0, 2.0d0,
279 + -0.4d0, 2.0d0, 2.0d0, 2.0d0, 2.0d0, 2.0d0,
280 + 0.2d0, 3.0d0, -0.6d0, 5.0d0, 0.3d0, 2.0d0,
281 + 2.0d0, 2.0d0, 0.1d0, 4.0d0, -0.3d0, 6.0d0,
282 + -0.5d0, 7.0d0, -0.1d0, 3.0d0/
283 DATA dtrue1/0.0d0, 0.3d0, 0.5d0, 0.7d0, 0.6d0/
284 DATA dtrue3/0.0d0, 0.3d0, 0.7d0, 1.1d0, 1.0d0/
285 DATA dtrue5/0.10d0, 2.0d0, 2.0d0, 2.0d0, 2.0d0,
286 + 2.0d0, 2.0d0, 2.0d0, -0.3d0, 3.0d0, 3.0d0,
287 + 3.0d0, 3.0d0, 3.0d0, 3.0d0, 3.0d0, 0.0d0, 0.0d0,
288 + 4.0d0, 4.0d0, 4.0d0, 4.0d0, 4.0d0, 4.0d0,
289 + 0.20d0, -0.60d0, 0.30d0, 5.0d0, 5.0d0, 5.0d0,
290 + 5.0d0, 5.0d0, 0.03d0, -0.09d0, 0.15d0, -0.03d0,
291 + 6.0d0, 6.0d0, 6.0d0, 6.0d0, 0.10d0, 8.0d0,
292 + 8.0d0, 8.0d0, 8.0d0, 8.0d0, 8.0d0, 8.0d0,
293 + 0.09d0, 9.0d0, 9.0d0, 9.0d0, 9.0d0, 9.0d0,
294 + 9.0d0, 9.0d0, 0.09d0, 2.0d0, -0.12d0, 2.0d0,
295 + 2.0d0, 2.0d0, 2.0d0, 2.0d0, 0.06d0, 3.0d0,
296 + -0.18d0, 5.0d0, 0.09d0, 2.0d0, 2.0d0, 2.0d0,
297 + 0.03d0, 4.0d0, -0.09d0, 6.0d0, -0.15d0, 7.0d0,
299 DATA itrue2/0, 1, 2, 2, 3/
307 sx(i) = dv(i,np1,incx)
312 stemp(1) = dtrue1(np1)
313 CALL stest1(dnrm2(n,sx,incx),stemp(1),stemp,sfac)
314 ELSE IF (icase.EQ.8)
THEN
316 stemp(1) = dtrue3(np1)
317 CALL stest1(dasum(n,sx,incx),stemp(1),stemp,sfac)
318 ELSE IF (icase.EQ.9)
THEN
320 CALL dscal(n,sa((incx-1)*5+np1),sx,incx)
322 strue(i) = dtrue5(i,np1,incx)
324 CALL stest(len,sx,strue,strue,sfac)
325 ELSE IF (icase.EQ.10)
THEN
327 CALL itest1(idamax(n,sx,incx),itrue2(np1))
329 WRITE (nout,*)
' Shouldn''t be here in CHECK1'
341 DOUBLE PRECISION SFAC
343 INTEGER ICASE, INCX, INCY, N
347 INTEGER I, J, KI, KN, KNI, KPAR, KSIZE, LENX, LENY,
350 DOUBLE PRECISION DT10X(7,4,4), DT10Y(7,4,4), DT7(4,4),
351 $ dt8(7,4,4), dx1(7),
352 $ dy1(7), ssize1(4), ssize2(14,2), ssize(7),
353 $ stx(7), sty(7), sx(7), sy(7),
354 $ dpar(5,4), dt19x(7,4,16),dt19xa(7,4,4),
355 $ dt19xb(7,4,4), dt19xc(7,4,4),dt19xd(7,4,4),
356 $ dt19y(7,4,16), dt19ya(7,4,4),dt19yb(7,4,4),
357 $ dt19yc(7,4,4), dt19yd(7,4,4), dtemp(5)
358 INTEGER INCXS(4), INCYS(4), LENS(4,2), NS(4)
360 DOUBLE PRECISION DDOT, DSDOT
367 COMMON /combla/icase, n, incx, incy, pass
369 equivalence(dt19x(1,1,1),dt19xa(1,1,1)),(dt19x(1,1,5),
370 a dt19xb(1,1,1)),(dt19x(1,1,9),dt19xc(1,1,1)),
371 b (dt19x(1,1,13),dt19xd(1,1,1))
372 equivalence(dt19y(1,1,1),dt19ya(1,1,1)),(dt19y(1,1,5),
373 a dt19yb(1,1,1)),(dt19y(1,1,9),dt19yc(1,1,1)),
374 b (dt19y(1,1,13),dt19yd(1,1,1))
377 DATA incxs/1, 2, -2, -1/
378 DATA incys/1, -2, 1, -2/
379 DATA lens/1, 1, 2, 4, 1, 1, 3, 7/
381 DATA dx1/0.6d0, 0.1d0, -0.5d0, 0.8d0, 0.9d0, -0.3d0,
383 DATA dy1/0.5d0, -0.9d0, 0.3d0, 0.7d0, -0.6d0, 0.2d0,
385 DATA dt7/0.0d0, 0.30d0, 0.21d0, 0.62d0, 0.0d0,
386 + 0.30d0, -0.07d0, 0.85d0, 0.0d0, 0.30d0, -0.79d0,
387 + -0.74d0, 0.0d0, 0.30d0, 0.33d0, 1.27d0/
388 DATA dt8/0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
389 + 0.0d0, 0.68d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
390 + 0.0d0, 0.0d0, 0.68d0, -0.87d0, 0.0d0, 0.0d0,
391 + 0.0d0, 0.0d0, 0.0d0, 0.68d0, -0.87d0, 0.15d0,
392 + 0.94d0, 0.0d0, 0.0d0, 0.0d0, 0.5d0, 0.0d0,
393 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.68d0,
394 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
395 + 0.35d0, -0.9d0, 0.48d0, 0.0d0, 0.0d0, 0.0d0,
396 + 0.0d0, 0.38d0, -0.9d0, 0.57d0, 0.7d0, -0.75d0,
397 + 0.2d0, 0.98d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0,
398 + 0.0d0, 0.0d0, 0.0d0, 0.68d0, 0.0d0, 0.0d0,
399 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.35d0, -0.72d0,
400 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.38d0,
401 + -0.63d0, 0.15d0, 0.88d0, 0.0d0, 0.0d0, 0.0d0,
402 + 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
403 + 0.68d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
404 + 0.0d0, 0.68d0, -0.9d0, 0.33d0, 0.0d0, 0.0d0,
405 + 0.0d0, 0.0d0, 0.68d0, -0.9d0, 0.33d0, 0.7d0,
406 + -0.75d0, 0.2d0, 1.04d0/
407 DATA dt10x/0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
408 + 0.0d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
409 + 0.0d0, 0.5d0, -0.9d0, 0.0d0, 0.0d0, 0.0d0,
410 + 0.0d0, 0.0d0, 0.5d0, -0.9d0, 0.3d0, 0.7d0,
411 + 0.0d0, 0.0d0, 0.0d0, 0.6d0, 0.0d0, 0.0d0, 0.0d0,
412 + 0.0d0, 0.0d0, 0.0d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0,
413 + 0.0d0, 0.0d0, 0.0d0, 0.3d0, 0.1d0, 0.5d0, 0.0d0,
414 + 0.0d0, 0.0d0, 0.0d0, 0.8d0, 0.1d0, -0.6d0,
415 + 0.8d0, 0.3d0, -0.3d0, 0.5d0, 0.6d0, 0.0d0,
416 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.5d0, 0.0d0,
417 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, -0.9d0,
418 + 0.1d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.7d0,
419 + 0.1d0, 0.3d0, 0.8d0, -0.9d0, -0.3d0, 0.5d0,
420 + 0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
421 + 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
422 + 0.5d0, 0.3d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
423 + 0.5d0, 0.3d0, -0.6d0, 0.8d0, 0.0d0, 0.0d0,
425 DATA dt10y/0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
426 + 0.0d0, 0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
427 + 0.0d0, 0.6d0, 0.1d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
428 + 0.0d0, 0.6d0, 0.1d0, -0.5d0, 0.8d0, 0.0d0,
429 + 0.0d0, 0.0d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
430 + 0.0d0, 0.0d0, 0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
431 + 0.0d0, 0.0d0, -0.5d0, -0.9d0, 0.6d0, 0.0d0,
432 + 0.0d0, 0.0d0, 0.0d0, -0.4d0, -0.9d0, 0.9d0,
433 + 0.7d0, -0.5d0, 0.2d0, 0.6d0, 0.5d0, 0.0d0,
434 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.6d0, 0.0d0,
435 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, -0.5d0,
436 + 0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
437 + -0.4d0, 0.9d0, -0.5d0, 0.6d0, 0.0d0, 0.0d0,
438 + 0.0d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
439 + 0.0d0, 0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
440 + 0.0d0, 0.6d0, -0.9d0, 0.1d0, 0.0d0, 0.0d0,
441 + 0.0d0, 0.0d0, 0.6d0, -0.9d0, 0.1d0, 0.7d0,
442 + -0.5d0, 0.2d0, 0.8d0/
443 DATA ssize1/0.0d0, 0.3d0, 1.6d0, 3.2d0/
444 DATA ssize2/0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
445 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
446 + 0.0d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0,
447 + 1.17d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0,
448 + 1.17d0, 1.17d0, 1.17d0/
452 DATA dpar/-2.d0, 0.d0,0.d0,0.d0,0.d0,
453 a -1.d0, 2.d0, -3.d0, -4.d0, 5.d0,
454 b 0.d0, 0.d0, 2.d0, -3.d0, 0.d0,
455 c 1.d0, 5.d0, 2.d0, 0.d0, -4.d0/
457 DATA dt19xa/.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
458 a .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
459 b .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
460 c .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
461 d .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
462 e -.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
463 f -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
464 g 3.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
465 h .6d0, .1d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
466 i -.8d0, 3.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
467 j -.9d0, 2.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
468 k 3.5d0, -.4d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
469 l .6d0, .1d0, -.5d0, .8d0, 0.d0,0.d0,0.d0,
470 m -.8d0, 3.8d0, -2.2d0, -1.2d0, 0.d0,0.d0,0.d0,
471 n -.9d0, 2.8d0, -1.4d0, -1.3d0, 0.d0,0.d0,0.d0,
472 o 3.5d0, -.4d0, -2.2d0, 4.7d0, 0.d0,0.d0,0.d0/
474 DATA dt19xb/.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
475 a .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
476 b .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
477 c .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
478 d .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
479 e -.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
480 f -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
481 g 3.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
482 h .6d0, .1d0, -.5d0, 0.d0,0.d0,0.d0,0.d0,
483 i 0.d0, .1d0, -3.0d0, 0.d0,0.d0,0.d0,0.d0,
484 j -.3d0, .1d0, -2.0d0, 0.d0,0.d0,0.d0,0.d0,
485 k 3.3d0, .1d0, -2.0d0, 0.d0,0.d0,0.d0,0.d0,
486 l .6d0, .1d0, -.5d0, .8d0, .9d0, -.3d0, -.4d0,
487 m -2.0d0, .1d0, 1.4d0, .8d0, .6d0, -.3d0, -2.8d0,
488 n -1.8d0, .1d0, 1.3d0, .8d0, 0.d0, -.3d0, -1.9d0,
489 o 3.8d0, .1d0, -3.1d0, .8d0, 4.8d0, -.3d0, -1.5d0 /
491 DATA dt19xc/.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
492 a .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
493 b .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
494 c .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
495 d .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
496 e -.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
497 f -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
498 g 3.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
499 h .6d0, .1d0, -.5d0, 0.d0,0.d0,0.d0,0.d0,
500 i 4.8d0, .1d0, -3.0d0, 0.d0,0.d0,0.d0,0.d0,
501 j 3.3d0, .1d0, -2.0d0, 0.d0,0.d0,0.d0,0.d0,
502 k 2.1d0, .1d0, -2.0d0, 0.d0,0.d0,0.d0,0.d0,
503 l .6d0, .1d0, -.5d0, .8d0, .9d0, -.3d0, -.4d0,
504 m -1.6d0, .1d0, -2.2d0, .8d0, 5.4d0, -.3d0, -2.8d0,
505 n -1.5d0, .1d0, -1.4d0, .8d0, 3.6d0, -.3d0, -1.9d0,
506 o 3.7d0, .1d0, -2.2d0, .8d0, 3.6d0, -.3d0, -1.5d0 /
508 DATA dt19xd/.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
509 a .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
510 b .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
511 c .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
512 d .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
513 e -.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
514 f -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
515 g 3.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
516 h .6d0, .1d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
517 i -.8d0, -1.0d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
518 j -.9d0, -.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
519 k 3.5d0, .8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
520 l .6d0, .1d0, -.5d0, .8d0, 0.d0,0.d0,0.d0,
521 m -.8d0, -1.0d0, 1.4d0, -1.6d0, 0.d0,0.d0,0.d0,
522 n -.9d0, -.8d0, 1.3d0, -1.6d0, 0.d0,0.d0,0.d0,
523 o 3.5d0, .8d0, -3.1d0, 4.8d0, 0.d0,0.d0,0.d0/
525 DATA dt19ya/.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
526 a .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
527 b .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
528 c .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
529 d .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
530 e .7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
531 f 1.7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
532 g -2.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
533 h .5d0, -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
534 i .7d0, -4.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
535 j 1.7d0, -.7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
536 k -2.6d0, 3.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
537 l .5d0, -.9d0, .3d0, .7d0, 0.d0,0.d0,0.d0,
538 m .7d0, -4.8d0, 3.0d0, 1.1d0, 0.d0,0.d0,0.d0,
539 n 1.7d0, -.7d0, -.7d0, 2.3d0, 0.d0,0.d0,0.d0,
540 o -2.6d0, 3.5d0, -.7d0, -3.6d0, 0.d0,0.d0,0.d0/
542 DATA dt19yb/.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
543 a .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
544 b .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
545 c .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
546 d .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
547 e .7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
548 f 1.7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
549 g -2.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
550 h .5d0, -.9d0, .3d0, 0.d0,0.d0,0.d0,0.d0,
551 i 4.0d0, -.9d0, -.3d0, 0.d0,0.d0,0.d0,0.d0,
552 j -.5d0, -.9d0, 1.5d0, 0.d0,0.d0,0.d0,0.d0,
553 k -1.5d0, -.9d0, -1.8d0, 0.d0,0.d0,0.d0,0.d0,
554 l .5d0, -.9d0, .3d0, .7d0, -.6d0, .2d0, .8d0,
555 m 3.7d0, -.9d0, -1.2d0, .7d0, -1.5d0, .2d0, 2.2d0,
556 n -.3d0, -.9d0, 2.1d0, .7d0, -1.6d0, .2d0, 2.0d0,
557 o -1.6d0, -.9d0, -2.1d0, .7d0, 2.9d0, .2d0, -3.8d0 /
559 DATA dt19yc/.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
560 a .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
561 b .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
562 c .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
563 d .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
564 e .7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
565 f 1.7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
566 g -2.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
567 h .5d0, -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
568 i 4.0d0, -6.3d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
569 j -.5d0, .3d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
570 k -1.5d0, 3.0d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
571 l .5d0, -.9d0, .3d0, .7d0, 0.d0,0.d0,0.d0,
572 m 3.7d0, -7.2d0, 3.0d0, 1.7d0, 0.d0,0.d0,0.d0,
573 n -.3d0, .9d0, -.7d0, 1.9d0, 0.d0,0.d0,0.d0,
574 o -1.6d0, 2.7d0, -.7d0, -3.4d0, 0.d0,0.d0,0.d0/
576 DATA dt19yd/.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
577 a .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
578 b .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
579 c .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
580 d .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
581 e .7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
582 f 1.7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
583 g -2.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
584 h .5d0, -.9d0, .3d0, 0.d0,0.d0,0.d0,0.d0,
585 i .7d0, -.9d0, 1.2d0, 0.d0,0.d0,0.d0,0.d0,
586 j 1.7d0, -.9d0, .5d0, 0.d0,0.d0,0.d0,0.d0,
587 k -2.6d0, -.9d0, -1.3d0, 0.d0,0.d0,0.d0,0.d0,
588 l .5d0, -.9d0, .3d0, .7d0, -.6d0, .2d0, .8d0,
589 m .7d0, -.9d0, 1.2d0, .7d0, -1.5d0, .2d0, 1.6d0,
590 n 1.7d0, -.9d0, .5d0, .7d0, -1.6d0, .2d0, 2.4d0,
591 o -2.6d0, -.9d0, -1.3d0, .7d0, 2.9d0, .2d0, -4.0d0 /
614 CALL stest1(ddot(n,sx,incx,sy,incy),dt7(kn,ki),ssize1(kn)
616 ELSE IF (icase.EQ.2)
THEN
618 CALL daxpy(n,sa,sx,incx,sy,incy)
620 sty(j) = dt8(j,kn,ki)
622 CALL stest(leny,sy,sty,ssize2(1,ksize),sfac)
623 ELSE IF (icase.EQ.5)
THEN
626 sty(i) = dt10y(i,kn,ki)
628 CALL dcopy(n,sx,incx,sy,incy)
629 CALL stest(leny,sy,sty,ssize2(1,1),1.0d0)
630 ELSE IF (icase.EQ.6)
THEN
632 CALL dswap(n,sx,incx,sy,incy)
634 stx(i) = dt10x(i,kn,ki)
635 sty(i) = dt10y(i,kn,ki)
637 CALL stest(lenx,sx,stx,ssize2(1,1),1.0d0)
638 CALL stest(leny,sy,sty,ssize2(1,1),1.0d0)
639 ELSE IF (icase.EQ.12)
THEN
646 stx(i)= dt19x(i,kpar,kni)
647 sty(i)= dt19y(i,kpar,kni)
651 dtemp(i) = dpar(i,kpar)
659 IF ((kpar .EQ. 2) .AND. (kni .EQ. 7))
661 IF ((kpar .EQ. 3) .AND. (kni .EQ. 8))
664 CALL drotm(n,sx,incx,sy,incy,dtemp)
665 CALL stest(lenx,sx,stx,ssize,sfac)
666 CALL stest(leny,sy,sty,sty,sfac)
668 ELSE IF (icase.EQ.13)
THEN
670 CALL testdsdot(
REAL(DSDOT(N,REAL(SX),INCX,REAL(SY),INCY)),
671 $
REAL(DT7(KN,KI)),
REAL(SSIZE1(KN)), .3125E-1)
673 WRITE (nout,*)
' Shouldn''t be here in CHECK2'
685 DOUBLE PRECISION SFAC
687 INTEGER ICASE, INCX, INCY, N
690 DOUBLE PRECISION SC, SS
691 INTEGER I, K, KI, KN, KSIZE, LENX, LENY, MX, MY
693 DOUBLE PRECISION COPYX(5), COPYY(5), DT9X(7,4,4), DT9Y(7,4,4),
694 + dx1(7), dy1(7), mwpc(11), mwps(11), mwpstx(5),
695 + mwpsty(5), mwptx(11,5), mwpty(11,5), mwpx(5),
696 + mwpy(5), ssize2(14,2), stx(7), sty(7), sx(7),
698 INTEGER INCXS(4), INCYS(4), LENS(4,2), MWPINX(11),
699 + mwpiny(11), mwpn(11), ns(4)
705 COMMON /combla/icase, n, incx, incy, pass
707 DATA incxs/1, 2, -2, -1/
708 DATA incys/1, -2, 1, -2/
709 DATA lens/1, 1, 2, 4, 1, 1, 3, 7/
711 DATA dx1/0.6d0, 0.1d0, -0.5d0, 0.8d0, 0.9d0, -0.3d0,
713 DATA dy1/0.5d0, -0.9d0, 0.3d0, 0.7d0, -0.6d0, 0.2d0,
715 DATA sc, ss/0.8d0, 0.6d0/
716 DATA dt9x/0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
717 + 0.0d0, 0.78d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
718 + 0.0d0, 0.0d0, 0.78d0, -0.46d0, 0.0d0, 0.0d0,
719 + 0.0d0, 0.0d0, 0.0d0, 0.78d0, -0.46d0, -0.22d0,
720 + 1.06d0, 0.0d0, 0.0d0, 0.0d0, 0.6d0, 0.0d0,
721 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.78d0,
722 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
723 + 0.66d0, 0.1d0, -0.1d0, 0.0d0, 0.0d0, 0.0d0,
724 + 0.0d0, 0.96d0, 0.1d0, -0.76d0, 0.8d0, 0.90d0,
725 + -0.3d0, -0.02d0, 0.6d0, 0.0d0, 0.0d0, 0.0d0,
726 + 0.0d0, 0.0d0, 0.0d0, 0.78d0, 0.0d0, 0.0d0,
727 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, -0.06d0, 0.1d0,
728 + -0.1d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.90d0,
729 + 0.1d0, -0.22d0, 0.8d0, 0.18d0, -0.3d0, -0.02d0,
730 + 0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
731 + 0.78d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
732 + 0.0d0, 0.78d0, 0.26d0, 0.0d0, 0.0d0, 0.0d0,
733 + 0.0d0, 0.0d0, 0.78d0, 0.26d0, -0.76d0, 1.12d0,
734 + 0.0d0, 0.0d0, 0.0d0/
735 DATA dt9y/0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
736 + 0.0d0, 0.04d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
737 + 0.0d0, 0.0d0, 0.04d0, -0.78d0, 0.0d0, 0.0d0,
738 + 0.0d0, 0.0d0, 0.0d0, 0.04d0, -0.78d0, 0.54d0,
739 + 0.08d0, 0.0d0, 0.0d0, 0.0d0, 0.5d0, 0.0d0,
740 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.04d0,
741 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.7d0,
742 + -0.9d0, -0.12d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
743 + 0.64d0, -0.9d0, -0.30d0, 0.7d0, -0.18d0, 0.2d0,
744 + 0.28d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
745 + 0.0d0, 0.0d0, 0.04d0, 0.0d0, 0.0d0, 0.0d0,
746 + 0.0d0, 0.0d0, 0.0d0, 0.7d0, -1.08d0, 0.0d0,
747 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.64d0, -1.26d0,
748 + 0.54d0, 0.20d0, 0.0d0, 0.0d0, 0.0d0, 0.5d0,
749 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
750 + 0.04d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
751 + 0.0d0, 0.04d0, -0.9d0, 0.18d0, 0.0d0, 0.0d0,
752 + 0.0d0, 0.0d0, 0.04d0, -0.9d0, 0.18d0, 0.7d0,
753 + -0.18d0, 0.2d0, 0.16d0/
754 DATA ssize2/0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
755 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
756 + 0.0d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0,
757 + 1.17d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0,
758 + 1.17d0, 1.17d0, 1.17d0/
778 stx(i) = dt9x(i,kn,ki)
779 sty(i) = dt9y(i,kn,ki)
781 CALL drot(n,sx,incx,sy,incy,sc,ss)
782 CALL stest(lenx,sx,stx,ssize2(1,ksize),sfac)
783 CALL stest(leny,sy,sty,ssize2(1,ksize),sfac)
785 WRITE (nout,*)
' Shouldn''t be here in CHECK3'
877 mwpstx(k) = mwptx(i,k)
878 mwpsty(k) = mwpty(i,k)
880 CALL drot(mwpn(i),copyx,incx,copyy,incy,mwpc(i),mwps(i))
881 CALL stest(5,copyx,mwpstx,mwpstx,sfac)
882 CALL stest(5,copyy,mwpsty,mwpsty,sfac)
886 SUBROUTINE stest(LEN,SCOMP,STRUE,SSIZE,SFAC)
897 DOUBLE PRECISION ZERO
898 parameter (nout=6, zero=0.0d0)
900 DOUBLE PRECISION SFAC
903 DOUBLE PRECISION SCOMP(len), SSIZE(len), STRUE(len)
905 INTEGER ICASE, INCX, INCY, N
911 DOUBLE PRECISION SDIFF
916 COMMON /combla/icase, n, incx, incy, pass
920 sd = scomp(i) - strue(i)
921 IF (abs(sfac*sd) .LE. abs(ssize(i))*epsilon(zero))
926 IF ( .NOT. pass)
GO TO 20
931 20
WRITE (nout,99997) icase, n, incx, incy, i, scomp(i),
932 + strue(i), sd, ssize(i)
936 99999
FORMAT (
' FAIL')
937 99998
FORMAT (/
' CASE N INCX INCY I ',
938 +
' COMP(I) TRUE(I) DIFFERENCE',
940 99997
FORMAT (1x,i4,i3,2i5,i3,2d36.8,2d12.4)
942 SUBROUTINE testdsdot(SCOMP,STRUE,SSIZE,SFAC)
954 parameter (nout=6, zero=0.0e0)
956 REAL SFAC, SCOMP, SSIZE, STRUE
958 INTEGER ICASE, INCX, INCY, N
965 COMMON /combla/icase, n, incx, incy, pass
969 IF (abs(sfac*sd) .LE. abs(ssize) * epsilon(zero))
974 IF ( .NOT. pass)
GO TO 20
979 20
WRITE (nout,99997) icase, n, incx, incy, scomp,
984 99999
FORMAT (
' FAIL')
985 99998
FORMAT (/
' CASE N INCX INCY ',
986 +
' COMP(I) TRUE(I) DIFFERENCE',
988 99997
FORMAT (1x,i4,i3,1i5,i3,2e36.8,2e12.4)
990 SUBROUTINE stest1(SCOMP1,STRUE1,SSIZE,SFAC)
1000 DOUBLE PRECISION SCOMP1, SFAC, STRUE1
1002 DOUBLE PRECISION SSIZE(*)
1004 DOUBLE PRECISION SCOMP(1), STRUE(1)
1011 CALL stest(1,scomp,strue,ssize,sfac)
1015 DOUBLE PRECISION FUNCTION sdiff(SA,SB)
1020 DOUBLE PRECISION SA, SB
1025 SUBROUTINE itest1(ICOMP,ITRUE)
1036 INTEGER ICOMP, ITRUE
1038 INTEGER ICASE, INCX, INCY, N
1043 COMMON /combla/icase, n, incx, incy, pass
1046 IF (icomp.EQ.itrue)
GO TO 40
1050 IF ( .NOT. pass)
GO TO 20
1055 20 id = icomp - itrue
1056 WRITE (nout,99997) icase, n, incx, incy, icomp, itrue, id
1060 99999
FORMAT (
' FAIL')
1061 99998
FORMAT (/
' CASE N INCX INCY ',
1062 +
' COMP TRUE DIFFERENCE',
1064 99997
FORMAT (1x,i4,i3,2i5,2i36,i12)
subroutine dcopy(N, DX, INCX, DY, INCY)
DCOPY
subroutine drot(N, DX, INCX, DY, INCY, C, S)
DROT
subroutine testdsdot(SCOMP, STRUE, SSIZE, SFAC)
subroutine itest1(ICOMP, ITRUE)
subroutine daxpy(N, DA, DX, INCX, DY, INCY)
DAXPY
subroutine dswap(N, DX, INCX, DY, INCY)
DSWAP
subroutine drotmg(DD1, DD2, DX1, DY1, DPARAM)
DROTMG
subroutine drotg(DA, DB, C, S)
DROTG
subroutine drotm(N, DX, INCX, DY, INCY, DPARAM)
DROTM
subroutine stest1(SCOMP1, STRUE1, SSIZE, SFAC)
real function sdiff(SA, SB)
subroutine dscal(N, DA, DX, INCX)
DSCAL
subroutine stest(LEN, SCOMP, STRUE, SSIZE, SFAC)