48 INTEGER icase, incx, incy, mode, n
56 COMMON /combla/icase, n, incx, incy, mode, pass
58 DATA sfac/9.765625d-4/
76 ELSE IF (icase.GE.6)
THEN
80 IF (pass)
WRITE (nout,99998)
84 99999
FORMAT (
' Complex BLAS Test Program Results',/1x)
85 99998
FORMAT (
' ----- PASS -----')
92 INTEGER ICASE, INCX, INCY, MODE, N
97 COMMON /combla/icase, n, incx, incy, mode, pass
110 WRITE (nout,99999) icase, l(icase)
113 99999
FORMAT (/
' Test of subprogram number',i3,12x,a6)
120 DOUBLE PRECISION SFAC
122 INTEGER ICASE, INCX, INCY, MODE, N
127 INTEGER I, IX, J, LEN, NP1
129 COMPLEX*16 CTRUE5(8,5,2), CTRUE6(8,5,2), CV(8,5,2), CVR(8),
130 + CX(8), CXR(15), MWPCS(5), MWPCT(5)
131 DOUBLE PRECISION STRUE2(5), STRUE4(5)
132 INTEGER ITRUE3(5), ITRUEC(5)
134 DOUBLE PRECISION DZASUM, DZNRM2
136 EXTERNAL dzasum, dznrm2, izamax
142 COMMON /combla/icase, n, incx, incy, mode, pass
144 DATA sa, ca/0.3d0, (0.4d0,-0.7d0)/
145 DATA ((cv(i,j,1),i=1,8),j=1,5)/(0.1d0,0.1d0),
146 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
147 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
148 + (1.0d0,2.0d0), (0.3d0,-0.4d0), (3.0d0,4.0d0),
149 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
150 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
151 + (0.1d0,-0.3d0), (0.5d0,-0.1d0), (5.0d0,6.0d0),
152 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
153 + (5.0d0,6.0d0), (5.0d0,6.0d0), (0.1d0,0.1d0),
154 + (-0.6d0,0.1d0), (0.1d0,-0.3d0), (7.0d0,8.0d0),
155 + (7.0d0,8.0d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
156 + (7.0d0,8.0d0), (0.3d0,0.1d0), (0.5d0,0.0d0),
157 + (0.0d0,0.5d0), (0.0d0,0.2d0), (2.0d0,3.0d0),
158 + (2.0d0,3.0d0), (2.0d0,3.0d0), (2.0d0,3.0d0)/
159 DATA ((cv(i,j,2),i=1,8),j=1,5)/(0.1d0,0.1d0),
160 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
161 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
162 + (4.0d0,5.0d0), (0.3d0,-0.4d0), (6.0d0,7.0d0),
163 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
164 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
165 + (0.1d0,-0.3d0), (8.0d0,9.0d0), (0.5d0,-0.1d0),
166 + (2.0d0,5.0d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
167 + (2.0d0,5.0d0), (2.0d0,5.0d0), (0.1d0,0.1d0),
168 + (3.0d0,6.0d0), (-0.6d0,0.1d0), (4.0d0,7.0d0),
169 + (0.1d0,-0.3d0), (7.0d0,2.0d0), (7.0d0,2.0d0),
170 + (7.0d0,2.0d0), (0.3d0,0.1d0), (5.0d0,8.0d0),
171 + (0.5d0,0.0d0), (6.0d0,9.0d0), (0.0d0,0.5d0),
172 + (8.0d0,3.0d0), (0.0d0,0.2d0), (9.0d0,4.0d0)/
173 DATA cvr/(8.0d0,8.0d0), (-7.0d0,-7.0d0),
174 + (9.0d0,9.0d0), (5.0d0,5.0d0), (9.0d0,9.0d0),
175 + (8.0d0,8.0d0), (7.0d0,7.0d0), (7.0d0,7.0d0)/
176 DATA strue2/0.0d0, 0.5d0, 0.6d0, 0.7d0, 0.8d0/
177 DATA strue4/0.0d0, 0.7d0, 1.0d0, 1.3d0, 1.6d0/
178 DATA ((ctrue5(i,j,1),i=1,8),j=1,5)/(0.1d0,0.1d0),
179 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
180 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
181 + (1.0d0,2.0d0), (-0.16d0,-0.37d0), (3.0d0,4.0d0),
182 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
183 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
184 + (-0.17d0,-0.19d0), (0.13d0,-0.39d0),
185 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
186 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
187 + (0.11d0,-0.03d0), (-0.17d0,0.46d0),
188 + (-0.17d0,-0.19d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
189 + (7.0d0,8.0d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
190 + (0.19d0,-0.17d0), (0.20d0,-0.35d0),
191 + (0.35d0,0.20d0), (0.14d0,0.08d0),
192 + (2.0d0,3.0d0), (2.0d0,3.0d0), (2.0d0,3.0d0),
194 DATA ((ctrue5(i,j,2),i=1,8),j=1,5)/(0.1d0,0.1d0),
195 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
196 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
197 + (4.0d0,5.0d0), (-0.16d0,-0.37d0), (6.0d0,7.0d0),
198 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
199 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
200 + (-0.17d0,-0.19d0), (8.0d0,9.0d0),
201 + (0.13d0,-0.39d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
202 + (2.0d0,5.0d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
203 + (0.11d0,-0.03d0), (3.0d0,6.0d0),
204 + (-0.17d0,0.46d0), (4.0d0,7.0d0),
205 + (-0.17d0,-0.19d0), (7.0d0,2.0d0), (7.0d0,2.0d0),
206 + (7.0d0,2.0d0), (0.19d0,-0.17d0), (5.0d0,8.0d0),
207 + (0.20d0,-0.35d0), (6.0d0,9.0d0),
208 + (0.35d0,0.20d0), (8.0d0,3.0d0),
209 + (0.14d0,0.08d0), (9.0d0,4.0d0)/
210 DATA ((ctrue6(i,j,1),i=1,8),j=1,5)/(0.1d0,0.1d0),
211 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
212 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
213 + (1.0d0,2.0d0), (0.09d0,-0.12d0), (3.0d0,4.0d0),
214 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
215 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
216 + (0.03d0,-0.09d0), (0.15d0,-0.03d0),
217 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
218 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
219 + (0.03d0,0.03d0), (-0.18d0,0.03d0),
220 + (0.03d0,-0.09d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
221 + (7.0d0,8.0d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
222 + (0.09d0,0.03d0), (0.15d0,0.00d0),
223 + (0.00d0,0.15d0), (0.00d0,0.06d0), (2.0d0,3.0d0),
224 + (2.0d0,3.0d0), (2.0d0,3.0d0), (2.0d0,3.0d0)/
225 DATA ((ctrue6(i,j,2),i=1,8),j=1,5)/(0.1d0,0.1d0),
226 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
227 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
228 + (4.0d0,5.0d0), (0.09d0,-0.12d0), (6.0d0,7.0d0),
229 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
230 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
231 + (0.03d0,-0.09d0), (8.0d0,9.0d0),
232 + (0.15d0,-0.03d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
233 + (2.0d0,5.0d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
234 + (0.03d0,0.03d0), (3.0d0,6.0d0),
235 + (-0.18d0,0.03d0), (4.0d0,7.0d0),
236 + (0.03d0,-0.09d0), (7.0d0,2.0d0), (7.0d0,2.0d0),
237 + (7.0d0,2.0d0), (0.09d0,0.03d0), (5.0d0,8.0d0),
238 + (0.15d0,0.00d0), (6.0d0,9.0d0), (0.00d0,0.15d0),
239 + (8.0d0,3.0d0), (0.00d0,0.06d0), (9.0d0,4.0d0)/
240 DATA itrue3/0, 1, 2, 2, 2/
241 DATA itruec/0, 1, 1, 1, 1/
249 cx(i) = cv(i,np1,incx)
253 CALL stest1(dznrm2(n,cx,incx),strue2(np1),strue2(np1),
255 ELSE IF (icase.EQ.7)
THEN
257 CALL stest1(dzasum(n,cx,incx),strue4(np1),strue4(np1),
259 ELSE IF (icase.EQ.8)
THEN
261 CALL zscal(n,ca,cx,incx)
262 CALL ctest(len,cx,ctrue5(1,np1,incx),ctrue5(1,np1,incx),
264 ELSE IF (icase.EQ.9)
THEN
267 CALL ctest(len,cx,ctrue6(1,np1,incx),ctrue6(1,np1,incx),
269 ELSE IF (icase.EQ.10)
THEN
271 CALL itest1(izamax(n,cx,incx),itrue3(np1))
273 cx(i) = (42.0d0,43.0d0)
275 CALL itest1(izamax(n,cx,incx),itruec(np1))
277 WRITE (nout,*)
' Shouldn''t be here in CHECK1'
282 IF (icase.EQ.10)
THEN
289 CALL itest1(izamax(n,cxr,incx),3)
299 mwpct(i) = (0.0d0,0.0d0)
300 mwpcs(i) = (1.0d0,1.0d0)
302 CALL zscal(5,ca,cx,incx)
303 CALL ctest(5,cx,mwpct,mwpcs,sfac)
304 ELSE IF (icase.EQ.9)
THEN
309 mwpct(i) = (0.0d0,0.0d0)
310 mwpcs(i) = (1.0d0,1.0d0)
313 CALL ctest(5,cx,mwpct,mwpcs,sfac)
321 CALL ctest(5,cx,mwpct,mwpcs,sfac)
329 CALL ctest(5,cx,mwpct,mwpcs,sfac)
338 DOUBLE PRECISION SFAC
340 INTEGER ICASE, INCX, INCY, MODE, N
344 INTEGER I, J, KI, KN, KSIZE, LENX, LENY, LINCX, LINCY,
347 COMPLEX*16 CDOT(1), CSIZE1(4), CSIZE2(7,2), CSIZE3(14),
348 + CT10X(7,4,4), CT10Y(7,4,4), CT6(4,4), CT7(4,4),
349 + CT8(7,4,4), CTY0(1), CX(7), CX0(1), CX1(7),
350 + CY(7), CY0(1), CY1(7)
351 INTEGER INCXS(4), INCYS(4), LENS(4,2), NS(4)
353 COMPLEX*16 ZDOTC, ZDOTU
354 EXTERNAL zdotc, zdotu
360 COMMON /combla/icase, n, incx, incy, mode, pass
362 DATA ca/(0.4d0,-0.7d0)/
363 DATA incxs/1, 2, -2, -1/
364 DATA incys/1, -2, 1, -2/
365 DATA lens/1, 1, 2, 4, 1, 1, 3, 7/
367 DATA cx1/(0.7d0,-0.8d0), (-0.4d0,-0.7d0),
368 + (-0.1d0,-0.9d0), (0.2d0,-0.8d0),
369 + (-0.9d0,-0.4d0), (0.1d0,0.4d0), (-0.6d0,0.6d0)/
370 DATA cy1/(0.6d0,-0.6d0), (-0.9d0,0.5d0),
371 + (0.7d0,-0.6d0), (0.1d0,-0.5d0), (-0.1d0,-0.2d0),
372 + (-0.5d0,-0.3d0), (0.8d0,-0.7d0)/
373 DATA ((ct8(i,j,1),i=1,7),j=1,4)/(0.6d0,-0.6d0),
374 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
375 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
376 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
377 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
378 + (0.0d0,0.0d0), (0.32d0,-1.41d0),
379 + (-1.55d0,0.5d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
380 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
381 + (0.32d0,-1.41d0), (-1.55d0,0.5d0),
382 + (0.03d0,-0.89d0), (-0.38d0,-0.96d0),
383 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
384 DATA ((ct8(i,j,2),i=1,7),j=1,4)/(0.6d0,-0.6d0),
385 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
386 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
387 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
388 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
389 + (0.0d0,0.0d0), (-0.07d0,-0.89d0),
390 + (-0.9d0,0.5d0), (0.42d0,-1.41d0), (0.0d0,0.0d0),
391 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
392 + (0.78d0,0.06d0), (-0.9d0,0.5d0),
393 + (0.06d0,-0.13d0), (0.1d0,-0.5d0),
394 + (-0.77d0,-0.49d0), (-0.5d0,-0.3d0),
396 DATA ((ct8(i,j,3),i=1,7),j=1,4)/(0.6d0,-0.6d0),
397 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
398 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
399 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
400 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
401 + (0.0d0,0.0d0), (-0.07d0,-0.89d0),
402 + (-1.18d0,-0.31d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
403 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
404 + (0.78d0,0.06d0), (-1.54d0,0.97d0),
405 + (0.03d0,-0.89d0), (-0.18d0,-1.31d0),
406 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
407 DATA ((ct8(i,j,4),i=1,7),j=1,4)/(0.6d0,-0.6d0),
408 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
409 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
410 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
411 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
412 + (0.0d0,0.0d0), (0.32d0,-1.41d0), (-0.9d0,0.5d0),
413 + (0.05d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
414 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.32d0,-1.41d0),
415 + (-0.9d0,0.5d0), (0.05d0,-0.6d0), (0.1d0,-0.5d0),
416 + (-0.77d0,-0.49d0), (-0.5d0,-0.3d0),
418 DATA ct7/(0.0d0,0.0d0), (-0.06d0,-0.90d0),
419 + (0.65d0,-0.47d0), (-0.34d0,-1.22d0),
420 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
421 + (-0.59d0,-1.46d0), (-1.04d0,-0.04d0),
422 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
423 + (-0.83d0,0.59d0), (0.07d0,-0.37d0),
424 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
425 + (-0.76d0,-1.15d0), (-1.33d0,-1.82d0)/
426 DATA ct6/(0.0d0,0.0d0), (0.90d0,0.06d0),
427 + (0.91d0,-0.77d0), (1.80d0,-0.10d0),
428 + (0.0d0,0.0d0), (0.90d0,0.06d0), (1.45d0,0.74d0),
429 + (0.20d0,0.90d0), (0.0d0,0.0d0), (0.90d0,0.06d0),
430 + (-0.55d0,0.23d0), (0.83d0,-0.39d0),
431 + (0.0d0,0.0d0), (0.90d0,0.06d0), (1.04d0,0.79d0),
433 DATA ((ct10x(i,j,1),i=1,7),j=1,4)/(0.7d0,-0.8d0),
434 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
435 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
436 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
437 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
438 + (0.0d0,0.0d0), (0.6d0,-0.6d0), (-0.9d0,0.5d0),
439 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
440 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.6d0,-0.6d0),
441 + (-0.9d0,0.5d0), (0.7d0,-0.6d0), (0.1d0,-0.5d0),
442 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
443 DATA ((ct10x(i,j,2),i=1,7),j=1,4)/(0.7d0,-0.8d0),
444 + (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),
446 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
447 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
448 + (0.0d0,0.0d0), (0.7d0,-0.6d0), (-0.4d0,-0.7d0),
449 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
450 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.8d0,-0.7d0),
451 + (-0.4d0,-0.7d0), (-0.1d0,-0.2d0),
452 + (0.2d0,-0.8d0), (0.7d0,-0.6d0), (0.1d0,0.4d0),
454 DATA ((ct10x(i,j,3),i=1,7),j=1,4)/(0.7d0,-0.8d0),
455 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
456 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
457 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
458 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
459 + (0.0d0,0.0d0), (-0.9d0,0.5d0), (-0.4d0,-0.7d0),
460 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
461 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.1d0,-0.5d0),
462 + (-0.4d0,-0.7d0), (0.7d0,-0.6d0), (0.2d0,-0.8d0),
463 + (-0.9d0,0.5d0), (0.1d0,0.4d0), (0.6d0,-0.6d0)/
464 DATA ((ct10x(i,j,4),i=1,7),j=1,4)/(0.7d0,-0.8d0),
465 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
466 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
467 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
468 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
469 + (0.0d0,0.0d0), (0.6d0,-0.6d0), (0.7d0,-0.6d0),
470 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
471 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.6d0,-0.6d0),
472 + (0.7d0,-0.6d0), (-0.1d0,-0.2d0), (0.8d0,-0.7d0),
473 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
474 DATA ((ct10y(i,j,1),i=1,7),j=1,4)/(0.6d0,-0.6d0),
475 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
476 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
477 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
478 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
479 + (0.0d0,0.0d0), (0.7d0,-0.8d0), (-0.4d0,-0.7d0),
480 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
481 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.7d0,-0.8d0),
482 + (-0.4d0,-0.7d0), (-0.1d0,-0.9d0),
483 + (0.2d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
485 DATA ((ct10y(i,j,2),i=1,7),j=1,4)/(0.6d0,-0.6d0),
486 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
487 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
488 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
489 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
490 + (0.0d0,0.0d0), (-0.1d0,-0.9d0), (-0.9d0,0.5d0),
491 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
492 + (0.0d0,0.0d0), (0.0d0,0.0d0), (-0.6d0,0.6d0),
493 + (-0.9d0,0.5d0), (-0.9d0,-0.4d0), (0.1d0,-0.5d0),
494 + (-0.1d0,-0.9d0), (-0.5d0,-0.3d0),
496 DATA ((ct10y(i,j,3),i=1,7),j=1,4)/(0.6d0,-0.6d0),
497 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
498 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
499 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
500 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
501 + (0.0d0,0.0d0), (-0.1d0,-0.9d0), (0.7d0,-0.8d0),
502 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
503 + (0.0d0,0.0d0), (0.0d0,0.0d0), (-0.6d0,0.6d0),
504 + (-0.9d0,-0.4d0), (-0.1d0,-0.9d0),
505 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
507 DATA ((ct10y(i,j,4),i=1,7),j=1,4)/(0.6d0,-0.6d0),
508 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
509 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
510 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
511 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
512 + (0.0d0,0.0d0), (0.7d0,-0.8d0), (-0.9d0,0.5d0),
513 + (-0.4d0,-0.7d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
514 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.7d0,-0.8d0),
515 + (-0.9d0,0.5d0), (-0.4d0,-0.7d0), (0.1d0,-0.5d0),
516 + (-0.1d0,-0.9d0), (-0.5d0,-0.3d0),
518 DATA csize1/(0.0d0,0.0d0), (0.9d0,0.9d0),
519 + (1.63d0,1.73d0), (2.90d0,2.78d0)/
520 DATA csize3/(0.0d0,0.0d0), (0.0d0,0.0d0),
521 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
522 + (0.0d0,0.0d0), (0.0d0,0.0d0), (1.17d0,1.17d0),
523 + (1.17d0,1.17d0), (1.17d0,1.17d0),
524 + (1.17d0,1.17d0), (1.17d0,1.17d0),
525 + (1.17d0,1.17d0), (1.17d0,1.17d0)/
526 DATA csize2/(0.0d0,0.0d0), (0.0d0,0.0d0),
527 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
528 + (0.0d0,0.0d0), (0.0d0,0.0d0), (1.54d0,1.54d0),
529 + (1.54d0,1.54d0), (1.54d0,1.54d0),
530 + (1.54d0,1.54d0), (1.54d0,1.54d0),
531 + (1.54d0,1.54d0), (1.54d0,1.54d0)/
551 cdot(1) = zdotc(n,cx,incx,cy,incy)
552 CALL ctest(1,cdot,ct6(kn,ki),csize1(kn),sfac)
553 ELSE IF (icase.EQ.2)
THEN
555 cdot(1) = zdotu(n,cx,incx,cy,incy)
556 CALL ctest(1,cdot,ct7(kn,ki),csize1(kn),sfac)
557 ELSE IF (icase.EQ.3)
THEN
559 CALL zaxpy(n,ca,cx,incx,cy,incy)
560 CALL ctest(leny,cy,ct8(1,kn,ki),csize2(1,ksize),sfac)
561 ELSE IF (icase.EQ.4)
THEN
563 CALL zcopy(n,cx,incx,cy,incy)
564 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0d0)
566 cx0(1) = (42.0d0,43.0d0)
567 cy0(1) = (44.0d0,45.0d0)
577 CALL zcopy(n,cx0,incx,cy0,incy)
578 CALL ctest(1,cy0,cty0,csize3,1.0d0)
582 ELSE IF (icase.EQ.5)
THEN
584 CALL zswap(n,cx,incx,cy,incy)
585 CALL ctest(lenx,cx,ct10x(1,kn,ki),csize3,1.0d0)
586 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0d0)
588 WRITE (nout,*)
' Shouldn''t be here in CHECK2'
596 SUBROUTINE stest(LEN,SCOMP,STRUE,SSIZE,SFAC)
607 DOUBLE PRECISION ZERO
608 parameter(nout=6, zero=0.0d0)
610 DOUBLE PRECISION SFAC
613 DOUBLE PRECISION SCOMP(LEN), SSIZE(LEN), STRUE(LEN)
615 INTEGER ICASE, INCX, INCY, MODE, N
621 DOUBLE PRECISION SDIFF
626 COMMON /combla/icase, n, incx, incy, mode, pass
630 sd = scomp(i) - strue(i)
631 IF (abs(sfac*sd) .LE. abs(ssize(i))*epsilon(zero))
636 IF ( .NOT. pass)
GO TO 20
641 20
WRITE (nout,99997) icase, n, incx, incy, mode, i, scomp(i),
642 + strue(i), sd, ssize(i)
646 99999
FORMAT (
' FAIL')
647 99998
FORMAT (/
' CASE N INCX INCY MODE I ',
648 +
' COMP(I) TRUE(I) DIFFERENCE',
650 99997
FORMAT (1x,i4,i3,3i5,i3,2d36.8,2d12.4)
652 SUBROUTINE stest1(SCOMP1,STRUE1,SSIZE,SFAC)
662 DOUBLE PRECISION SCOMP1, SFAC, STRUE1
664 DOUBLE PRECISION SSIZE(*)
666 DOUBLE PRECISION SCOMP(1), STRUE(1)
673 CALL stest(1,scomp,strue,ssize,sfac)
677 DOUBLE PRECISION FUNCTION sdiff(SA,SB)
682 DOUBLE PRECISION sa, sb
687 SUBROUTINE ctest(LEN,CCOMP,CTRUE,CSIZE,SFAC)
693 DOUBLE PRECISION SFAC
696 COMPLEX*16 CCOMP(LEN), CSIZE(LEN), CTRUE(LEN)
700 DOUBLE PRECISION SCOMP(20), SSIZE(20), STRUE(20)
704 INTRINSIC dimag, dble
707 scomp(2*i-1) = dble(ccomp(i))
708 scomp(2*i) = dimag(ccomp(i))
709 strue(2*i-1) = dble(ctrue(i))
710 strue(2*i) = dimag(ctrue(i))
711 ssize(2*i-1) = dble(csize(i))
712 ssize(2*i) = dimag(csize(i))
715 CALL stest(2*len,scomp,strue,ssize,sfac)
731 INTEGER ICASE, INCX, INCY, MODE, N
736 COMMON /combla/icase, n, incx, incy, mode, pass
738 IF (icomp.EQ.itrue)
GO TO 40
742 IF ( .NOT. pass)
GO TO 20
747 20 id = icomp - itrue
748 WRITE (nout,99997) icase, n, incx, incy, mode, icomp, itrue, id
752 99999
FORMAT (
' FAIL')
753 99998
FORMAT (/
' CASE N INCX INCY MODE ',
754 +
' COMP TRUE DIFFERENCE',
756 99997
FORMAT (1x,i4,i3,3i5,2i36,i12)
subroutine stest(LEN, SCOMP, STRUE, SSIZE, SFAC)
real function sdiff(SA, SB)
subroutine stest1(SCOMP1, STRUE1, SSIZE, SFAC)
subroutine ctest(LEN, CCOMP, CTRUE, CSIZE, SFAC)
subroutine itest1(ICOMP, ITRUE)
subroutine zswap(N, ZX, INCX, ZY, INCY)
ZSWAP
subroutine zdscal(N, DA, ZX, INCX)
ZDSCAL
subroutine zaxpy(N, ZA, ZX, INCX, ZY, INCY)
ZAXPY
subroutine zscal(N, ZA, ZX, INCX)
ZSCAL
subroutine zcopy(N, ZX, INCX, ZY, INCY)
ZCOPY