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)
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)
122 INTEGER ICASE, INCX, INCY, MODE, N
127 INTEGER I, IX, J, LEN, NP1
129 COMPLEX CTRUE5(8,5,2), CTRUE6(8,5,2), CV(8,5,2), CVR(8),
130 + CX(8), CXR(15), MWPCS(5), MWPCT(5)
131 REAL STRUE2(5), STRUE4(5)
132 INTEGER ITRUE3(5), ITRUEC(5)
136 EXTERNAL scasum, scnrm2, icamax
142 COMMON /combla/icase, n, incx, incy, mode, pass
144 DATA sa, ca/0.3e0, (0.4e0,-0.7e0)/
145 DATA ((cv(i,j,1),i=1,8),j=1,5)/(0.1e0,0.1e0),
146 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
147 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
148 + (1.0e0,2.0e0), (0.3e0,-0.4e0), (3.0e0,4.0e0),
149 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
150 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
151 + (0.1e0,-0.3e0), (0.5e0,-0.1e0), (5.0e0,6.0e0),
152 + (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
153 + (5.0e0,6.0e0), (5.0e0,6.0e0), (0.1e0,0.1e0),
154 + (-0.6e0,0.1e0), (0.1e0,-0.3e0), (7.0e0,8.0e0),
155 + (7.0e0,8.0e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
156 + (7.0e0,8.0e0), (0.3e0,0.1e0), (0.5e0,0.0e0),
157 + (0.0e0,0.5e0), (0.0e0,0.2e0), (2.0e0,3.0e0),
158 + (2.0e0,3.0e0), (2.0e0,3.0e0), (2.0e0,3.0e0)/
159 DATA ((cv(i,j,2),i=1,8),j=1,5)/(0.1e0,0.1e0),
160 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
161 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
162 + (4.0e0,5.0e0), (0.3e0,-0.4e0), (6.0e0,7.0e0),
163 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
164 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
165 + (0.1e0,-0.3e0), (8.0e0,9.0e0), (0.5e0,-0.1e0),
166 + (2.0e0,5.0e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
167 + (2.0e0,5.0e0), (2.0e0,5.0e0), (0.1e0,0.1e0),
168 + (3.0e0,6.0e0), (-0.6e0,0.1e0), (4.0e0,7.0e0),
169 + (0.1e0,-0.3e0), (7.0e0,2.0e0), (7.0e0,2.0e0),
170 + (7.0e0,2.0e0), (0.3e0,0.1e0), (5.0e0,8.0e0),
171 + (0.5e0,0.0e0), (6.0e0,9.0e0), (0.0e0,0.5e0),
172 + (8.0e0,3.0e0), (0.0e0,0.2e0), (9.0e0,4.0e0)/
173 DATA cvr/(8.0e0,8.0e0), (-7.0e0,-7.0e0),
174 + (9.0e0,9.0e0), (5.0e0,5.0e0), (9.0e0,9.0e0),
175 + (8.0e0,8.0e0), (7.0e0,7.0e0), (7.0e0,7.0e0)/
176 DATA strue2/0.0e0, 0.5e0, 0.6e0, 0.7e0, 0.8e0/
177 DATA strue4/0.0e0, 0.7e0, 1.0e0, 1.3e0, 1.6e0/
178 DATA ((ctrue5(i,j,1),i=1,8),j=1,5)/(0.1e0,0.1e0),
179 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
180 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
181 + (1.0e0,2.0e0), (-0.16e0,-0.37e0), (3.0e0,4.0e0),
182 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
183 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
184 + (-0.17e0,-0.19e0), (0.13e0,-0.39e0),
185 + (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
186 + (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
187 + (0.11e0,-0.03e0), (-0.17e0,0.46e0),
188 + (-0.17e0,-0.19e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
189 + (7.0e0,8.0e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
190 + (0.19e0,-0.17e0), (0.20e0,-0.35e0),
191 + (0.35e0,0.20e0), (0.14e0,0.08e0),
192 + (2.0e0,3.0e0), (2.0e0,3.0e0), (2.0e0,3.0e0),
194 DATA ((ctrue5(i,j,2),i=1,8),j=1,5)/(0.1e0,0.1e0),
195 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
196 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
197 + (4.0e0,5.0e0), (-0.16e0,-0.37e0), (6.0e0,7.0e0),
198 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
199 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
200 + (-0.17e0,-0.19e0), (8.0e0,9.0e0),
201 + (0.13e0,-0.39e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
202 + (2.0e0,5.0e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
203 + (0.11e0,-0.03e0), (3.0e0,6.0e0),
204 + (-0.17e0,0.46e0), (4.0e0,7.0e0),
205 + (-0.17e0,-0.19e0), (7.0e0,2.0e0), (7.0e0,2.0e0),
206 + (7.0e0,2.0e0), (0.19e0,-0.17e0), (5.0e0,8.0e0),
207 + (0.20e0,-0.35e0), (6.0e0,9.0e0),
208 + (0.35e0,0.20e0), (8.0e0,3.0e0),
209 + (0.14e0,0.08e0), (9.0e0,4.0e0)/
210 DATA ((ctrue6(i,j,1),i=1,8),j=1,5)/(0.1e0,0.1e0),
211 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
212 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
213 + (1.0e0,2.0e0), (0.09e0,-0.12e0), (3.0e0,4.0e0),
214 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
215 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
216 + (0.03e0,-0.09e0), (0.15e0,-0.03e0),
217 + (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
218 + (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
219 + (0.03e0,0.03e0), (-0.18e0,0.03e0),
220 + (0.03e0,-0.09e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
221 + (7.0e0,8.0e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
222 + (0.09e0,0.03e0), (0.15e0,0.00e0),
223 + (0.00e0,0.15e0), (0.00e0,0.06e0), (2.0e0,3.0e0),
224 + (2.0e0,3.0e0), (2.0e0,3.0e0), (2.0e0,3.0e0)/
225 DATA ((ctrue6(i,j,2),i=1,8),j=1,5)/(0.1e0,0.1e0),
226 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
227 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
228 + (4.0e0,5.0e0), (0.09e0,-0.12e0), (6.0e0,7.0e0),
229 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
230 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
231 + (0.03e0,-0.09e0), (8.0e0,9.0e0),
232 + (0.15e0,-0.03e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
233 + (2.0e0,5.0e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
234 + (0.03e0,0.03e0), (3.0e0,6.0e0),
235 + (-0.18e0,0.03e0), (4.0e0,7.0e0),
236 + (0.03e0,-0.09e0), (7.0e0,2.0e0), (7.0e0,2.0e0),
237 + (7.0e0,2.0e0), (0.09e0,0.03e0), (5.0e0,8.0e0),
238 + (0.15e0,0.00e0), (6.0e0,9.0e0), (0.00e0,0.15e0),
239 + (8.0e0,3.0e0), (0.00e0,0.06e0), (9.0e0,4.0e0)/
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(scnrm2(n,cx,incx),strue2(np1),strue2(np1),
255 ELSE IF (icase.EQ.7)
THEN
257 CALL stest1(scasum(n,cx,incx),strue4(np1),strue4(np1),
259 ELSE IF (icase.EQ.8)
THEN
261 CALL cscal(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(icamax(n,cx,incx),itrue3(np1))
273 cx(i) = (42.0e0,43.0e0)
275 CALL itest1(icamax(n,cx,incx),itruec(np1))
277 WRITE (nout,*)
' Shouldn''t be here in CHECK1'
282 IF (icase.EQ.10)
THEN
289 CALL itest1(icamax(n,cxr,incx),3)
299 mwpct(i) = (0.0e0,0.0e0)
300 mwpcs(i) = (1.0e0,1.0e0)
302 CALL cscal(5,ca,cx,incx)
303 CALL ctest(5,cx,mwpct,mwpcs,sfac)
304 ELSE IF (icase.EQ.9)
THEN
309 mwpct(i) = (0.0e0,0.0e0)
310 mwpcs(i) = (1.0e0,1.0e0)
313 CALL ctest(5,cx,mwpct,mwpcs,sfac)
321 CALL ctest(5,cx,mwpct,mwpcs,sfac)
329 CALL ctest(5,cx,mwpct,mwpcs,sfac)
340 INTEGER ICASE, INCX, INCY, MODE, N
344 INTEGER I, J, KI, KN, KSIZE, LENX, LENY, LINCX, LINCY,
347 COMPLEX 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)
354 EXTERNAL cdotc, cdotu
360 COMMON /combla/icase, n, incx, incy, mode, pass
362 DATA ca/(0.4e0,-0.7e0)/
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.7e0,-0.8e0), (-0.4e0,-0.7e0),
368 + (-0.1e0,-0.9e0), (0.2e0,-0.8e0),
369 + (-0.9e0,-0.4e0), (0.1e0,0.4e0), (-0.6e0,0.6e0)/
370 DATA cy1/(0.6e0,-0.6e0), (-0.9e0,0.5e0),
371 + (0.7e0,-0.6e0), (0.1e0,-0.5e0), (-0.1e0,-0.2e0),
372 + (-0.5e0,-0.3e0), (0.8e0,-0.7e0)/
373 DATA ((ct8(i,j,1),i=1,7),j=1,4)/(0.6e0,-0.6e0),
374 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
375 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
376 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
377 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
378 + (0.0e0,0.0e0), (0.32e0,-1.41e0),
379 + (-1.55e0,0.5e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
380 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
381 + (0.32e0,-1.41e0), (-1.55e0,0.5e0),
382 + (0.03e0,-0.89e0), (-0.38e0,-0.96e0),
383 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
384 DATA ((ct8(i,j,2),i=1,7),j=1,4)/(0.6e0,-0.6e0),
385 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
386 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
387 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
388 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
389 + (0.0e0,0.0e0), (-0.07e0,-0.89e0),
390 + (-0.9e0,0.5e0), (0.42e0,-1.41e0), (0.0e0,0.0e0),
391 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
392 + (0.78e0,0.06e0), (-0.9e0,0.5e0),
393 + (0.06e0,-0.13e0), (0.1e0,-0.5e0),
394 + (-0.77e0,-0.49e0), (-0.5e0,-0.3e0),
396 DATA ((ct8(i,j,3),i=1,7),j=1,4)/(0.6e0,-0.6e0),
397 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
398 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
399 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
400 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
401 + (0.0e0,0.0e0), (-0.07e0,-0.89e0),
402 + (-1.18e0,-0.31e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
403 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
404 + (0.78e0,0.06e0), (-1.54e0,0.97e0),
405 + (0.03e0,-0.89e0), (-0.18e0,-1.31e0),
406 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
407 DATA ((ct8(i,j,4),i=1,7),j=1,4)/(0.6e0,-0.6e0),
408 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
409 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
410 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
411 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
412 + (0.0e0,0.0e0), (0.32e0,-1.41e0), (-0.9e0,0.5e0),
413 + (0.05e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
414 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.32e0,-1.41e0),
415 + (-0.9e0,0.5e0), (0.05e0,-0.6e0), (0.1e0,-0.5e0),
416 + (-0.77e0,-0.49e0), (-0.5e0,-0.3e0),
418 DATA ct7/(0.0e0,0.0e0), (-0.06e0,-0.90e0),
419 + (0.65e0,-0.47e0), (-0.34e0,-1.22e0),
420 + (0.0e0,0.0e0), (-0.06e0,-0.90e0),
421 + (-0.59e0,-1.46e0), (-1.04e0,-0.04e0),
422 + (0.0e0,0.0e0), (-0.06e0,-0.90e0),
423 + (-0.83e0,0.59e0), (0.07e0,-0.37e0),
424 + (0.0e0,0.0e0), (-0.06e0,-0.90e0),
425 + (-0.76e0,-1.15e0), (-1.33e0,-1.82e0)/
426 DATA ct6/(0.0e0,0.0e0), (0.90e0,0.06e0),
427 + (0.91e0,-0.77e0), (1.80e0,-0.10e0),
428 + (0.0e0,0.0e0), (0.90e0,0.06e0), (1.45e0,0.74e0),
429 + (0.20e0,0.90e0), (0.0e0,0.0e0), (0.90e0,0.06e0),
430 + (-0.55e0,0.23e0), (0.83e0,-0.39e0),
431 + (0.0e0,0.0e0), (0.90e0,0.06e0), (1.04e0,0.79e0),
433 DATA ((ct10x(i,j,1),i=1,7),j=1,4)/(0.7e0,-0.8e0),
434 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
435 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
436 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
437 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
438 + (0.0e0,0.0e0), (0.6e0,-0.6e0), (-0.9e0,0.5e0),
439 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
440 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.6e0,-0.6e0),
441 + (-0.9e0,0.5e0), (0.7e0,-0.6e0), (0.1e0,-0.5e0),
442 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
443 DATA ((ct10x(i,j,2),i=1,7),j=1,4)/(0.7e0,-0.8e0),
444 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
445 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
446 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
447 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
448 + (0.0e0,0.0e0), (0.7e0,-0.6e0), (-0.4e0,-0.7e0),
449 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
450 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.8e0,-0.7e0),
451 + (-0.4e0,-0.7e0), (-0.1e0,-0.2e0),
452 + (0.2e0,-0.8e0), (0.7e0,-0.6e0), (0.1e0,0.4e0),
454 DATA ((ct10x(i,j,3),i=1,7),j=1,4)/(0.7e0,-0.8e0),
455 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
456 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
457 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
458 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
459 + (0.0e0,0.0e0), (-0.9e0,0.5e0), (-0.4e0,-0.7e0),
460 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
461 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.1e0,-0.5e0),
462 + (-0.4e0,-0.7e0), (0.7e0,-0.6e0), (0.2e0,-0.8e0),
463 + (-0.9e0,0.5e0), (0.1e0,0.4e0), (0.6e0,-0.6e0)/
464 DATA ((ct10x(i,j,4),i=1,7),j=1,4)/(0.7e0,-0.8e0),
465 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
466 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
467 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
468 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
469 + (0.0e0,0.0e0), (0.6e0,-0.6e0), (0.7e0,-0.6e0),
470 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
471 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.6e0,-0.6e0),
472 + (0.7e0,-0.6e0), (-0.1e0,-0.2e0), (0.8e0,-0.7e0),
473 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
474 DATA ((ct10y(i,j,1),i=1,7),j=1,4)/(0.6e0,-0.6e0),
475 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
476 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
477 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
478 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
479 + (0.0e0,0.0e0), (0.7e0,-0.8e0), (-0.4e0,-0.7e0),
480 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
481 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.7e0,-0.8e0),
482 + (-0.4e0,-0.7e0), (-0.1e0,-0.9e0),
483 + (0.2e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
485 DATA ((ct10y(i,j,2),i=1,7),j=1,4)/(0.6e0,-0.6e0),
486 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
487 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
488 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
489 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
490 + (0.0e0,0.0e0), (-0.1e0,-0.9e0), (-0.9e0,0.5e0),
491 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
492 + (0.0e0,0.0e0), (0.0e0,0.0e0), (-0.6e0,0.6e0),
493 + (-0.9e0,0.5e0), (-0.9e0,-0.4e0), (0.1e0,-0.5e0),
494 + (-0.1e0,-0.9e0), (-0.5e0,-0.3e0),
496 DATA ((ct10y(i,j,3),i=1,7),j=1,4)/(0.6e0,-0.6e0),
497 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
498 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
499 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
500 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
501 + (0.0e0,0.0e0), (-0.1e0,-0.9e0), (0.7e0,-0.8e0),
502 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
503 + (0.0e0,0.0e0), (0.0e0,0.0e0), (-0.6e0,0.6e0),
504 + (-0.9e0,-0.4e0), (-0.1e0,-0.9e0),
505 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
507 DATA ((ct10y(i,j,4),i=1,7),j=1,4)/(0.6e0,-0.6e0),
508 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
509 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
510 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
511 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
512 + (0.0e0,0.0e0), (0.7e0,-0.8e0), (-0.9e0,0.5e0),
513 + (-0.4e0,-0.7e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
514 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.7e0,-0.8e0),
515 + (-0.9e0,0.5e0), (-0.4e0,-0.7e0), (0.1e0,-0.5e0),
516 + (-0.1e0,-0.9e0), (-0.5e0,-0.3e0),
518 DATA csize1/(0.0e0,0.0e0), (0.9e0,0.9e0),
519 + (1.63e0,1.73e0), (2.90e0,2.78e0)/
520 DATA csize3/(0.0e0,0.0e0), (0.0e0,0.0e0),
521 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
522 + (0.0e0,0.0e0), (0.0e0,0.0e0), (1.17e0,1.17e0),
523 + (1.17e0,1.17e0), (1.17e0,1.17e0),
524 + (1.17e0,1.17e0), (1.17e0,1.17e0),
525 + (1.17e0,1.17e0), (1.17e0,1.17e0)/
526 DATA csize2/(0.0e0,0.0e0), (0.0e0,0.0e0),
527 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
528 + (0.0e0,0.0e0), (0.0e0,0.0e0), (1.54e0,1.54e0),
529 + (1.54e0,1.54e0), (1.54e0,1.54e0),
530 + (1.54e0,1.54e0), (1.54e0,1.54e0),
531 + (1.54e0,1.54e0), (1.54e0,1.54e0)/
551 cdot(1) = cdotc(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) = cdotu(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 caxpy(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 ccopy(n,cx,incx,cy,incy)
564 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0e0)
566 cx0(1) = (42.0e0,43.0e0)
567 cy0(1) = (44.0e0,45.0e0)
577 CALL ccopy(n,cx0,incx,cy0,incy)
578 CALL ctest(1,cy0,cty0,csize3,1.0e0)
582 ELSE IF (icase.EQ.5)
THEN
584 CALL cswap(n,cx,incx,cy,incy)
585 CALL ctest(lenx,cx,ct10x(1,kn,ki),csize3,1.0e0)
586 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0e0)
588 WRITE (nout,*)
' Shouldn''t be here in CHECK2'
596 SUBROUTINE stest(LEN,SCOMP,STRUE,SSIZE,SFAC)
608 parameter(nout=6, zero=0.0e0)
613 REAL SCOMP(LEN), SSIZE(LEN), STRUE(LEN)
615 INTEGER ICASE, INCX, INCY, MODE, N
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,2e36.8,2e12.4)
652 SUBROUTINE stest1(SCOMP1,STRUE1,SSIZE,SFAC)
662 REAL SCOMP1, SFAC, STRUE1
666 REAL SCOMP(1), STRUE(1)
673 CALL stest(1,scomp,strue,ssize,sfac)
687 SUBROUTINE ctest(LEN,CCOMP,CTRUE,CSIZE,SFAC)
696 COMPLEX CCOMP(LEN), CSIZE(LEN), CTRUE(LEN)
700 REAL SCOMP(20), SSIZE(20), STRUE(20)
704 INTRINSIC aimag, real
707 scomp(2*i-1) = real(ccomp(i))
708 scomp(2*i) = aimag(ccomp(i))
709 strue(2*i-1) = real(ctrue(i))
710 strue(2*i) = aimag(ctrue(i))
711 ssize(2*i-1) = real(csize(i))
712 ssize(2*i) = aimag(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 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