51 INTEGER icase, incx, incy, mode, n
59 common /combla/icase, n, incx, incy, mode, pass
61 DATA sfac/9.765625d-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)
123 DOUBLE PRECISION sfac
125 INTEGER icase, incx, incy, mode, n
130 INTEGER i, j, len, np1
132 COMPLEX*16 ctrue5(8,5,2), ctrue6(8,5,2), cv(8,5,2), cx(8),
134 DOUBLE PRECISION strue2(5), strue4(5)
145 common /combla/icase, n, incx, incy, mode, pass
147 DATA sa, ca/0.3d0, (0.4d0,-0.7d0)/
148 DATA ((cv(i,j,1),i=1,8),j=1,5)/(0.1d0,0.1d0),
149 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
150 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
151 + (1.0d0,2.0d0), (0.3d0,-0.4d0), (3.0d0,4.0d0),
152 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
153 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
154 + (0.1d0,-0.3d0), (0.5d0,-0.1d0), (5.0d0,6.0d0),
155 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
156 + (5.0d0,6.0d0), (5.0d0,6.0d0), (0.1d0,0.1d0),
157 + (-0.6d0,0.1d0), (0.1d0,-0.3d0), (7.0d0,8.0d0),
158 + (7.0d0,8.0d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
159 + (7.0d0,8.0d0), (0.3d0,0.1d0), (0.5d0,0.0d0),
160 + (0.0d0,0.5d0), (0.0d0,0.2d0), (2.0d0,3.0d0),
161 + (2.0d0,3.0d0), (2.0d0,3.0d0), (2.0d0,3.0d0)/
162 DATA ((cv(i,j,2),i=1,8),j=1,5)/(0.1d0,0.1d0),
163 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
164 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
165 + (4.0d0,5.0d0), (0.3d0,-0.4d0), (6.0d0,7.0d0),
166 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
167 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
168 + (0.1d0,-0.3d0), (8.0d0,9.0d0), (0.5d0,-0.1d0),
169 + (2.0d0,5.0d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
170 + (2.0d0,5.0d0), (2.0d0,5.0d0), (0.1d0,0.1d0),
171 + (3.0d0,6.0d0), (-0.6d0,0.1d0), (4.0d0,7.0d0),
172 + (0.1d0,-0.3d0), (7.0d0,2.0d0), (7.0d0,2.0d0),
173 + (7.0d0,2.0d0), (0.3d0,0.1d0), (5.0d0,8.0d0),
174 + (0.5d0,0.0d0), (6.0d0,9.0d0), (0.0d0,0.5d0),
175 + (8.0d0,3.0d0), (0.0d0,0.2d0), (9.0d0,4.0d0)/
176 DATA strue2/0.0d0, 0.5d0, 0.6d0, 0.7d0, 0.8d0/
177 DATA strue4/0.0d0, 0.7d0, 1.0d0, 1.3d0, 1.6d0/
178 DATA ((ctrue5(i,j,1),i=1,8),j=1,5)/(0.1d0,0.1d0),
179 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
180 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
181 + (1.0d0,2.0d0), (-0.16d0,-0.37d0), (3.0d0,4.0d0),
182 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
183 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
184 + (-0.17d0,-0.19d0), (0.13d0,-0.39d0),
185 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
186 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
187 + (0.11d0,-0.03d0), (-0.17d0,0.46d0),
188 + (-0.17d0,-0.19d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
189 + (7.0d0,8.0d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
190 + (0.19d0,-0.17d0), (0.20d0,-0.35d0),
191 + (0.35d0,0.20d0), (0.14d0,0.08d0),
192 + (2.0d0,3.0d0), (2.0d0,3.0d0), (2.0d0,3.0d0),
194 DATA ((ctrue5(i,j,2),i=1,8),j=1,5)/(0.1d0,0.1d0),
195 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
196 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
197 + (4.0d0,5.0d0), (-0.16d0,-0.37d0), (6.0d0,7.0d0),
198 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
199 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
200 + (-0.17d0,-0.19d0), (8.0d0,9.0d0),
201 + (0.13d0,-0.39d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
202 + (2.0d0,5.0d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
203 + (0.11d0,-0.03d0), (3.0d0,6.0d0),
204 + (-0.17d0,0.46d0), (4.0d0,7.0d0),
205 + (-0.17d0,-0.19d0), (7.0d0,2.0d0), (7.0d0,2.0d0),
206 + (7.0d0,2.0d0), (0.19d0,-0.17d0), (5.0d0,8.0d0),
207 + (0.20d0,-0.35d0), (6.0d0,9.0d0),
208 + (0.35d0,0.20d0), (8.0d0,3.0d0),
209 + (0.14d0,0.08d0), (9.0d0,4.0d0)/
210 DATA ((ctrue6(i,j,1),i=1,8),j=1,5)/(0.1d0,0.1d0),
211 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
212 + (1.0d0,2.0d0), (1.0d0,2.0d0), (1.0d0,2.0d0),
213 + (1.0d0,2.0d0), (0.09d0,-0.12d0), (3.0d0,4.0d0),
214 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
215 + (3.0d0,4.0d0), (3.0d0,4.0d0), (3.0d0,4.0d0),
216 + (0.03d0,-0.09d0), (0.15d0,-0.03d0),
217 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
218 + (5.0d0,6.0d0), (5.0d0,6.0d0), (5.0d0,6.0d0),
219 + (0.03d0,0.03d0), (-0.18d0,0.03d0),
220 + (0.03d0,-0.09d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
221 + (7.0d0,8.0d0), (7.0d0,8.0d0), (7.0d0,8.0d0),
222 + (0.09d0,0.03d0), (0.15d0,0.00d0),
223 + (0.00d0,0.15d0), (0.00d0,0.06d0), (2.0d0,3.0d0),
224 + (2.0d0,3.0d0), (2.0d0,3.0d0), (2.0d0,3.0d0)/
225 DATA ((ctrue6(i,j,2),i=1,8),j=1,5)/(0.1d0,0.1d0),
226 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
227 + (4.0d0,5.0d0), (4.0d0,5.0d0), (4.0d0,5.0d0),
228 + (4.0d0,5.0d0), (0.09d0,-0.12d0), (6.0d0,7.0d0),
229 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
230 + (6.0d0,7.0d0), (6.0d0,7.0d0), (6.0d0,7.0d0),
231 + (0.03d0,-0.09d0), (8.0d0,9.0d0),
232 + (0.15d0,-0.03d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
233 + (2.0d0,5.0d0), (2.0d0,5.0d0), (2.0d0,5.0d0),
234 + (0.03d0,0.03d0), (3.0d0,6.0d0),
235 + (-0.18d0,0.03d0), (4.0d0,7.0d0),
236 + (0.03d0,-0.09d0), (7.0d0,2.0d0), (7.0d0,2.0d0),
237 + (7.0d0,2.0d0), (0.09d0,0.03d0), (5.0d0,8.0d0),
238 + (0.15d0,0.00d0), (6.0d0,9.0d0), (0.00d0,0.15d0),
239 + (8.0d0,3.0d0), (0.00d0,0.06d0), (9.0d0,4.0d0)/
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
zscal(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.0d0,0.0d0)
286 mwpcs(i) = (1.0d0,1.0d0)
288 CALL
zscal(5,ca,cx,incx)
289 CALL
ctest(5,cx,mwpct,mwpcs,sfac)
290 ELSE IF (icase.EQ.9)
THEN
295 mwpct(i) = (0.0d0,0.0d0)
296 mwpcs(i) = (1.0d0,1.0d0)
299 CALL
ctest(5,cx,mwpct,mwpcs,sfac)
307 CALL
ctest(5,cx,mwpct,mwpcs,sfac)
315 CALL
ctest(5,cx,mwpct,mwpcs,sfac)
324 DOUBLE PRECISION sfac
326 INTEGER icase, incx, incy, mode, n
330 INTEGER i, j, ki, kn, ksize, lenx, leny, mx, my
332 COMPLEX*16 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.4d0,-0.7d0)/
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.7d0,-0.8d0), (-0.4d0,-0.7d0),
352 + (-0.1d0,-0.9d0), (0.2d0,-0.8d0),
353 + (-0.9d0,-0.4d0), (0.1d0,0.4d0), (-0.6d0,0.6d0)/
354 DATA cy1/(0.6d0,-0.6d0), (-0.9d0,0.5d0),
355 + (0.7d0,-0.6d0), (0.1d0,-0.5d0), (-0.1d0,-0.2d0),
356 + (-0.5d0,-0.3d0), (0.8d0,-0.7d0)/
357 DATA ((ct8(i,j,1),i=1,7),j=1,4)/(0.6d0,-0.6d0),
358 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
359 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
360 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
361 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
362 + (0.0d0,0.0d0), (0.32d0,-1.41d0),
363 + (-1.55d0,0.5d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
364 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
365 + (0.32d0,-1.41d0), (-1.55d0,0.5d0),
366 + (0.03d0,-0.89d0), (-0.38d0,-0.96d0),
367 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
368 DATA ((ct8(i,j,2),i=1,7),j=1,4)/(0.6d0,-0.6d0),
369 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
370 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
371 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
372 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
373 + (0.0d0,0.0d0), (-0.07d0,-0.89d0),
374 + (-0.9d0,0.5d0), (0.42d0,-1.41d0), (0.0d0,0.0d0),
375 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
376 + (0.78d0,0.06d0), (-0.9d0,0.5d0),
377 + (0.06d0,-0.13d0), (0.1d0,-0.5d0),
378 + (-0.77d0,-0.49d0), (-0.5d0,-0.3d0),
380 DATA ((ct8(i,j,3),i=1,7),j=1,4)/(0.6d0,-0.6d0),
381 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
382 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
383 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
384 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
385 + (0.0d0,0.0d0), (-0.07d0,-0.89d0),
386 + (-1.18d0,-0.31d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
387 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
388 + (0.78d0,0.06d0), (-1.54d0,0.97d0),
389 + (0.03d0,-0.89d0), (-0.18d0,-1.31d0),
390 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
391 DATA ((ct8(i,j,4),i=1,7),j=1,4)/(0.6d0,-0.6d0),
392 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
393 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
394 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
395 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
396 + (0.0d0,0.0d0), (0.32d0,-1.41d0), (-0.9d0,0.5d0),
397 + (0.05d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
398 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.32d0,-1.41d0),
399 + (-0.9d0,0.5d0), (0.05d0,-0.6d0), (0.1d0,-0.5d0),
400 + (-0.77d0,-0.49d0), (-0.5d0,-0.3d0),
402 DATA ct7/(0.0d0,0.0d0), (-0.06d0,-0.90d0),
403 + (0.65d0,-0.47d0), (-0.34d0,-1.22d0),
404 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
405 + (-0.59d0,-1.46d0), (-1.04d0,-0.04d0),
406 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
407 + (-0.83d0,0.59d0), (0.07d0,-0.37d0),
408 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),
409 + (-0.76d0,-1.15d0), (-1.33d0,-1.82d0)/
410 DATA ct6/(0.0d0,0.0d0), (0.90d0,0.06d0),
411 + (0.91d0,-0.77d0), (1.80d0,-0.10d0),
412 + (0.0d0,0.0d0), (0.90d0,0.06d0), (1.45d0,0.74d0),
413 + (0.20d0,0.90d0), (0.0d0,0.0d0), (0.90d0,0.06d0),
414 + (-0.55d0,0.23d0), (0.83d0,-0.39d0),
415 + (0.0d0,0.0d0), (0.90d0,0.06d0), (1.04d0,0.79d0),
417 DATA ((ct10x(i,j,1),i=1,7),j=1,4)/(0.7d0,-0.8d0),
418 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
419 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
420 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
421 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
422 + (0.0d0,0.0d0), (0.6d0,-0.6d0), (-0.9d0,0.5d0),
423 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
424 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.6d0,-0.6d0),
425 + (-0.9d0,0.5d0), (0.7d0,-0.6d0), (0.1d0,-0.5d0),
426 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
427 DATA ((ct10x(i,j,2),i=1,7),j=1,4)/(0.7d0,-0.8d0),
428 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
429 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
430 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
431 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
432 + (0.0d0,0.0d0), (0.7d0,-0.6d0), (-0.4d0,-0.7d0),
433 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
434 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.8d0,-0.7d0),
435 + (-0.4d0,-0.7d0), (-0.1d0,-0.2d0),
436 + (0.2d0,-0.8d0), (0.7d0,-0.6d0), (0.1d0,0.4d0),
438 DATA ((ct10x(i,j,3),i=1,7),j=1,4)/(0.7d0,-0.8d0),
439 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
440 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
441 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
442 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
443 + (0.0d0,0.0d0), (-0.9d0,0.5d0), (-0.4d0,-0.7d0),
444 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
445 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.1d0,-0.5d0),
446 + (-0.4d0,-0.7d0), (0.7d0,-0.6d0), (0.2d0,-0.8d0),
447 + (-0.9d0,0.5d0), (0.1d0,0.4d0), (0.6d0,-0.6d0)/
448 DATA ((ct10x(i,j,4),i=1,7),j=1,4)/(0.7d0,-0.8d0),
449 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
450 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
451 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
452 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
453 + (0.0d0,0.0d0), (0.6d0,-0.6d0), (0.7d0,-0.6d0),
454 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
455 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.6d0,-0.6d0),
456 + (0.7d0,-0.6d0), (-0.1d0,-0.2d0), (0.8d0,-0.7d0),
457 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/
458 DATA ((ct10y(i,j,1),i=1,7),j=1,4)/(0.6d0,-0.6d0),
459 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
460 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
461 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
462 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
463 + (0.0d0,0.0d0), (0.7d0,-0.8d0), (-0.4d0,-0.7d0),
464 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
465 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.7d0,-0.8d0),
466 + (-0.4d0,-0.7d0), (-0.1d0,-0.9d0),
467 + (0.2d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
469 DATA ((ct10y(i,j,2),i=1,7),j=1,4)/(0.6d0,-0.6d0),
470 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
471 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
472 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
473 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
474 + (0.0d0,0.0d0), (-0.1d0,-0.9d0), (-0.9d0,0.5d0),
475 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
476 + (0.0d0,0.0d0), (0.0d0,0.0d0), (-0.6d0,0.6d0),
477 + (-0.9d0,0.5d0), (-0.9d0,-0.4d0), (0.1d0,-0.5d0),
478 + (-0.1d0,-0.9d0), (-0.5d0,-0.3d0),
480 DATA ((ct10y(i,j,3),i=1,7),j=1,4)/(0.6d0,-0.6d0),
481 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
482 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
483 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
484 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
485 + (0.0d0,0.0d0), (-0.1d0,-0.9d0), (0.7d0,-0.8d0),
486 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
487 + (0.0d0,0.0d0), (0.0d0,0.0d0), (-0.6d0,0.6d0),
488 + (-0.9d0,-0.4d0), (-0.1d0,-0.9d0),
489 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
491 DATA ((ct10y(i,j,4),i=1,7),j=1,4)/(0.6d0,-0.6d0),
492 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
493 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
494 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
495 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
496 + (0.0d0,0.0d0), (0.7d0,-0.8d0), (-0.9d0,0.5d0),
497 + (-0.4d0,-0.7d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
498 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.7d0,-0.8d0),
499 + (-0.9d0,0.5d0), (-0.4d0,-0.7d0), (0.1d0,-0.5d0),
500 + (-0.1d0,-0.9d0), (-0.5d0,-0.3d0),
502 DATA csize1/(0.0d0,0.0d0), (0.9d0,0.9d0),
503 + (1.63d0,1.73d0), (2.90d0,2.78d0)/
504 DATA csize3/(0.0d0,0.0d0), (0.0d0,0.0d0),
505 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
506 + (0.0d0,0.0d0), (0.0d0,0.0d0), (1.17d0,1.17d0),
507 + (1.17d0,1.17d0), (1.17d0,1.17d0),
508 + (1.17d0,1.17d0), (1.17d0,1.17d0),
509 + (1.17d0,1.17d0), (1.17d0,1.17d0)/
510 DATA csize2/(0.0d0,0.0d0), (0.0d0,0.0d0),
511 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),
512 + (0.0d0,0.0d0), (0.0d0,0.0d0), (1.54d0,1.54d0),
513 + (1.54d0,1.54d0), (1.54d0,1.54d0),
514 + (1.54d0,1.54d0), (1.54d0,1.54d0),
515 + (1.54d0,1.54d0), (1.54d0,1.54d0)/
535 cdot(1) =
zdotc(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) =
zdotu(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
zaxpy(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
zcopy(n,cx,incx,cy,incy)
548 CALL
ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0d0)
549 ELSE IF (icase.EQ.5)
THEN
551 CALL
zswap(n,cx,incx,cy,incy)
552 CALL
ctest(lenx,cx,ct10x(1,kn,ki),csize3,1.0d0)
553 CALL
ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0d0)
555 WRITE (nout,*)
' Shouldn''t be here in CHECK2'
563 SUBROUTINE stest(LEN,SCOMP,STRUE,SSIZE,SFAC)
574 DOUBLE PRECISION zero
575 parameter(nout=6, zero=0.0d0)
577 DOUBLE PRECISION sfac
580 DOUBLE PRECISION scomp(len), ssize(len), strue(len)
582 INTEGER icase, incx, incy, mode, n
588 DOUBLE PRECISION sdiff
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,2d36.8,2d12.4)
619 SUBROUTINE stest1(SCOMP1,STRUE1,SSIZE,SFAC)
629 DOUBLE PRECISION scomp1, sfac, strue1
631 DOUBLE PRECISION ssize(*)
633 DOUBLE PRECISION scomp(1), strue(1)
640 CALL
stest(1,scomp,strue,ssize,sfac)
644 DOUBLE PRECISION FUNCTION sdiff(SA,SB)
649 DOUBLE PRECISION sa, sb
654 SUBROUTINE ctest(LEN,CCOMP,CTRUE,CSIZE,SFAC)
660 DOUBLE PRECISION sfac
663 COMPLEX*16 ccomp(len), csize(len), ctrue(len)
667 DOUBLE PRECISION scomp(20), ssize(20), strue(20)
671 INTRINSIC dimag, dble
674 scomp(2*i-1) = dble(ccomp(i))
675 scomp(2*i) = dimag(ccomp(i))
676 strue(2*i-1) = dble(ctrue(i))
677 strue(2*i) = dimag(ctrue(i))
678 ssize(2*i-1) = dble(csize(i))
679 ssize(2*i) = dimag(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)