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)
8499999
FORMAT (
' Complex BLAS Test Program Results',/1x)
8599998
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)
11699999
FORMAT (/
' Test of subprogram number',i3,12x,a6)
126 DOUBLE PRECISION SFAC
128 INTEGER ICASE, INCX, INCY, MODE, N
133 INTEGER I, IX, J, LEN, NP1
135 COMPLEX*16 CTRUE5(8,5,2), CTRUE6(8,5,2), CV(8,5,2), CVR(8),
136 + CX(8), CXR(15), MWPCS(5), MWPCT(5)
137 DOUBLE PRECISION STRUE2(5), STRUE4(5)
138 INTEGER ITRUE3(5), ITRUEC(5)
140 DOUBLE PRECISION DZASUM, DZNRM2
142 EXTERNAL dzasum, dznrm2, izamax
148 COMMON /combla/icase, n, incx, incy, mode, pass
150 DATA sa, ca/0.3d0, (0.4d0,-0.7d0)/
151 DATA ((cv(i,j,1),i=1,8),j=1,5)/(0.1d0,0.1d0),
152 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
153 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
154 + (1.0d0,2.0d0), (0.3d0,-0.4d0), (3.0d0,4.0d0),
155 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
156 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
157 + (0.1d0,-0.3d0), (0.5d0,-0.1d0), (5.0d0,6.0d0),
158 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
159 + (5.0d0,6.0d0), (5.0d0,6.0d0), (0.1d0,0.1d0),
160 + (-0.6d0,0.1d0), (0.1d0,-0.3d0), (7.0d0,8.0d0),
161 + (7.0d0,8.0d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
162 + (7.0d0,8.0d0), (0.3d0,0.1d0), (0.5d0,0.0d0),
163 + (0.0d0,0.5d0), (0.0d0,0.2d0), (2.0d0,3.0d0),
164 + (2.0d0,3.0d0), (2.0d0,3.0d0), (2.0d0,3.0d0)/
165 DATA ((cv(i,j,2),i=1,8),j=1,5)/(0.1d0,0.1d0),
166 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
167 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
168 + (4.0d0,5.0d0), (0.3d0,-0.4d0), (6.0d0,7.0d0),
169 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
170 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
171 + (0.1d0,-0.3d0), (8.0d0,9.0d0), (0.5d0,-0.1d0),
172 + (2.0d0,5.0d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
173 + (2.0d0,5.0d0), (2.0d0,5.0d0), (0.1d0,0.1d0),
174 + (3.0d0,6.0d0), (-0.6d0,0.1d0), (4.0d0,7.0d0),
175 + (0.1d0,-0.3d0), (7.0d0,2.0d0), (7.0d0,2.0d0),
176 + (7.0d0,2.0d0), (0.3d0,0.1d0), (5.0d0,8.0d0),
177 + (0.5d0,0.0d0), (6.0d0,9.0d0), (0.0d0,0.5d0),
178 + (8.0d0,3.0d0), (0.0d0,0.2d0), (9.0d0,4.0d0)/
179 DATA cvr/(8.0d0,8.0d0), (-7.0d0,-7.0d0),
180 + (9.0d0,9.0d0), (5.0d0,5.0d0), (9.0d0,9.0d0),
181 + (8.0d0,8.0d0), (7.0d0,7.0d0), (7.0d0,7.0d0)/
182 DATA strue2/0.0d0, 0.5d0, 0.6d0, 0.7d0, 0.8d0/
183 DATA strue4/0.0d0, 0.7d0, 1.0d0, 1.3d0, 1.6d0/
184 DATA ((ctrue5(i,j,1),i=1,8),j=1,5)/(0.1d0,0.1d0),
185 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
186 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
187 + (1.0d0,2.0d0), (-0.16d0,-0.37d0), (3.0d0,4.0d0),
188 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
189 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
190 + (-0.17d0,-0.19d0), (0.13d0,-0.39d0),
191 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
192 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
193 + (0.11d0,-0.03d0), (-0.17d0,0.46d0),
194 + (-0.17d0,-0.19d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
195 + (7.0d0,8.0d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
196 + (0.19d0,-0.17d0), (0.20d0,-0.35d0),
197 + (0.35d0,0.20d0), (0.14d0,0.08d0),
198 + (2.0d0,3.0d0), (2.0d0,3.0d0), (2.0d0,3.0d0),
200 DATA ((ctrue5(i,j,2),i=1,8),j=1,5)/(0.1d0,0.1d0),
201 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
202 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
203 + (4.0d0,5.0d0), (-0.16d0,-0.37d0), (6.0d0,7.0d0),
204 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
205 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
206 + (-0.17d0,-0.19d0), (8.0d0,9.0d0),
207 + (0.13d0,-0.39d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
208 + (2.0d0,5.0d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
209 + (0.11d0,-0.03d0), (3.0d0,6.0d0),
210 + (-0.17d0,0.46d0), (4.0d0,7.0d0),
211 + (-0.17d0,-0.19d0), (7.0d0,2.0d0), (7.0d0,2.0d0),
212 + (7.0d0,2.0d0), (0.19d0,-0.17d0), (5.0d0,8.0d0),
213 + (0.20d0,-0.35d0), (6.0d0,9.0d0),
214 + (0.35d0,0.20d0), (8.0d0,3.0d0),
215 + (0.14d0,0.08d0), (9.0d0,4.0d0)/
216 DATA ((ctrue6(i,j,1),i=1,8),j=1,5)/(0.1d0,0.1d0),
217 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
218 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
219 + (1.0d0,2.0d0), (0.09d0,-0.12d0), (3.0d0,4.0d0),
220 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
221 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
222 + (0.03d0,-0.09d0), (0.15d0,-0.03d0),
223 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
224 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
225 + (0.03d0,0.03d0), (-0.18d0,0.03d0),
226 + (0.03d0,-0.09d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
227 + (7.0d0,8.0d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
228 + (0.09d0,0.03d0), (0.15d0,0.00d0),
229 + (0.00d0,0.15d0), (0.00d0,0.06d0), (2.0d0,3.0d0),
230 + (2.0d0,3.0d0), (2.0d0,3.0d0), (2.0d0,3.0d0)/
231 DATA ((ctrue6(i,j,2),i=1,8),j=1,5)/(0.1d0,0.1d0),
232 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
233 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
234 + (4.0d0,5.0d0), (0.09d0,-0.12d0), (6.0d0,7.0d0),
235 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
236 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
237 + (0.03d0,-0.09d0), (8.0d0,9.0d0),
238 + (0.15d0,-0.03d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
239 + (2.0d0,5.0d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
240 + (0.03d0,0.03d0), (3.0d0,6.0d0),
241 + (-0.18d0,0.03d0), (4.0d0,7.0d0),
242 + (0.03d0,-0.09d0), (7.0d0,2.0d0), (7.0d0,2.0d0),
243 + (7.0d0,2.0d0), (0.09d0,0.03d0), (5.0d0,8.0d0),
244 + (0.15d0,0.00d0), (6.0d0,9.0d0), (0.00d0,0.15d0),
245 + (8.0d0,3.0d0), (0.00d0,0.06d0), (9.0d0,4.0d0)/
246 DATA itrue3/0, 1, 2, 2, 2/
247 DATA itruec/0, 1, 1, 1, 1/
255 cx(i) = cv(i,np1,incx)
259 CALL stest1(dznrm2(n,cx,incx),strue2(np1),strue2(np1),
261 ELSE IF (icase.EQ.7)
THEN
263 CALL stest1(dzasum(n,cx,incx),strue4(np1),strue4(np1),
265 ELSE IF (icase.EQ.8)
THEN
267 CALL zscal(n,ca,cx,incx)
268 CALL ctest(len,cx,ctrue5(1,np1,incx),ctrue5(1,np1,incx),
270 ELSE IF (icase.EQ.9)
THEN
273 CALL ctest(len,cx,ctrue6(1,np1,incx),ctrue6(1,np1,incx),
275 ELSE IF (icase.EQ.10)
THEN
277 CALL itest1(izamax(n,cx,incx),itrue3(np1))
279 cx(i) = (42.0d0,43.0d0)
281 CALL itest1(izamax(n,cx,incx),itruec(np1))
283 WRITE (nout,*)
' Shouldn''t be here in CHECK1'
288 IF (icase.EQ.10)
THEN
295 CALL itest1(izamax(n,cxr,incx),3)
305 mwpct(i) = (0.0d0,0.0d0)
306 mwpcs(i) = (1.0d0,1.0d0)
308 CALL zscal(5,ca,cx,incx)
309 CALL ctest(5,cx,mwpct,mwpcs,sfac)
310 ELSE IF (icase.EQ.9)
THEN
315 mwpct(i) = (0.0d0,0.0d0)
316 mwpcs(i) = (1.0d0,1.0d0)
319 CALL ctest(5,cx,mwpct,mwpcs,sfac)
327 CALL ctest(5,cx,mwpct,mwpcs,sfac)
335 CALL ctest(5,cx,mwpct,mwpcs,sfac)
347 DOUBLE PRECISION SFAC
349 INTEGER ICASE, INCX, INCY, MODE, N
353 INTEGER I, J, KI, KN, KSIZE, LENX, LENY, LINCX, LINCY,
356 COMPLEX*16 CDOT(1), CSIZE1(4), CSIZE2(7,2), CSIZE3(14),
357 + CT10X(7,4,4), CT10Y(7,4,4), CT6(4,4), CT7(4,4),
358 + CT8(7,4,4), CTY0(1), CX(7), CX0(1), CX1(7),
359 + CY(7), CY0(1), CY1(7)
360 INTEGER INCXS(4), INCYS(4), LENS(4,2), NS(4)
362 COMPLEX*16 ZDOTC, ZDOTU
363 EXTERNAL zdotc, zdotu
369 COMMON /combla/icase, n, incx, incy, mode, pass
371 DATA ca/(0.4d0,-0.7d0)/
372 DATA incxs/1, 2, -2, -1/
373 DATA incys/1, -2, 1, -2/
374 DATA lens/1, 1, 2, 4, 1, 1, 3, 7/
376 DATA cx1/(0.7d0,-0.8d0), (-0.4d0,-0.7d0),
377 + (-0.1d0,-0.9d0), (0.2d0,-0.8d0),
378 + (-0.9d0,-0.4d0), (0.1d0,0.4d0), (-0.6d0,0.6d0)/
379 DATA cy1/(0.6d0,-0.6d0), (-0.9d0,0.5d0),
380 + (0.7d0,-0.6d0), (0.1d0,-0.5d0), (-0.1d0,-0.2d0),
381 + (-0.5d0,-0.3d0), (0.8d0,-0.7d0)/
382 DATA ((ct8(i,j,1),i=1,7),j=1,4)/(0.6d0,-0.6d0),
383 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
384 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
385 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
386 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
387 + (0.0d0,0.0d0), (0.32d0,-1.41d0),
388 + (-1.55d0,0.5d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
389 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
390 + (0.32d0,-1.41d0), (-1.55d0,0.5d0),
391 + (0.03d0,-0.89d0), (-0.38d0,-0.96d0),
392 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
393 DATA ((ct8(i,j,2),i=1,7),j=1,4)/(0.6d0,-0.6d0),
394 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
395 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
396 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
397 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
398 + (0.0d0,0.0d0), (-0.07d0,-0.89d0),
399 + (-0.9d0,0.5d0), (0.42d0,-1.41d0), (0.0d0,0.0d0),
400 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
401 + (0.78d0,0.06d0), (-0.9d0,0.5d0),
402 + (0.06d0,-0.13d0), (0.1d0,-0.5d0),
403 + (-0.77d0,-0.49d0), (-0.5d0,-0.3d0),
405 DATA ((ct8(i,j,3),i=1,7),j=1,4)/(0.6d0,-0.6d0),
406 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
407 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
408 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
409 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
410 + (0.0d0,0.0d0), (-0.07d0,-0.89d0),
411 + (-1.18d0,-0.31d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
412 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
413 + (0.78d0,0.06d0), (-1.54d0,0.97d0),
414 + (0.03d0,-0.89d0), (-0.18d0,-1.31d0),
415 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
416 DATA ((ct8(i,j,4),i=1,7),j=1,4)/(0.6d0,-0.6d0),
417 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
418 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
419 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
420 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
421 + (0.0d0,0.0d0), (0.32d0,-1.41d0), (-0.9d0,0.5d0),
422 + (0.05d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
423 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.32d0,-1.41d0),
424 + (-0.9d0,0.5d0), (0.05d0,-0.6d0), (0.1d0,-0.5d0),
425 + (-0.77d0,-0.49d0), (-0.5d0,-0.3d0),
427 DATA ct7/(0.0d0,0.0d0), (-0.06d0,-0.90d0),
428 + (0.65d0,-0.47d0), (-0.34d0,-1.22d0),
429 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
430 + (-0.59d0,-1.46d0), (-1.04d0,-0.04d0),
431 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
432 + (-0.83d0,0.59d0), (0.07d0,-0.37d0),
433 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
434 + (-0.76d0,-1.15d0), (-1.33d0,-1.82d0)/
435 DATA ct6/(0.0d0,0.0d0), (0.90d0,0.06d0),
436 + (0.91d0,-0.77d0), (1.80d0,-0.10d0),
437 + (0.0d0,0.0d0), (0.90d0,0.06d0), (1.45d0,0.74d0),
438 + (0.20d0,0.90d0), (0.0d0,0.0d0), (0.90d0,0.06d0),
439 + (-0.55d0,0.23d0), (0.83d0,-0.39d0),
440 + (0.0d0,0.0d0), (0.90d0,0.06d0), (1.04d0,0.79d0),
442 DATA ((ct10x(i,j,1),i=1,7),j=1,4)/(0.7d0,-0.8d0),
443 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
444 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
445 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
446 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
447 + (0.0d0,0.0d0), (0.6d0,-0.6d0), (-0.9d0,0.5d0),
448 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
449 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.6d0,-0.6d0),
450 + (-0.9d0,0.5d0), (0.7d0,-0.6d0), (0.1d0,-0.5d0),
451 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
452 DATA ((ct10x(i,j,2),i=1,7),j=1,4)/(0.7d0,-0.8d0),
453 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
454 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
455 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
456 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
457 + (0.0d0,0.0d0), (0.7d0,-0.6d0), (-0.4d0,-0.7d0),
458 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
459 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.8d0,-0.7d0),
460 + (-0.4d0,-0.7d0), (-0.1d0,-0.2d0),
461 + (0.2d0,-0.8d0), (0.7d0,-0.6d0), (0.1d0,0.4d0),
463 DATA ((ct10x(i,j,3),i=1,7),j=1,4)/(0.7d0,-0.8d0),
464 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
465 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
466 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
467 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
468 + (0.0d0,0.0d0), (-0.9d0,0.5d0), (-0.4d0,-0.7d0),
469 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
470 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.1d0,-0.5d0),
471 + (-0.4d0,-0.7d0), (0.7d0,-0.6d0), (0.2d0,-0.8d0),
472 + (-0.9d0,0.5d0), (0.1d0,0.4d0), (0.6d0,-0.6d0)/
473 DATA ((ct10x(i,j,4),i=1,7),j=1,4)/(0.7d0,-0.8d0),
474 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
475 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
476 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
477 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
478 + (0.0d0,0.0d0), (0.6d0,-0.6d0), (0.7d0,-0.6d0),
479 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
480 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.6d0,-0.6d0),
481 + (0.7d0,-0.6d0), (-0.1d0,-0.2d0), (0.8d0,-0.7d0),
482 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
483 DATA ((ct10y(i,j,1),i=1,7),j=1,4)/(0.6d0,-0.6d0),
484 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
485 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
486 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
487 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
488 + (0.0d0,0.0d0), (0.7d0,-0.8d0), (-0.4d0,-0.7d0),
489 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
490 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.7d0,-0.8d0),
491 + (-0.4d0,-0.7d0), (-0.1d0,-0.9d0),
492 + (0.2d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
494 DATA ((ct10y(i,j,2),i=1,7),j=1,4)/(0.6d0,-0.6d0),
495 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
496 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
497 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
498 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
499 + (0.0d0,0.0d0), (-0.1d0,-0.9d0), (-0.9d0,0.5d0),
500 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
501 + (0.0d0,0.0d0), (0.0d0,0.0d0), (-0.6d0,0.6d0),
502 + (-0.9d0,0.5d0), (-0.9d0,-0.4d0), (0.1d0,-0.5d0),
503 + (-0.1d0,-0.9d0), (-0.5d0,-0.3d0),
505 DATA ((ct10y(i,j,3),i=1,7),j=1,4)/(0.6d0,-0.6d0),
506 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
507 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
508 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
509 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
510 + (0.0d0,0.0d0), (-0.1d0,-0.9d0), (0.7d0,-0.8d0),
511 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
512 + (0.0d0,0.0d0), (0.0d0,0.0d0), (-0.6d0,0.6d0),
513 + (-0.9d0,-0.4d0), (-0.1d0,-0.9d0),
514 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
516 DATA ((ct10y(i,j,4),i=1,7),j=1,4)/(0.6d0,-0.6d0),
517 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
518 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
519 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
520 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
521 + (0.0d0,0.0d0), (0.7d0,-0.8d0), (-0.9d0,0.5d0),
522 + (-0.4d0,-0.7d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
523 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.7d0,-0.8d0),
524 + (-0.9d0,0.5d0), (-0.4d0,-0.7d0), (0.1d0,-0.5d0),
525 + (-0.1d0,-0.9d0), (-0.5d0,-0.3d0),
527 DATA csize1/(0.0d0,0.0d0), (0.9d0,0.9d0),
528 + (1.63d0,1.73d0), (2.90d0,2.78d0)/
529 DATA csize3/(0.0d0,0.0d0), (0.0d0,0.0d0),
530 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
531 + (0.0d0,0.0d0), (0.0d0,0.0d0), (1.17d0,1.17d0),
532 + (1.17d0,1.17d0), (1.17d0,1.17d0),
533 + (1.17d0,1.17d0), (1.17d0,1.17d0),
534 + (1.17d0,1.17d0), (1.17d0,1.17d0)/
535 DATA csize2/(0.0d0,0.0d0), (0.0d0,0.0d0),
536 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
537 + (0.0d0,0.0d0), (0.0d0,0.0d0), (1.54d0,1.54d0),
538 + (1.54d0,1.54d0), (1.54d0,1.54d0),
539 + (1.54d0,1.54d0), (1.54d0,1.54d0),
540 + (1.54d0,1.54d0), (1.54d0,1.54d0)/
560 cdot(1) = zdotc(n,cx,incx,cy,incy)
561 CALL ctest(1,cdot,ct6(kn,ki),csize1(kn),sfac)
562 ELSE IF (icase.EQ.2)
THEN
564 cdot(1) = zdotu(n,cx,incx,cy,incy)
565 CALL ctest(1,cdot,ct7(kn,ki),csize1(kn),sfac)
566 ELSE IF (icase.EQ.3)
THEN
568 CALL zaxpy(n,ca,cx,incx,cy,incy)
569 CALL ctest(leny,cy,ct8(1,kn,ki),csize2(1,ksize),sfac)
570 ELSE IF (icase.EQ.4)
THEN
572 CALL zcopy(n,cx,incx,cy,incy)
573 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0d0)
575 cx0(1) = (42.0d0,43.0d0)
576 cy0(1) = (44.0d0,45.0d0)
586 CALL zcopy(n,cx0,incx,cy0,incy)
587 CALL ctest(1,cy0,cty0,csize3,1.0d0)
591 ELSE IF (icase.EQ.5)
THEN
593 CALL zswap(n,cx,incx,cy,incy)
594 CALL ctest(lenx,cx,ct10x(1,kn,ki),csize3,1.0d0)
595 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0d0)
597 WRITE (nout,*)
' Shouldn''t be here in CHECK2'
608 SUBROUTINE stest(LEN,SCOMP,STRUE,SSIZE,SFAC)
619 DOUBLE PRECISION ZERO
620 parameter(nout=6, zero=0.0d0)
622 DOUBLE PRECISION SFAC
625 DOUBLE PRECISION SCOMP(LEN), SSIZE(LEN), STRUE(LEN)
627 INTEGER ICASE, INCX, INCY, MODE, N
633 DOUBLE PRECISION SDIFF
638 COMMON /combla/icase, n, incx, incy, mode, pass
642 sd = scomp(i) - strue(i)
643 IF (abs(sfac*sd) .LE. abs(ssize(i))*epsilon(zero))
648 IF ( .NOT. pass)
GO TO 20
653 20
WRITE (nout,99997) icase, n, incx, incy, mode, i, scomp(i),
654 + strue(i), sd, ssize(i)
65899999
FORMAT (
' FAIL')
65999998
FORMAT (/
' CASE N INCX INCY MODE I ',
660 +
' COMP(I) TRUE(I) DIFFERENCE',
66299997
FORMAT (1x,i4,i3,3i5,i3,2d36.8,2d12.4)
667 SUBROUTINE stest1(SCOMP1,STRUE1,SSIZE,SFAC)
677 DOUBLE PRECISION SCOMP1, SFAC, STRUE1
679 DOUBLE PRECISION SSIZE(*)
681 DOUBLE PRECISION SCOMP(1), STRUE(1)
688 CALL stest(1,scomp,strue,ssize,sfac)
695 DOUBLE PRECISION FUNCTION sdiff(SA,SB)
700 DOUBLE PRECISION sa, sb
708 SUBROUTINE ctest(LEN,CCOMP,CTRUE,CSIZE,SFAC)
714 DOUBLE PRECISION SFAC
717 COMPLEX*16 CCOMP(LEN), CSIZE(LEN), CTRUE(LEN)
721 DOUBLE PRECISION SCOMP(20), SSIZE(20), STRUE(20)
725 INTRINSIC dimag, dble
728 scomp(2*i-1) = dble(ccomp(i))
729 scomp(2*i) = dimag(ccomp(i))
730 strue(2*i-1) = dble(ctrue(i))
731 strue(2*i) = dimag(ctrue(i))
732 ssize(2*i-1) = dble(csize(i))
733 ssize(2*i) = dimag(csize(i))
736 CALL stest(2*len,scomp,strue,ssize,sfac)
755 INTEGER ICASE, INCX, INCY, MODE, N
760 COMMON /combla/icase, n, incx, incy, mode, pass
762 IF (icomp.EQ.itrue)
GO TO 40
766 IF ( .NOT. pass)
GO TO 20
771 20 id = icomp - itrue
772 WRITE (nout,99997) icase, n, incx, incy, mode, icomp, itrue, id
77699999
FORMAT (
' FAIL')
77799998
FORMAT (/
' CASE N INCX INCY MODE ',
778 +
' COMP TRUE DIFFERENCE',
78099997
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