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)
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)
254 ELSE IF (icase.EQ.7)
THEN
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
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)
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)
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)
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)