48 INTEGER icase, incx, incy, mode, n
56 COMMON /combla/icase, n, incx, incy, mode, pass
58 DATA sfac/9.765625e-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)
128 INTEGER ICASE, INCX, INCY, MODE, N
133 INTEGER I, IX, J, LEN, NP1
135 COMPLEX CTRUE5(8,5,2), CTRUE6(8,5,2), CV(8,5,2), CVR(8),
136 + CX(8), CXR(15), MWPCS(5), MWPCT(5)
137 REAL STRUE2(5), STRUE4(5)
138 INTEGER ITRUE3(5), ITRUEC(5)
142 EXTERNAL scasum, scnrm2, icamax
148 COMMON /combla/icase, n, incx, incy, mode, pass
150 DATA sa, ca/0.3e0, (0.4e0,-0.7e0)/
151 DATA ((cv(i,j,1),i=1,8),j=1,5)/(0.1e0,0.1e0),
152 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
153 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
154 + (1.0e0,2.0e0), (0.3e0,-0.4e0), (3.0e0,4.0e0),
155 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
156 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
157 + (0.1e0,-0.3e0), (0.5e0,-0.1e0), (5.0e0,6.0e0),
158 + (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
159 + (5.0e0,6.0e0), (5.0e0,6.0e0), (0.1e0,0.1e0),
160 + (-0.6e0,0.1e0), (0.1e0,-0.3e0), (7.0e0,8.0e0),
161 + (7.0e0,8.0e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
162 + (7.0e0,8.0e0), (0.3e0,0.1e0), (0.5e0,0.0e0),
163 + (0.0e0,0.5e0), (0.0e0,0.2e0), (2.0e0,3.0e0),
164 + (2.0e0,3.0e0), (2.0e0,3.0e0), (2.0e0,3.0e0)/
165 DATA ((cv(i,j,2),i=1,8),j=1,5)/(0.1e0,0.1e0),
166 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
167 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
168 + (4.0e0,5.0e0), (0.3e0,-0.4e0), (6.0e0,7.0e0),
169 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
170 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
171 + (0.1e0,-0.3e0), (8.0e0,9.0e0), (0.5e0,-0.1e0),
172 + (2.0e0,5.0e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
173 + (2.0e0,5.0e0), (2.0e0,5.0e0), (0.1e0,0.1e0),
174 + (3.0e0,6.0e0), (-0.6e0,0.1e0), (4.0e0,7.0e0),
175 + (0.1e0,-0.3e0), (7.0e0,2.0e0), (7.0e0,2.0e0),
176 + (7.0e0,2.0e0), (0.3e0,0.1e0), (5.0e0,8.0e0),
177 + (0.5e0,0.0e0), (6.0e0,9.0e0), (0.0e0,0.5e0),
178 + (8.0e0,3.0e0), (0.0e0,0.2e0), (9.0e0,4.0e0)/
179 DATA cvr/(8.0e0,8.0e0), (-7.0e0,-7.0e0),
180 + (9.0e0,9.0e0), (5.0e0,5.0e0), (9.0e0,9.0e0),
181 + (8.0e0,8.0e0), (7.0e0,7.0e0), (7.0e0,7.0e0)/
182 DATA strue2/0.0e0, 0.5e0, 0.6e0, 0.7e0, 0.8e0/
183 DATA strue4/0.0e0, 0.7e0, 1.0e0, 1.3e0, 1.6e0/
184 DATA ((ctrue5(i,j,1),i=1,8),j=1,5)/(0.1e0,0.1e0),
185 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
186 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
187 + (1.0e0,2.0e0), (-0.16e0,-0.37e0), (3.0e0,4.0e0),
188 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
189 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
190 + (-0.17e0,-0.19e0), (0.13e0,-0.39e0),
191 + (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
192 + (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
193 + (0.11e0,-0.03e0), (-0.17e0,0.46e0),
194 + (-0.17e0,-0.19e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
195 + (7.0e0,8.0e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
196 + (0.19e0,-0.17e0), (0.20e0,-0.35e0),
197 + (0.35e0,0.20e0), (0.14e0,0.08e0),
198 + (2.0e0,3.0e0), (2.0e0,3.0e0), (2.0e0,3.0e0),
200 DATA ((ctrue5(i,j,2),i=1,8),j=1,5)/(0.1e0,0.1e0),
201 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
202 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
203 + (4.0e0,5.0e0), (-0.16e0,-0.37e0), (6.0e0,7.0e0),
204 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
205 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
206 + (-0.17e0,-0.19e0), (8.0e0,9.0e0),
207 + (0.13e0,-0.39e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
208 + (2.0e0,5.0e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
209 + (0.11e0,-0.03e0), (3.0e0,6.0e0),
210 + (-0.17e0,0.46e0), (4.0e0,7.0e0),
211 + (-0.17e0,-0.19e0), (7.0e0,2.0e0), (7.0e0,2.0e0),
212 + (7.0e0,2.0e0), (0.19e0,-0.17e0), (5.0e0,8.0e0),
213 + (0.20e0,-0.35e0), (6.0e0,9.0e0),
214 + (0.35e0,0.20e0), (8.0e0,3.0e0),
215 + (0.14e0,0.08e0), (9.0e0,4.0e0)/
216 DATA ((ctrue6(i,j,1),i=1,8),j=1,5)/(0.1e0,0.1e0),
217 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
218 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
219 + (1.0e0,2.0e0), (0.09e0,-0.12e0), (3.0e0,4.0e0),
220 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
221 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
222 + (0.03e0,-0.09e0), (0.15e0,-0.03e0),
223 + (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
224 + (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
225 + (0.03e0,0.03e0), (-0.18e0,0.03e0),
226 + (0.03e0,-0.09e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
227 + (7.0e0,8.0e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
228 + (0.09e0,0.03e0), (0.15e0,0.00e0),
229 + (0.00e0,0.15e0), (0.00e0,0.06e0), (2.0e0,3.0e0),
230 + (2.0e0,3.0e0), (2.0e0,3.0e0), (2.0e0,3.0e0)/
231 DATA ((ctrue6(i,j,2),i=1,8),j=1,5)/(0.1e0,0.1e0),
232 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
233 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
234 + (4.0e0,5.0e0), (0.09e0,-0.12e0), (6.0e0,7.0e0),
235 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
236 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
237 + (0.03e0,-0.09e0), (8.0e0,9.0e0),
238 + (0.15e0,-0.03e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
239 + (2.0e0,5.0e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
240 + (0.03e0,0.03e0), (3.0e0,6.0e0),
241 + (-0.18e0,0.03e0), (4.0e0,7.0e0),
242 + (0.03e0,-0.09e0), (7.0e0,2.0e0), (7.0e0,2.0e0),
243 + (7.0e0,2.0e0), (0.09e0,0.03e0), (5.0e0,8.0e0),
244 + (0.15e0,0.00e0), (6.0e0,9.0e0), (0.00e0,0.15e0),
245 + (8.0e0,3.0e0), (0.00e0,0.06e0), (9.0e0,4.0e0)/
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(scnrm2(n,cx,incx),strue2(np1),strue2(np1),
261 ELSE IF (icase.EQ.7)
THEN
263 CALL stest1(scasum(n,cx,incx),strue4(np1),strue4(np1),
265 ELSE IF (icase.EQ.8)
THEN
267 CALL cscal(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(icamax(n,cx,incx),itrue3(np1))
279 cx(i) = (42.0e0,43.0e0)
281 CALL itest1(icamax(n,cx,incx),itruec(np1))
283 WRITE (nout,*)
' Shouldn''t be here in CHECK1'
288 IF (icase.EQ.10)
THEN
295 CALL itest1(icamax(n,cxr,incx),3)
305 mwpct(i) = (0.0e0,0.0e0)
306 mwpcs(i) = (1.0e0,1.0e0)
308 CALL cscal(5,ca,cx,incx)
309 CALL ctest(5,cx,mwpct,mwpcs,sfac)
310 ELSE IF (icase.EQ.9)
THEN
315 mwpct(i) = (0.0e0,0.0e0)
316 mwpcs(i) = (1.0e0,1.0e0)
319 CALL ctest(5,cx,mwpct,mwpcs,sfac)
327 CALL ctest(5,cx,mwpct,mwpcs,sfac)
335 CALL ctest(5,cx,mwpct,mwpcs,sfac)
349 INTEGER ICASE, INCX, INCY, MODE, N
353 INTEGER I, J, KI, KN, KSIZE, LENX, LENY, LINCX, LINCY,
356 COMPLEX 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)
363 EXTERNAL cdotc, cdotu
369 COMMON /combla/icase, n, incx, incy, mode, pass
371 DATA ca/(0.4e0,-0.7e0)/
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.7e0,-0.8e0), (-0.4e0,-0.7e0),
377 + (-0.1e0,-0.9e0), (0.2e0,-0.8e0),
378 + (-0.9e0,-0.4e0), (0.1e0,0.4e0), (-0.6e0,0.6e0)/
379 DATA cy1/(0.6e0,-0.6e0), (-0.9e0,0.5e0),
380 + (0.7e0,-0.6e0), (0.1e0,-0.5e0), (-0.1e0,-0.2e0),
381 + (-0.5e0,-0.3e0), (0.8e0,-0.7e0)/
382 DATA ((ct8(i,j,1),i=1,7),j=1,4)/(0.6e0,-0.6e0),
383 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
384 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
385 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
386 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
387 + (0.0e0,0.0e0), (0.32e0,-1.41e0),
388 + (-1.55e0,0.5e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
389 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
390 + (0.32e0,-1.41e0), (-1.55e0,0.5e0),
391 + (0.03e0,-0.89e0), (-0.38e0,-0.96e0),
392 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
393 DATA ((ct8(i,j,2),i=1,7),j=1,4)/(0.6e0,-0.6e0),
394 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
395 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
396 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
397 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
398 + (0.0e0,0.0e0), (-0.07e0,-0.89e0),
399 + (-0.9e0,0.5e0), (0.42e0,-1.41e0), (0.0e0,0.0e0),
400 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
401 + (0.78e0,0.06e0), (-0.9e0,0.5e0),
402 + (0.06e0,-0.13e0), (0.1e0,-0.5e0),
403 + (-0.77e0,-0.49e0), (-0.5e0,-0.3e0),
405 DATA ((ct8(i,j,3),i=1,7),j=1,4)/(0.6e0,-0.6e0),
406 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
407 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
408 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
409 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
410 + (0.0e0,0.0e0), (-0.07e0,-0.89e0),
411 + (-1.18e0,-0.31e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
412 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
413 + (0.78e0,0.06e0), (-1.54e0,0.97e0),
414 + (0.03e0,-0.89e0), (-0.18e0,-1.31e0),
415 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
416 DATA ((ct8(i,j,4),i=1,7),j=1,4)/(0.6e0,-0.6e0),
417 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
418 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
419 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
420 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
421 + (0.0e0,0.0e0), (0.32e0,-1.41e0), (-0.9e0,0.5e0),
422 + (0.05e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
423 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.32e0,-1.41e0),
424 + (-0.9e0,0.5e0), (0.05e0,-0.6e0), (0.1e0,-0.5e0),
425 + (-0.77e0,-0.49e0), (-0.5e0,-0.3e0),
427 DATA ct7/(0.0e0,0.0e0), (-0.06e0,-0.90e0),
428 + (0.65e0,-0.47e0), (-0.34e0,-1.22e0),
429 + (0.0e0,0.0e0), (-0.06e0,-0.90e0),
430 + (-0.59e0,-1.46e0), (-1.04e0,-0.04e0),
431 + (0.0e0,0.0e0), (-0.06e0,-0.90e0),
432 + (-0.83e0,0.59e0), (0.07e0,-0.37e0),
433 + (0.0e0,0.0e0), (-0.06e0,-0.90e0),
434 + (-0.76e0,-1.15e0), (-1.33e0,-1.82e0)/
435 DATA ct6/(0.0e0,0.0e0), (0.90e0,0.06e0),
436 + (0.91e0,-0.77e0), (1.80e0,-0.10e0),
437 + (0.0e0,0.0e0), (0.90e0,0.06e0), (1.45e0,0.74e0),
438 + (0.20e0,0.90e0), (0.0e0,0.0e0), (0.90e0,0.06e0),
439 + (-0.55e0,0.23e0), (0.83e0,-0.39e0),
440 + (0.0e0,0.0e0), (0.90e0,0.06e0), (1.04e0,0.79e0),
442 DATA ((ct10x(i,j,1),i=1,7),j=1,4)/(0.7e0,-0.8e0),
443 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
444 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
445 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
446 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
447 + (0.0e0,0.0e0), (0.6e0,-0.6e0), (-0.9e0,0.5e0),
448 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
449 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.6e0,-0.6e0),
450 + (-0.9e0,0.5e0), (0.7e0,-0.6e0), (0.1e0,-0.5e0),
451 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
452 DATA ((ct10x(i,j,2),i=1,7),j=1,4)/(0.7e0,-0.8e0),
453 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
454 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
455 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
456 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
457 + (0.0e0,0.0e0), (0.7e0,-0.6e0), (-0.4e0,-0.7e0),
458 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
459 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.8e0,-0.7e0),
460 + (-0.4e0,-0.7e0), (-0.1e0,-0.2e0),
461 + (0.2e0,-0.8e0), (0.7e0,-0.6e0), (0.1e0,0.4e0),
463 DATA ((ct10x(i,j,3),i=1,7),j=1,4)/(0.7e0,-0.8e0),
464 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
465 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
466 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
467 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
468 + (0.0e0,0.0e0), (-0.9e0,0.5e0), (-0.4e0,-0.7e0),
469 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
470 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.1e0,-0.5e0),
471 + (-0.4e0,-0.7e0), (0.7e0,-0.6e0), (0.2e0,-0.8e0),
472 + (-0.9e0,0.5e0), (0.1e0,0.4e0), (0.6e0,-0.6e0)/
473 DATA ((ct10x(i,j,4),i=1,7),j=1,4)/(0.7e0,-0.8e0),
474 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
475 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
476 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
477 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
478 + (0.0e0,0.0e0), (0.6e0,-0.6e0), (0.7e0,-0.6e0),
479 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
480 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.6e0,-0.6e0),
481 + (0.7e0,-0.6e0), (-0.1e0,-0.2e0), (0.8e0,-0.7e0),
482 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
483 DATA ((ct10y(i,j,1),i=1,7),j=1,4)/(0.6e0,-0.6e0),
484 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
485 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
486 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
487 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
488 + (0.0e0,0.0e0), (0.7e0,-0.8e0), (-0.4e0,-0.7e0),
489 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
490 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.7e0,-0.8e0),
491 + (-0.4e0,-0.7e0), (-0.1e0,-0.9e0),
492 + (0.2e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
494 DATA ((ct10y(i,j,2),i=1,7),j=1,4)/(0.6e0,-0.6e0),
495 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
496 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
497 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
498 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
499 + (0.0e0,0.0e0), (-0.1e0,-0.9e0), (-0.9e0,0.5e0),
500 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
501 + (0.0e0,0.0e0), (0.0e0,0.0e0), (-0.6e0,0.6e0),
502 + (-0.9e0,0.5e0), (-0.9e0,-0.4e0), (0.1e0,-0.5e0),
503 + (-0.1e0,-0.9e0), (-0.5e0,-0.3e0),
505 DATA ((ct10y(i,j,3),i=1,7),j=1,4)/(0.6e0,-0.6e0),
506 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
507 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
508 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
509 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
510 + (0.0e0,0.0e0), (-0.1e0,-0.9e0), (0.7e0,-0.8e0),
511 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
512 + (0.0e0,0.0e0), (0.0e0,0.0e0), (-0.6e0,0.6e0),
513 + (-0.9e0,-0.4e0), (-0.1e0,-0.9e0),
514 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
516 DATA ((ct10y(i,j,4),i=1,7),j=1,4)/(0.6e0,-0.6e0),
517 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
518 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
519 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
520 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
521 + (0.0e0,0.0e0), (0.7e0,-0.8e0), (-0.9e0,0.5e0),
522 + (-0.4e0,-0.7e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
523 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.7e0,-0.8e0),
524 + (-0.9e0,0.5e0), (-0.4e0,-0.7e0), (0.1e0,-0.5e0),
525 + (-0.1e0,-0.9e0), (-0.5e0,-0.3e0),
527 DATA csize1/(0.0e0,0.0e0), (0.9e0,0.9e0),
528 + (1.63e0,1.73e0), (2.90e0,2.78e0)/
529 DATA csize3/(0.0e0,0.0e0), (0.0e0,0.0e0),
530 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
531 + (0.0e0,0.0e0), (0.0e0,0.0e0), (1.17e0,1.17e0),
532 + (1.17e0,1.17e0), (1.17e0,1.17e0),
533 + (1.17e0,1.17e0), (1.17e0,1.17e0),
534 + (1.17e0,1.17e0), (1.17e0,1.17e0)/
535 DATA csize2/(0.0e0,0.0e0), (0.0e0,0.0e0),
536 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
537 + (0.0e0,0.0e0), (0.0e0,0.0e0), (1.54e0,1.54e0),
538 + (1.54e0,1.54e0), (1.54e0,1.54e0),
539 + (1.54e0,1.54e0), (1.54e0,1.54e0),
540 + (1.54e0,1.54e0), (1.54e0,1.54e0)/
560 cdot(1) = cdotc(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) = cdotu(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 caxpy(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 ccopy(n,cx,incx,cy,incy)
573 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0e0)
575 cx0(1) = (42.0e0,43.0e0)
576 cy0(1) = (44.0e0,45.0e0)
586 CALL ccopy(n,cx0,incx,cy0,incy)
587 CALL ctest(1,cy0,cty0,csize3,1.0e0)
591 ELSE IF (icase.EQ.5)
THEN
593 CALL cswap(n,cx,incx,cy,incy)
594 CALL ctest(lenx,cx,ct10x(1,kn,ki),csize3,1.0e0)
595 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0e0)
597 WRITE (nout,*)
' Shouldn''t be here in CHECK2'
608 SUBROUTINE stest(LEN,SCOMP,STRUE,SSIZE,SFAC)
620 parameter(nout=6, zero=0.0e0)
625 REAL SCOMP(LEN), SSIZE(LEN), STRUE(LEN)
627 INTEGER ICASE, INCX, INCY, MODE, N
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,2e36.8,2e12.4)
667 SUBROUTINE stest1(SCOMP1,STRUE1,SSIZE,SFAC)
677 REAL SCOMP1, SFAC, STRUE1
681 REAL SCOMP(1), STRUE(1)
688 CALL stest(1,scomp,strue,ssize,sfac)
708 SUBROUTINE ctest(LEN,CCOMP,CTRUE,CSIZE,SFAC)
717 COMPLEX CCOMP(LEN), CSIZE(LEN), CTRUE(LEN)
721 REAL SCOMP(20), SSIZE(20), STRUE(20)
725 INTRINSIC aimag, real
728 scomp(2*i-1) = real(ccomp(i))
729 scomp(2*i) = aimag(ccomp(i))
730 strue(2*i-1) = real(ctrue(i))
731 strue(2*i) = aimag(ctrue(i))
732 ssize(2*i-1) = real(csize(i))
733 ssize(2*i) = aimag(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 ccopy(N, CX, INCX, CY, INCY)
CCOPY
subroutine csscal(N, SA, CX, INCX)
CSSCAL
subroutine caxpy(N, CA, CX, INCX, CY, INCY)
CAXPY
subroutine cswap(N, CX, INCX, CY, INCY)
CSWAP
subroutine cscal(N, CA, CX, INCX)
CSCAL