51 INTEGER ICASE, INCX, INCY, MODE, N
59 COMMON /combla/icase, n, incx, incy, mode, pass
61 DATA sfac/9.765625e-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)
125 INTEGER ICASE, INCX, INCY, MODE, N
130 INTEGER I, J, LEN, NP1
132 COMPLEX CTRUE5(8,5,2), CTRUE6(8,5,2), CV(8,5,2), CX(8),
134 REAL STRUE2(5), STRUE4(5)
139 EXTERNAL scasum, scnrm2, icamax
145 COMMON /combla/icase, n, incx, incy, mode, pass
147 DATA sa, ca/0.3e0, (0.4e0,-0.7e0)/
148 DATA ((cv(i,j,1),i=1,8),j=1,5)/(0.1e0,0.1e0),
149 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
150 + (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
151 + (1.0e0,2.0e0), (0.3e0,-0.4e0), (3.0e0,4.0e0),
152 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
153 + (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
154 + (0.1e0,-0.3e0), (0.5e0,-0.1e0), (5.0e0,6.0e0),
155 + (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
156 + (5.0e0,6.0e0), (5.0e0,6.0e0), (0.1e0,0.1e0),
157 + (-0.6e0,0.1e0), (0.1e0,-0.3e0), (7.0e0,8.0e0),
158 + (7.0e0,8.0e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
159 + (7.0e0,8.0e0), (0.3e0,0.1e0), (0.5e0,0.0e0),
160 + (0.0e0,0.5e0), (0.0e0,0.2e0), (2.0e0,3.0e0),
161 + (2.0e0,3.0e0), (2.0e0,3.0e0), (2.0e0,3.0e0)/
162 DATA ((cv(i,j,2),i=1,8),j=1,5)/(0.1e0,0.1e0),
163 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
164 + (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
165 + (4.0e0,5.0e0), (0.3e0,-0.4e0), (6.0e0,7.0e0),
166 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
167 + (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
168 + (0.1e0,-0.3e0), (8.0e0,9.0e0), (0.5e0,-0.1e0),
169 + (2.0e0,5.0e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
170 + (2.0e0,5.0e0), (2.0e0,5.0e0), (0.1e0,0.1e0),
171 + (3.0e0,6.0e0), (-0.6e0,0.1e0), (4.0e0,7.0e0),
172 + (0.1e0,-0.3e0), (7.0e0,2.0e0), (7.0e0,2.0e0),
173 + (7.0e0,2.0e0), (0.3e0,0.1e0), (5.0e0,8.0e0),
174 + (0.5e0,0.0e0), (6.0e0,9.0e0), (0.0e0,0.5e0),
175 + (8.0e0,3.0e0), (0.0e0,0.2e0), (9.0e0,4.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/
248 cx(i) = cv(i,np1,incx)
252 CALL stest1(scnrm2(n,cx,incx),strue2(np1),strue2(np1),
254 ELSE IF (icase.EQ.7)
THEN
256 CALL stest1(scasum(n,cx,incx),strue4(np1),strue4(np1),
258 ELSE IF (icase.EQ.8)
THEN
260 CALL cscal(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(icamax(n,cx,incx),itrue3(np1))
272 WRITE (nout,*)
' Shouldn''t be here in CHECK1'
285 mwpct(i) = (0.0e0,0.0e0)
286 mwpcs(i) = (1.0e0,1.0e0)
288 CALL cscal(5,ca,cx,incx)
289 CALL ctest(5,cx,mwpct,mwpcs,sfac)
290 ELSE IF (icase.EQ.9)
THEN
295 mwpct(i) = (0.0e0,0.0e0)
296 mwpcs(i) = (1.0e0,1.0e0)
299 CALL ctest(5,cx,mwpct,mwpcs,sfac)
307 CALL ctest(5,cx,mwpct,mwpcs,sfac)
315 CALL ctest(5,cx,mwpct,mwpcs,sfac)
326 INTEGER ICASE, INCX, INCY, MODE, N
330 INTEGER I, J, KI, KN, KSIZE, LENX, LENY, MX, MY
332 COMPLEX 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)
338 EXTERNAL cdotc, cdotu
344 COMMON /combla/icase, n, incx, incy, mode, pass
346 DATA ca/(0.4e0,-0.7e0)/
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.7e0,-0.8e0), (-0.4e0,-0.7e0),
352 + (-0.1e0,-0.9e0), (0.2e0,-0.8e0),
353 + (-0.9e0,-0.4e0), (0.1e0,0.4e0), (-0.6e0,0.6e0)/
354 DATA cy1/(0.6e0,-0.6e0), (-0.9e0,0.5e0),
355 + (0.7e0,-0.6e0), (0.1e0,-0.5e0), (-0.1e0,-0.2e0),
356 + (-0.5e0,-0.3e0), (0.8e0,-0.7e0)/
357 DATA ((ct8(i,j,1),i=1,7),j=1,4)/(0.6e0,-0.6e0),
358 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
359 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
360 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
361 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
362 + (0.0e0,0.0e0), (0.32e0,-1.41e0),
363 + (-1.55e0,0.5e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
364 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
365 + (0.32e0,-1.41e0), (-1.55e0,0.5e0),
366 + (0.03e0,-0.89e0), (-0.38e0,-0.96e0),
367 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
368 DATA ((ct8(i,j,2),i=1,7),j=1,4)/(0.6e0,-0.6e0),
369 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
370 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
371 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
372 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
373 + (0.0e0,0.0e0), (-0.07e0,-0.89e0),
374 + (-0.9e0,0.5e0), (0.42e0,-1.41e0), (0.0e0,0.0e0),
375 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
376 + (0.78e0,0.06e0), (-0.9e0,0.5e0),
377 + (0.06e0,-0.13e0), (0.1e0,-0.5e0),
378 + (-0.77e0,-0.49e0), (-0.5e0,-0.3e0),
380 DATA ((ct8(i,j,3),i=1,7),j=1,4)/(0.6e0,-0.6e0),
381 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
382 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
383 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
384 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
385 + (0.0e0,0.0e0), (-0.07e0,-0.89e0),
386 + (-1.18e0,-0.31e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
387 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
388 + (0.78e0,0.06e0), (-1.54e0,0.97e0),
389 + (0.03e0,-0.89e0), (-0.18e0,-1.31e0),
390 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
391 DATA ((ct8(i,j,4),i=1,7),j=1,4)/(0.6e0,-0.6e0),
392 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
393 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
394 + (0.32e0,-1.41e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
395 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
396 + (0.0e0,0.0e0), (0.32e0,-1.41e0), (-0.9e0,0.5e0),
397 + (0.05e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
398 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.32e0,-1.41e0),
399 + (-0.9e0,0.5e0), (0.05e0,-0.6e0), (0.1e0,-0.5e0),
400 + (-0.77e0,-0.49e0), (-0.5e0,-0.3e0),
402 DATA ct7/(0.0e0,0.0e0), (-0.06e0,-0.90e0),
403 + (0.65e0,-0.47e0), (-0.34e0,-1.22e0),
404 + (0.0e0,0.0e0), (-0.06e0,-0.90e0),
405 + (-0.59e0,-1.46e0), (-1.04e0,-0.04e0),
406 + (0.0e0,0.0e0), (-0.06e0,-0.90e0),
407 + (-0.83e0,0.59e0), (0.07e0,-0.37e0),
408 + (0.0e0,0.0e0), (-0.06e0,-0.90e0),
409 + (-0.76e0,-1.15e0), (-1.33e0,-1.82e0)/
410 DATA ct6/(0.0e0,0.0e0), (0.90e0,0.06e0),
411 + (0.91e0,-0.77e0), (1.80e0,-0.10e0),
412 + (0.0e0,0.0e0), (0.90e0,0.06e0), (1.45e0,0.74e0),
413 + (0.20e0,0.90e0), (0.0e0,0.0e0), (0.90e0,0.06e0),
414 + (-0.55e0,0.23e0), (0.83e0,-0.39e0),
415 + (0.0e0,0.0e0), (0.90e0,0.06e0), (1.04e0,0.79e0),
417 DATA ((ct10x(i,j,1),i=1,7),j=1,4)/(0.7e0,-0.8e0),
418 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
419 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
420 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
421 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
422 + (0.0e0,0.0e0), (0.6e0,-0.6e0), (-0.9e0,0.5e0),
423 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
424 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.6e0,-0.6e0),
425 + (-0.9e0,0.5e0), (0.7e0,-0.6e0), (0.1e0,-0.5e0),
426 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
427 DATA ((ct10x(i,j,2),i=1,7),j=1,4)/(0.7e0,-0.8e0),
428 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
429 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
430 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
431 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
432 + (0.0e0,0.0e0), (0.7e0,-0.6e0), (-0.4e0,-0.7e0),
433 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
434 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.8e0,-0.7e0),
435 + (-0.4e0,-0.7e0), (-0.1e0,-0.2e0),
436 + (0.2e0,-0.8e0), (0.7e0,-0.6e0), (0.1e0,0.4e0),
438 DATA ((ct10x(i,j,3),i=1,7),j=1,4)/(0.7e0,-0.8e0),
439 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
440 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
441 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
442 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
443 + (0.0e0,0.0e0), (-0.9e0,0.5e0), (-0.4e0,-0.7e0),
444 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
445 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.1e0,-0.5e0),
446 + (-0.4e0,-0.7e0), (0.7e0,-0.6e0), (0.2e0,-0.8e0),
447 + (-0.9e0,0.5e0), (0.1e0,0.4e0), (0.6e0,-0.6e0)/
448 DATA ((ct10x(i,j,4),i=1,7),j=1,4)/(0.7e0,-0.8e0),
449 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
450 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
451 + (0.6e0,-0.6e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
452 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
453 + (0.0e0,0.0e0), (0.6e0,-0.6e0), (0.7e0,-0.6e0),
454 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
455 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.6e0,-0.6e0),
456 + (0.7e0,-0.6e0), (-0.1e0,-0.2e0), (0.8e0,-0.7e0),
457 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0)/
458 DATA ((ct10y(i,j,1),i=1,7),j=1,4)/(0.6e0,-0.6e0),
459 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
460 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
461 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
462 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
463 + (0.0e0,0.0e0), (0.7e0,-0.8e0), (-0.4e0,-0.7e0),
464 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
465 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.7e0,-0.8e0),
466 + (-0.4e0,-0.7e0), (-0.1e0,-0.9e0),
467 + (0.2e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
469 DATA ((ct10y(i,j,2),i=1,7),j=1,4)/(0.6e0,-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.0e0,0.0e0),
472 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
473 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
474 + (0.0e0,0.0e0), (-0.1e0,-0.9e0), (-0.9e0,0.5e0),
475 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
476 + (0.0e0,0.0e0), (0.0e0,0.0e0), (-0.6e0,0.6e0),
477 + (-0.9e0,0.5e0), (-0.9e0,-0.4e0), (0.1e0,-0.5e0),
478 + (-0.1e0,-0.9e0), (-0.5e0,-0.3e0),
480 DATA ((ct10y(i,j,3),i=1,7),j=1,4)/(0.6e0,-0.6e0),
481 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
482 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
483 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
484 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
485 + (0.0e0,0.0e0), (-0.1e0,-0.9e0), (0.7e0,-0.8e0),
486 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
487 + (0.0e0,0.0e0), (0.0e0,0.0e0), (-0.6e0,0.6e0),
488 + (-0.9e0,-0.4e0), (-0.1e0,-0.9e0),
489 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
491 DATA ((ct10y(i,j,4),i=1,7),j=1,4)/(0.6e0,-0.6e0),
492 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
493 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
494 + (0.7e0,-0.8e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
495 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
496 + (0.0e0,0.0e0), (0.7e0,-0.8e0), (-0.9e0,0.5e0),
497 + (-0.4e0,-0.7e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
498 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.7e0,-0.8e0),
499 + (-0.9e0,0.5e0), (-0.4e0,-0.7e0), (0.1e0,-0.5e0),
500 + (-0.1e0,-0.9e0), (-0.5e0,-0.3e0),
502 DATA csize1/(0.0e0,0.0e0), (0.9e0,0.9e0),
503 + (1.63e0,1.73e0), (2.90e0,2.78e0)/
504 DATA csize3/(0.0e0,0.0e0), (0.0e0,0.0e0),
505 + (0.0e0,0.0e0), (0.0e0,0.0e0), (0.0e0,0.0e0),
506 + (0.0e0,0.0e0), (0.0e0,0.0e0), (1.17e0,1.17e0),
507 + (1.17e0,1.17e0), (1.17e0,1.17e0),
508 + (1.17e0,1.17e0), (1.17e0,1.17e0),
509 + (1.17e0,1.17e0), (1.17e0,1.17e0)/
510 DATA csize2/(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.0e0,0.0e0), (1.54e0,1.54e0),
513 + (1.54e0,1.54e0), (1.54e0,1.54e0),
514 + (1.54e0,1.54e0), (1.54e0,1.54e0),
515 + (1.54e0,1.54e0), (1.54e0,1.54e0)/
535 cdot(1) = cdotc(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) = cdotu(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 caxpy(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 ccopy(n,cx,incx,cy,incy)
548 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0e0)
549 ELSE IF (icase.EQ.5)
THEN
551 CALL cswap(n,cx,incx,cy,incy)
552 CALL ctest(lenx,cx,ct10x(1,kn,ki),csize3,1.0e0)
553 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0e0)
555 WRITE (nout,*)
' Shouldn''t be here in CHECK2'
563 SUBROUTINE stest(LEN,SCOMP,STRUE,SSIZE,SFAC)
575 parameter (nout=6, zero=0.0e0)
580 REAL SCOMP(len), SSIZE(len), STRUE(len)
582 INTEGER ICASE, INCX, INCY, MODE, N
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,2e36.8,2e12.4)
619 SUBROUTINE stest1(SCOMP1,STRUE1,SSIZE,SFAC)
629 REAL SCOMP1, SFAC, STRUE1
633 REAL SCOMP(1), STRUE(1)
640 CALL stest(1,scomp,strue,ssize,sfac)
644 REAL FUNCTION sdiff(SA,SB)
654 SUBROUTINE ctest(LEN,CCOMP,CTRUE,CSIZE,SFAC)
663 COMPLEX CCOMP(len), CSIZE(len), CTRUE(len)
667 REAL SCOMP(20), SSIZE(20), STRUE(20)
671 INTRINSIC aimag, real
674 scomp(2*i-1) =
REAL(ccomp(i))
675 scomp(2*i) = aimag(ccomp(i))
676 strue(2*i-1) =
REAL(ctrue(i))
677 strue(2*i) = aimag(ctrue(i))
678 ssize(2*i-1) =
REAL(csize(i))
679 ssize(2*i) = aimag(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 itest1(ICOMP, ITRUE)
subroutine cscal(N, CA, CX, INCX)
CSCAL
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 ccopy(N, CX, INCX, CY, INCY)
CCOPY
subroutine cswap(N, CX, INCX, CY, INCY)
CSWAP
subroutine caxpy(N, CA, CX, INCX, CY, INCY)
CAXPY
subroutine csscal(N, SA, CX, INCX)
CSSCAL