51 INTEGER ICASE, INCX, INCY, MODE, N
59 COMMON /combla/icase, n, incx, incy, mode, pass
61 DATA sfac/9.765625d-4/
79 ELSE IF (icase.GE.6)
THEN
83 IF (pass)
WRITE (nout,99998)
87 99999
FORMAT (
' Complex BLAS Test Program Results',/1x)
88 99998
FORMAT (
' ----- PASS -----')
95 INTEGER ICASE, INCX, INCY, MODE, N
100 COMMON /combla/icase, n, incx, incy, mode, pass
113 WRITE (nout,99999) icase, l(icase)
116 99999
FORMAT (/
' Test of subprogram number',i3,12x,a6)
123 DOUBLE PRECISION SFAC
125 INTEGER ICASE, INCX, INCY, MODE, N
130 INTEGER I, J, LEN, NP1
132 COMPLEX*16 CTRUE5(8,5,2), CTRUE6(8,5,2), CV(8,5,2), CX(8),
134 DOUBLE PRECISION STRUE2(5), STRUE4(5)
137 DOUBLE PRECISION DZASUM, DZNRM2
139 EXTERNAL dzasum, dznrm2, izamax
145 COMMON /combla/icase, n, incx, incy, mode, pass
147 DATA sa, ca/0.3d0, (0.4d0,-0.7d0)/
148 DATA ((cv(i,j,1),i=1,8),j=1,5)/(0.1d0,0.1d0),
149 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
150 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
151 + (1.0d0,2.0d0), (0.3d0,-0.4d0), (3.0d0,4.0d0),
152 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
153 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
154 + (0.1d0,-0.3d0), (0.5d0,-0.1d0), (5.0d0,6.0d0),
155 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
156 + (5.0d0,6.0d0), (5.0d0,6.0d0), (0.1d0,0.1d0),
157 + (-0.6d0,0.1d0), (0.1d0,-0.3d0), (7.0d0,8.0d0),
158 + (7.0d0,8.0d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
159 + (7.0d0,8.0d0), (0.3d0,0.1d0), (0.5d0,0.0d0),
160 + (0.0d0,0.5d0), (0.0d0,0.2d0), (2.0d0,3.0d0),
161 + (2.0d0,3.0d0), (2.0d0,3.0d0), (2.0d0,3.0d0)/
162 DATA ((cv(i,j,2),i=1,8),j=1,5)/(0.1d0,0.1d0),
163 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
164 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
165 + (4.0d0,5.0d0), (0.3d0,-0.4d0), (6.0d0,7.0d0),
166 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
167 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
168 + (0.1d0,-0.3d0), (8.0d0,9.0d0), (0.5d0,-0.1d0),
169 + (2.0d0,5.0d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
170 + (2.0d0,5.0d0), (2.0d0,5.0d0), (0.1d0,0.1d0),
171 + (3.0d0,6.0d0), (-0.6d0,0.1d0), (4.0d0,7.0d0),
172 + (0.1d0,-0.3d0), (7.0d0,2.0d0), (7.0d0,2.0d0),
173 + (7.0d0,2.0d0), (0.3d0,0.1d0), (5.0d0,8.0d0),
174 + (0.5d0,0.0d0), (6.0d0,9.0d0), (0.0d0,0.5d0),
175 + (8.0d0,3.0d0), (0.0d0,0.2d0), (9.0d0,4.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/
248 cx(i) = cv(i,np1,incx)
252 CALL stest1(dznrm2(n,cx,incx),strue2(np1),strue2(np1),
254 ELSE IF (icase.EQ.7)
THEN
256 CALL stest1(dzasum(n,cx,incx),strue4(np1),strue4(np1),
258 ELSE IF (icase.EQ.8)
THEN
260 CALL zscal(n,ca,cx,incx)
261 CALL ctest(len,cx,ctrue5(1,np1,incx),ctrue5(1,np1,incx),
263 ELSE IF (icase.EQ.9)
THEN
266 CALL ctest(len,cx,ctrue6(1,np1,incx),ctrue6(1,np1,incx),
268 ELSE IF (icase.EQ.10)
THEN
270 CALL itest1(izamax(n,cx,incx),itrue3(np1))
272 WRITE (nout,*)
' Shouldn''t be here in CHECK1'
285 mwpct(i) = (0.0d0,0.0d0)
286 mwpcs(i) = (1.0d0,1.0d0)
288 CALL zscal(5,ca,cx,incx)
289 CALL ctest(5,cx,mwpct,mwpcs,sfac)
290 ELSE IF (icase.EQ.9)
THEN
295 mwpct(i) = (0.0d0,0.0d0)
296 mwpcs(i) = (1.0d0,1.0d0)
299 CALL ctest(5,cx,mwpct,mwpcs,sfac)
307 CALL ctest(5,cx,mwpct,mwpcs,sfac)
315 CALL ctest(5,cx,mwpct,mwpcs,sfac)
324 DOUBLE PRECISION SFAC
326 INTEGER ICASE, INCX, INCY, MODE, N
330 INTEGER I, J, KI, KN, KSIZE, LENX, LENY, MX, MY
332 COMPLEX*16 CDOT(1), CSIZE1(4), CSIZE2(7,2), CSIZE3(14),
333 + ct10x(7,4,4), ct10y(7,4,4), ct6(4,4), ct7(4,4),
334 + ct8(7,4,4), cx(7), cx1(7), cy(7), cy1(7)
335 INTEGER INCXS(4), INCYS(4), LENS(4,2), NS(4)
337 COMPLEX*16 ZDOTC, ZDOTU
338 EXTERNAL zdotc, zdotu
344 COMMON /combla/icase, n, incx, incy, mode, pass
346 DATA ca/(0.4d0,-0.7d0)/
347 DATA incxs/1, 2, -2, -1/
348 DATA incys/1, -2, 1, -2/
349 DATA lens/1, 1, 2, 4, 1, 1, 3, 7/
351 DATA cx1/(0.7d0,-0.8d0), (-0.4d0,-0.7d0),
352 + (-0.1d0,-0.9d0), (0.2d0,-0.8d0),
353 + (-0.9d0,-0.4d0), (0.1d0,0.4d0), (-0.6d0,0.6d0)/
354 DATA cy1/(0.6d0,-0.6d0), (-0.9d0,0.5d0),
355 + (0.7d0,-0.6d0), (0.1d0,-0.5d0), (-0.1d0,-0.2d0),
356 + (-0.5d0,-0.3d0), (0.8d0,-0.7d0)/
357 DATA ((ct8(i,j,1),i=1,7),j=1,4)/(0.6d0,-0.6d0),
358 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
359 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
360 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
361 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
362 + (0.0d0,0.0d0), (0.32d0,-1.41d0),
363 + (-1.55d0,0.5d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
364 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
365 + (0.32d0,-1.41d0), (-1.55d0,0.5d0),
366 + (0.03d0,-0.89d0), (-0.38d0,-0.96d0),
367 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
368 DATA ((ct8(i,j,2),i=1,7),j=1,4)/(0.6d0,-0.6d0),
369 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
370 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
371 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
372 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
373 + (0.0d0,0.0d0), (-0.07d0,-0.89d0),
374 + (-0.9d0,0.5d0), (0.42d0,-1.41d0), (0.0d0,0.0d0),
375 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
376 + (0.78d0,0.06d0), (-0.9d0,0.5d0),
377 + (0.06d0,-0.13d0), (0.1d0,-0.5d0),
378 + (-0.77d0,-0.49d0), (-0.5d0,-0.3d0),
380 DATA ((ct8(i,j,3),i=1,7),j=1,4)/(0.6d0,-0.6d0),
381 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
382 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
383 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
384 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
385 + (0.0d0,0.0d0), (-0.07d0,-0.89d0),
386 + (-1.18d0,-0.31d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
387 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
388 + (0.78d0,0.06d0), (-1.54d0,0.97d0),
389 + (0.03d0,-0.89d0), (-0.18d0,-1.31d0),
390 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
391 DATA ((ct8(i,j,4),i=1,7),j=1,4)/(0.6d0,-0.6d0),
392 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
393 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
394 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
395 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
396 + (0.0d0,0.0d0), (0.32d0,-1.41d0), (-0.9d0,0.5d0),
397 + (0.05d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
398 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.32d0,-1.41d0),
399 + (-0.9d0,0.5d0), (0.05d0,-0.6d0), (0.1d0,-0.5d0),
400 + (-0.77d0,-0.49d0), (-0.5d0,-0.3d0),
402 DATA ct7/(0.0d0,0.0d0), (-0.06d0,-0.90d0),
403 + (0.65d0,-0.47d0), (-0.34d0,-1.22d0),
404 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
405 + (-0.59d0,-1.46d0), (-1.04d0,-0.04d0),
406 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
407 + (-0.83d0,0.59d0), (0.07d0,-0.37d0),
408 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
409 + (-0.76d0,-1.15d0), (-1.33d0,-1.82d0)/
410 DATA ct6/(0.0d0,0.0d0), (0.90d0,0.06d0),
411 + (0.91d0,-0.77d0), (1.80d0,-0.10d0),
412 + (0.0d0,0.0d0), (0.90d0,0.06d0), (1.45d0,0.74d0),
413 + (0.20d0,0.90d0), (0.0d0,0.0d0), (0.90d0,0.06d0),
414 + (-0.55d0,0.23d0), (0.83d0,-0.39d0),
415 + (0.0d0,0.0d0), (0.90d0,0.06d0), (1.04d0,0.79d0),
417 DATA ((ct10x(i,j,1),i=1,7),j=1,4)/(0.7d0,-0.8d0),
418 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
419 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
420 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
421 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
422 + (0.0d0,0.0d0), (0.6d0,-0.6d0), (-0.9d0,0.5d0),
423 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
424 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.6d0,-0.6d0),
425 + (-0.9d0,0.5d0), (0.7d0,-0.6d0), (0.1d0,-0.5d0),
426 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
427 DATA ((ct10x(i,j,2),i=1,7),j=1,4)/(0.7d0,-0.8d0),
428 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
429 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
430 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
431 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
432 + (0.0d0,0.0d0), (0.7d0,-0.6d0), (-0.4d0,-0.7d0),
433 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
434 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.8d0,-0.7d0),
435 + (-0.4d0,-0.7d0), (-0.1d0,-0.2d0),
436 + (0.2d0,-0.8d0), (0.7d0,-0.6d0), (0.1d0,0.4d0),
438 DATA ((ct10x(i,j,3),i=1,7),j=1,4)/(0.7d0,-0.8d0),
439 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
440 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
441 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
442 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
443 + (0.0d0,0.0d0), (-0.9d0,0.5d0), (-0.4d0,-0.7d0),
444 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
445 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.1d0,-0.5d0),
446 + (-0.4d0,-0.7d0), (0.7d0,-0.6d0), (0.2d0,-0.8d0),
447 + (-0.9d0,0.5d0), (0.1d0,0.4d0), (0.6d0,-0.6d0)/
448 DATA ((ct10x(i,j,4),i=1,7),j=1,4)/(0.7d0,-0.8d0),
449 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
450 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
451 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
452 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
453 + (0.0d0,0.0d0), (0.6d0,-0.6d0), (0.7d0,-0.6d0),
454 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
455 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.6d0,-0.6d0),
456 + (0.7d0,-0.6d0), (-0.1d0,-0.2d0), (0.8d0,-0.7d0),
457 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
458 DATA ((ct10y(i,j,1),i=1,7),j=1,4)/(0.6d0,-0.6d0),
459 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
460 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
461 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
462 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
463 + (0.0d0,0.0d0), (0.7d0,-0.8d0), (-0.4d0,-0.7d0),
464 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
465 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.7d0,-0.8d0),
466 + (-0.4d0,-0.7d0), (-0.1d0,-0.9d0),
467 + (0.2d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
469 DATA ((ct10y(i,j,2),i=1,7),j=1,4)/(0.6d0,-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.0d0,0.0d0),
472 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
473 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
474 + (0.0d0,0.0d0), (-0.1d0,-0.9d0), (-0.9d0,0.5d0),
475 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
476 + (0.0d0,0.0d0), (0.0d0,0.0d0), (-0.6d0,0.6d0),
477 + (-0.9d0,0.5d0), (-0.9d0,-0.4d0), (0.1d0,-0.5d0),
478 + (-0.1d0,-0.9d0), (-0.5d0,-0.3d0),
480 DATA ((ct10y(i,j,3),i=1,7),j=1,4)/(0.6d0,-0.6d0),
481 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
482 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
483 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
484 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
485 + (0.0d0,0.0d0), (-0.1d0,-0.9d0), (0.7d0,-0.8d0),
486 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
487 + (0.0d0,0.0d0), (0.0d0,0.0d0), (-0.6d0,0.6d0),
488 + (-0.9d0,-0.4d0), (-0.1d0,-0.9d0),
489 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
491 DATA ((ct10y(i,j,4),i=1,7),j=1,4)/(0.6d0,-0.6d0),
492 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
493 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
494 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
495 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
496 + (0.0d0,0.0d0), (0.7d0,-0.8d0), (-0.9d0,0.5d0),
497 + (-0.4d0,-0.7d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
498 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.7d0,-0.8d0),
499 + (-0.9d0,0.5d0), (-0.4d0,-0.7d0), (0.1d0,-0.5d0),
500 + (-0.1d0,-0.9d0), (-0.5d0,-0.3d0),
502 DATA csize1/(0.0d0,0.0d0), (0.9d0,0.9d0),
503 + (1.63d0,1.73d0), (2.90d0,2.78d0)/
504 DATA csize3/(0.0d0,0.0d0), (0.0d0,0.0d0),
505 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
506 + (0.0d0,0.0d0), (0.0d0,0.0d0), (1.17d0,1.17d0),
507 + (1.17d0,1.17d0), (1.17d0,1.17d0),
508 + (1.17d0,1.17d0), (1.17d0,1.17d0),
509 + (1.17d0,1.17d0), (1.17d0,1.17d0)/
510 DATA csize2/(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.0d0,0.0d0), (1.54d0,1.54d0),
513 + (1.54d0,1.54d0), (1.54d0,1.54d0),
514 + (1.54d0,1.54d0), (1.54d0,1.54d0),
515 + (1.54d0,1.54d0), (1.54d0,1.54d0)/
535 cdot(1) = zdotc(n,cx,incx,cy,incy)
536 CALL ctest(1,cdot,ct6(kn,ki),csize1(kn),sfac)
537 ELSE IF (icase.EQ.2)
THEN
539 cdot(1) = zdotu(n,cx,incx,cy,incy)
540 CALL ctest(1,cdot,ct7(kn,ki),csize1(kn),sfac)
541 ELSE IF (icase.EQ.3)
THEN
543 CALL zaxpy(n,ca,cx,incx,cy,incy)
544 CALL ctest(leny,cy,ct8(1,kn,ki),csize2(1,ksize),sfac)
545 ELSE IF (icase.EQ.4)
THEN
547 CALL zcopy(n,cx,incx,cy,incy)
548 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0d0)
549 ELSE IF (icase.EQ.5)
THEN
551 CALL zswap(n,cx,incx,cy,incy)
552 CALL ctest(lenx,cx,ct10x(1,kn,ki),csize3,1.0d0)
553 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0d0)
555 WRITE (nout,*)
' Shouldn''t be here in CHECK2'
563 SUBROUTINE stest(LEN,SCOMP,STRUE,SSIZE,SFAC)
574 DOUBLE PRECISION ZERO
575 parameter (nout=6, zero=0.0d0)
577 DOUBLE PRECISION SFAC
580 DOUBLE PRECISION SCOMP(len), SSIZE(len), STRUE(len)
582 INTEGER ICASE, INCX, INCY, MODE, N
588 DOUBLE PRECISION SDIFF
593 COMMON /combla/icase, n, incx, incy, mode, pass
597 sd = scomp(i) - strue(i)
598 IF (abs(sfac*sd) .LE. abs(ssize(i))*epsilon(zero))
603 IF ( .NOT. pass)
GO TO 20
608 20
WRITE (nout,99997) icase, n, incx, incy, mode, i, scomp(i),
609 + strue(i), sd, ssize(i)
613 99999
FORMAT (
' FAIL')
614 99998
FORMAT (/
' CASE N INCX INCY MODE I ',
615 +
' COMP(I) TRUE(I) DIFFERENCE',
617 99997
FORMAT (1x,i4,i3,3i5,i3,2d36.8,2d12.4)
619 SUBROUTINE stest1(SCOMP1,STRUE1,SSIZE,SFAC)
629 DOUBLE PRECISION SCOMP1, SFAC, STRUE1
631 DOUBLE PRECISION SSIZE(*)
633 DOUBLE PRECISION SCOMP(1), STRUE(1)
640 CALL stest(1,scomp,strue,ssize,sfac)
644 DOUBLE PRECISION FUNCTION sdiff(SA,SB)
649 DOUBLE PRECISION SA, SB
654 SUBROUTINE ctest(LEN,CCOMP,CTRUE,CSIZE,SFAC)
660 DOUBLE PRECISION SFAC
663 COMPLEX*16 CCOMP(len), CSIZE(len), CTRUE(len)
667 DOUBLE PRECISION SCOMP(20), SSIZE(20), STRUE(20)
671 INTRINSIC dimag, dble
674 scomp(2*i-1) = dble(ccomp(i))
675 scomp(2*i) = dimag(ccomp(i))
676 strue(2*i-1) = dble(ctrue(i))
677 strue(2*i) = dimag(ctrue(i))
678 ssize(2*i-1) = dble(csize(i))
679 ssize(2*i) = dimag(csize(i))
682 CALL stest(2*len,scomp,strue,ssize,sfac)
685 SUBROUTINE itest1(ICOMP,ITRUE)
698 INTEGER ICASE, INCX, INCY, MODE, N
703 COMMON /combla/icase, n, incx, incy, mode, pass
705 IF (icomp.EQ.itrue)
GO TO 40
709 IF ( .NOT. pass)
GO TO 20
714 20 id = icomp - itrue
715 WRITE (nout,99997) icase, n, incx, incy, mode, icomp, itrue, id
719 99999
FORMAT (
' FAIL')
720 99998
FORMAT (/
' CASE N INCX INCY MODE ',
721 +
' COMP TRUE DIFFERENCE',
723 99997
FORMAT (1x,i4,i3,3i5,2i36,i12)
subroutine zcopy(N, ZX, INCX, ZY, INCY)
ZCOPY
subroutine zswap(N, ZX, INCX, ZY, INCY)
ZSWAP
subroutine itest1(ICOMP, ITRUE)
subroutine stest1(SCOMP1, STRUE1, SSIZE, SFAC)
real function sdiff(SA, SB)
subroutine stest(LEN, SCOMP, STRUE, SSIZE, SFAC)
subroutine ctest(LEN, CCOMP, CTRUE, CSIZE, SFAC)
subroutine zdscal(N, DA, ZX, INCX)
ZDSCAL
subroutine zaxpy(N, ZA, ZX, INCX, ZY, INCY)
ZAXPY
subroutine zscal(N, ZA, ZX, INCX)
ZSCAL