1 /*
  2  * cblas_test.h
  3  * Written by Keita Teranishi
  4  */
  5 #ifndef CBLAS_TEST_H
  6 #define CBLAS_TEST_H
  7 #include "cblas.h"
  8 
  9 #define  TRUE           1
 10 #define  PASSED         1
 11 #define  TEST_ROW_MJR   1
 12 
 13 #define  FALSE          0
 14 #define  FAILED         0
 15 #define  TEST_COL_MJR   0
 16 
 17 #define  INVALID       -1
 18 #define  UNDEFINED     -1
 19 
 20 typedef struct { float real; float imag; } CBLAS_TEST_COMPLEX;
 21 typedef struct { double real; double imag; } CBLAS_TEST_ZOMPLEX;
 22 
 23 #if defined(ADD_)
 24    #define F77_xerbla xerbla_
 25 /*
 26  * Level 1 BLAS
 27  */
 28    #define F77_srotg      srotgtest_
 29    #define F77_srotmg     srotmgtest_
 30    #define F77_srot       srottest_
 31    #define F77_srotm      srotmtest_
 32    #define F77_drotg      drotgtest_
 33    #define F77_drotmg     drotmgtest_
 34    #define F77_drot       drottest_
 35    #define F77_drotm      drotmtest_
 36    #define F77_sswap      sswaptest_
 37    #define F77_scopy      scopytest_
 38    #define F77_saxpy      saxpytest_
 39    #define F77_isamax     isamaxtest_
 40    #define F77_dswap      dswaptest_
 41    #define F77_dcopy      dcopytest_
 42    #define F77_daxpy      daxpytest_
 43    #define F77_idamax     idamaxtest_
 44    #define F77_cswap      cswaptest_
 45    #define F77_ccopy      ccopytest_
 46    #define F77_caxpy      caxpytest_
 47    #define F77_icamax     icamaxtest_
 48    #define F77_zswap      zswaptest_
 49    #define F77_zcopy      zcopytest_
 50    #define F77_zaxpy      zaxpytest_
 51    #define F77_izamax     izamaxtest_
 52    #define F77_sdot       sdottest_
 53    #define F77_ddot       ddottest_
 54    #define F77_dsdot      dsdottest_
 55    #define F77_sscal      sscaltest_
 56    #define F77_dscal      dscaltest_
 57    #define F77_cscal      cscaltest_
 58    #define F77_zscal      zscaltest_
 59    #define F77_csscal     csscaltest_
 60    #define F77_zdscal      zdscaltest_
 61    #define F77_cdotu      cdotutest_
 62    #define F77_cdotc      cdotctest_
 63    #define F77_zdotu      zdotutest_
 64    #define F77_zdotc      zdotctest_
 65    #define F77_snrm2      snrm2test_
 66    #define F77_sasum      sasumtest_
 67    #define F77_dnrm2      dnrm2test_
 68    #define F77_dasum      dasumtest_
 69    #define F77_scnrm2     scnrm2test_
 70    #define F77_scasum     scasumtest_
 71    #define F77_dznrm2     dznrm2test_
 72    #define F77_dzasum     dzasumtest_
 73    #define F77_sdsdot     sdsdottest_
 74 /*
 75  * Level 2 BLAS
 76  */
 77    #define F77_s2chke     cs2chke_
 78    #define F77_d2chke     cd2chke_
 79    #define F77_c2chke     cc2chke_
 80    #define F77_z2chke     cz2chke_
 81    #define F77_ssymv      cssymv_
 82    #define F77_ssbmv      cssbmv_
 83    #define F77_sspmv      csspmv_
 84    #define F77_sger       csger_
 85    #define F77_ssyr       cssyr_
 86    #define F77_sspr       csspr_
 87    #define F77_ssyr2      cssyr2_
 88    #define F77_sspr2      csspr2_
 89    #define F77_dsymv      cdsymv_
 90    #define F77_dsbmv      cdsbmv_
 91    #define F77_dspmv      cdspmv_
 92    #define F77_dger       cdger_
 93    #define F77_dsyr       cdsyr_
 94    #define F77_dspr       cdspr_
 95    #define F77_dsyr2      cdsyr2_
 96    #define F77_dspr2      cdspr2_
 97    #define F77_chemv      cchemv_
 98    #define F77_chbmv      cchbmv_
 99    #define F77_chpmv      cchpmv_
100    #define F77_cgeru      ccgeru_
101    #define F77_cgerc      ccgerc_
102    #define F77_cher       ccher_
103    #define F77_chpr       cchpr_
104    #define F77_cher2      ccher2_
105    #define F77_chpr2      cchpr2_
106    #define F77_zhemv      czhemv_
107    #define F77_zhbmv      czhbmv_
108    #define F77_zhpmv      czhpmv_
109    #define F77_zgeru      czgeru_
110    #define F77_zgerc      czgerc_
111    #define F77_zher       czher_
112    #define F77_zhpr       czhpr_
113    #define F77_zher2      czher2_
114    #define F77_zhpr2      czhpr2_
115    #define F77_sgemv      csgemv_
116    #define F77_sgbmv      csgbmv_
117    #define F77_strmv      cstrmv_
118    #define F77_stbmv      cstbmv_
119    #define F77_stpmv      cstpmv_
120    #define F77_strsv      cstrsv_
121    #define F77_stbsv      cstbsv_
122    #define F77_stpsv      cstpsv_
123    #define F77_dgemv      cdgemv_
124    #define F77_dgbmv      cdgbmv_
125    #define F77_dtrmv      cdtrmv_
126    #define F77_dtbmv      cdtbmv_
127    #define F77_dtpmv      cdtpmv_
128    #define F77_dtrsv      cdtrsv_
129    #define F77_dtbsv      cdtbsv_
130    #define F77_dtpsv      cdtpsv_
131    #define F77_cgemv      ccgemv_
132    #define F77_cgbmv      ccgbmv_
133    #define F77_ctrmv      cctrmv_
134    #define F77_ctbmv      cctbmv_
135    #define F77_ctpmv      cctpmv_
136    #define F77_ctrsv      cctrsv_
137    #define F77_ctbsv      cctbsv_
138    #define F77_ctpsv      cctpsv_
139    #define F77_zgemv      czgemv_
140    #define F77_zgbmv      czgbmv_
141    #define F77_ztrmv      cztrmv_
142    #define F77_ztbmv      cztbmv_
143    #define F77_ztpmv      cztpmv_
144    #define F77_ztrsv      cztrsv_
145    #define F77_ztbsv      cztbsv_
146    #define F77_ztpsv      cztpsv_
147 /*
148  * Level 3 BLAS
149  */
150    #define F77_s3chke     cs3chke_
151    #define F77_d3chke     cd3chke_
152    #define F77_c3chke     cc3chke_
153    #define F77_z3chke     cz3chke_
154    #define F77_chemm      cchemm_
155    #define F77_cherk      ccherk_
156    #define F77_cher2k     ccher2k_
157    #define F77_zhemm      czhemm_
158    #define F77_zherk      czherk_
159    #define F77_zher2k     czher2k_
160    #define F77_sgemm      csgemm_
161    #define F77_ssymm      cssymm_
162    #define F77_ssyrk      cssyrk_
163    #define F77_ssyr2k     cssyr2k_
164    #define F77_strmm      cstrmm_
165    #define F77_strsm      cstrsm_
166    #define F77_dgemm      cdgemm_
167    #define F77_dsymm      cdsymm_
168    #define F77_dsyrk      cdsyrk_
169    #define F77_dsyr2k     cdsyr2k_
170    #define F77_dtrmm      cdtrmm_
171    #define F77_dtrsm      cdtrsm_
172    #define F77_cgemm      ccgemm_
173    #define F77_csymm      ccsymm_
174    #define F77_csyrk      ccsyrk_
175    #define F77_csyr2k     ccsyr2k_
176    #define F77_ctrmm      cctrmm_
177    #define F77_ctrsm      cctrsm_
178    #define F77_zgemm      czgemm_
179    #define F77_zsymm      czsymm_
180    #define F77_zsyrk      czsyrk_
181    #define F77_zsyr2k     czsyr2k_
182    #define F77_ztrmm      cztrmm_
183    #define F77_ztrsm      cztrsm_
184 #elif defined(UPCASE)
185    #define F77_xerbla  XERBLA
186 /*
187  * Level 1 BLAS
188  */
189    #define F77_srotg      SROTGTEST
190    #define F77_srotmg     SROTMGTEST
191    #define F77_srot       SROTCTEST
192    #define F77_srotm      SROTMTEST
193    #define F77_drotg      DROTGTEST
194    #define F77_drotmg     DROTMGTEST
195    #define F77_drot       DROTTEST
196    #define F77_drotm      DROTMTEST
197    #define F77_sswap      SSWAPTEST
198    #define F77_scopy      SCOPYTEST
199    #define F77_saxpy      SAXPYTEST
200    #define F77_isamax     ISAMAXTEST
201    #define F77_dswap      DSWAPTEST
202    #define F77_dcopy      DCOPYTEST
203    #define F77_daxpy      DAXPYTEST
204    #define F77_idamax     IDAMAXTEST
205    #define F77_cswap      CSWAPTEST
206    #define F77_ccopy      CCOPYTEST
207    #define F77_caxpy      CAXPYTEST
208    #define F77_icamax     ICAMAXTEST
209    #define F77_zswap      ZSWAPTEST
210    #define F77_zcopy      ZCOPYTEST
211    #define F77_zaxpy      ZAXPYTEST
212    #define F77_izamax     IZAMAXTEST
213    #define F77_sdot       SDOTTEST
214    #define F77_ddot       DDOTTEST
215    #define F77_dsdot       DSDOTTEST
216    #define F77_sscal      SSCALTEST
217    #define F77_dscal      DSCALTEST
218    #define F77_cscal      CSCALTEST
219    #define F77_zscal      ZSCALTEST
220    #define F77_csscal      CSSCALTEST
221    #define F77_zdscal      ZDSCALTEST
222    #define F77_cdotu      CDOTUTEST
223    #define F77_cdotc      CDOTCTEST
224    #define F77_zdotu      ZDOTUTEST
225    #define F77_zdotc      ZDOTCTEST
226    #define F77_snrm2      SNRM2TEST
227    #define F77_sasum      SASUMTEST
228    #define F77_dnrm2      DNRM2TEST
229    #define F77_dasum      DASUMTEST
230    #define F77_scnrm2      SCNRM2TEST
231    #define F77_scasum      SCASUMTEST
232    #define F77_dznrm2      DZNRM2TEST
233    #define F77_dzasum      DZASUMTEST
234    #define F77_sdsdot       SDSDOTTEST
235 /*
236  * Level 2 BLAS
237  */
238    #define F77_s2chke     CS2CHKE
239    #define F77_d2chke     CD2CHKE
240    #define F77_c2chke     CC2CHKE
241    #define F77_z2chke     CZ2CHKE
242    #define F77_ssymv      CSSYMV
243    #define F77_ssbmv      CSSBMV
244    #define F77_sspmv      CSSPMV
245    #define F77_sger       CSGER
246    #define F77_ssyr       CSSYR
247    #define F77_sspr       CSSPR
248    #define F77_ssyr2      CSSYR2
249    #define F77_sspr2      CSSPR2
250    #define F77_dsymv      CDSYMV
251    #define F77_dsbmv      CDSBMV
252    #define F77_dspmv      CDSPMV
253    #define F77_dger       CDGER
254    #define F77_dsyr       CDSYR
255    #define F77_dspr       CDSPR
256    #define F77_dsyr2      CDSYR2
257    #define F77_dspr2      CDSPR2
258    #define F77_chemv      CCHEMV
259    #define F77_chbmv      CCHBMV
260    #define F77_chpmv      CCHPMV
261    #define F77_cgeru      CCGERU
262    #define F77_cgerc      CCGERC
263    #define F77_cher       CCHER
264    #define F77_chpr       CCHPR
265    #define F77_cher2      CCHER2
266    #define F77_chpr2      CCHPR2
267    #define F77_zhemv      CZHEMV
268    #define F77_zhbmv      CZHBMV
269    #define F77_zhpmv      CZHPMV
270    #define F77_zgeru      CZGERU
271    #define F77_zgerc      CZGERC
272    #define F77_zher       CZHER
273    #define F77_zhpr       CZHPR
274    #define F77_zher2      CZHER2
275    #define F77_zhpr2      CZHPR2
276    #define F77_sgemv      CSGEMV
277    #define F77_sgbmv      CSGBMV
278    #define F77_strmv      CSTRMV
279    #define F77_stbmv      CSTBMV
280    #define F77_stpmv      CSTPMV
281    #define F77_strsv      CSTRSV
282    #define F77_stbsv      CSTBSV
283    #define F77_stpsv      CSTPSV
284    #define F77_dgemv      CDGEMV
285    #define F77_dgbmv      CDGBMV
286    #define F77_dtrmv      CDTRMV
287    #define F77_dtbmv      CDTBMV
288    #define F77_dtpmv      CDTPMV
289    #define F77_dtrsv      CDTRSV
290    #define F77_dtbsv      CDTBSV
291    #define F77_dtpsv      CDTPSV
292    #define F77_cgemv      CCGEMV
293    #define F77_cgbmv      CCGBMV
294    #define F77_ctrmv      CCTRMV
295    #define F77_ctbmv      CCTBMV
296    #define F77_ctpmv      CCTPMV
297    #define F77_ctrsv      CCTRSV
298    #define F77_ctbsv      CCTBSV
299    #define F77_ctpsv      CCTPSV
300    #define F77_zgemv      CZGEMV
301    #define F77_zgbmv      CZGBMV
302    #define F77_ztrmv      CZTRMV
303    #define F77_ztbmv      CZTBMV
304    #define F77_ztpmv      CZTPMV
305    #define F77_ztrsv      CZTRSV
306    #define F77_ztbsv      CZTBSV
307    #define F77_ztpsv      CZTPSV
308 /*
309  * Level 3 BLAS
310  */
311    #define F77_s3chke     CS3CHKE
312    #define F77_d3chke     CD3CHKE
313    #define F77_c3chke     CC3CHKE
314    #define F77_z3chke     CZ3CHKE
315    #define F77_chemm      CCHEMM
316    #define F77_cherk      CCHERK
317    #define F77_cher2k     CCHER2K
318    #define F77_zhemm      CZHEMM
319    #define F77_zherk      CZHERK
320    #define F77_zher2k     CZHER2K
321    #define F77_sgemm      CSGEMM
322    #define F77_ssymm      CSSYMM
323    #define F77_ssyrk      CSSYRK
324    #define F77_ssyr2k     CSSYR2K
325    #define F77_strmm      CSTRMM
326    #define F77_strsm      CSTRSM
327    #define F77_dgemm      CDGEMM
328    #define F77_dsymm      CDSYMM
329    #define F77_dsyrk      CDSYRK
330    #define F77_dsyr2k     CDSYR2K
331    #define F77_dtrmm      CDTRMM
332    #define F77_dtrsm      CDTRSM
333    #define F77_cgemm      CCGEMM
334    #define F77_csymm      CCSYMM
335    #define F77_csyrk      CCSYRK
336    #define F77_csyr2k     CCSYR2K
337    #define F77_ctrmm      CCTRMM
338    #define F77_ctrsm      CCTRSM
339    #define F77_zgemm      CZGEMM
340    #define F77_zsymm      CZSYMM
341    #define F77_zsyrk      CZSYRK
342    #define F77_zsyr2k     CZSYR2K
343    #define F77_ztrmm      CZTRMM
344    #define F77_ztrsm      CZTRSM
345 #elif defined(NOCHANGE)
346    #define F77_xerbla  xerbla
347 /*
348  * Level 1 BLAS
349  */
350    #define F77_srotg      srotgtest
351    #define F77_srotmg     srotmgtest
352    #define F77_srot       srottest
353    #define F77_srotm      srotmtest
354    #define F77_drotg      drotgtest
355    #define F77_drotmg     drotmgtest
356    #define F77_drot       drottest
357    #define F77_drotm      drotmtest
358    #define F77_sswap      sswaptest
359    #define F77_scopy      scopytest
360    #define F77_saxpy      saxpytest
361    #define F77_isamax     isamaxtest
362    #define F77_dswap      dswaptest
363    #define F77_dcopy      dcopytest
364    #define F77_daxpy      daxpytest
365    #define F77_idamax     idamaxtest
366    #define F77_cswap      cswaptest
367    #define F77_ccopy      ccopytest
368    #define F77_caxpy      caxpytest
369    #define F77_icamax     icamaxtest
370    #define F77_zswap      zswaptest
371    #define F77_zcopy      zcopytest
372    #define F77_zaxpy      zaxpytest
373    #define F77_izamax     izamaxtest
374    #define F77_sdot       sdottest
375    #define F77_ddot       ddottest
376    #define F77_dsdot       dsdottest
377    #define F77_sscal      sscaltest
378    #define F77_dscal      dscaltest
379    #define F77_cscal      cscaltest
380    #define F77_zscal      zscaltest
381    #define F77_csscal      csscaltest
382    #define F77_zdscal      zdscaltest
383    #define F77_cdotu  cdotutest
384    #define F77_cdotc  cdotctest
385    #define F77_zdotu  zdotutest
386    #define F77_zdotc  zdotctest
387    #define F77_snrm2  snrm2test
388    #define F77_sasum  sasumtest
389    #define F77_dnrm2  dnrm2test
390    #define F77_dasum  dasumtest
391    #define F77_scnrm2  scnrm2test
392    #define F77_scasum  scasumtest
393    #define F77_dznrm2  dznrm2test
394    #define F77_dzasum  dzasumtest
395    #define F77_sdsdot   sdsdottest
396 /*
397  * Level 2 BLAS
398  */
399    #define F77_s2chke     cs2chke
400    #define F77_d2chke     cd2chke
401    #define F77_c2chke     cc2chke
402    #define F77_z2chke     cz2chke
403    #define F77_ssymv      cssymv
404    #define F77_ssbmv      cssbmv
405    #define F77_sspmv      csspmv
406    #define F77_sger       csger
407    #define F77_ssyr       cssyr
408    #define F77_sspr       csspr
409    #define F77_ssyr2      cssyr2
410    #define F77_sspr2      csspr2
411    #define F77_dsymv      cdsymv
412    #define F77_dsbmv      cdsbmv
413    #define F77_dspmv      cdspmv
414    #define F77_dger       cdger
415    #define F77_dsyr       cdsyr
416    #define F77_dspr       cdspr
417    #define F77_dsyr2      cdsyr2
418    #define F77_dspr2      cdspr2
419    #define F77_chemv      cchemv
420    #define F77_chbmv      cchbmv
421    #define F77_chpmv      cchpmv
422    #define F77_cgeru      ccgeru
423    #define F77_cgerc      ccgerc
424    #define F77_cher       ccher
425    #define F77_chpr       cchpr
426    #define F77_cher2      ccher2
427    #define F77_chpr2      cchpr2
428    #define F77_zhemv      czhemv
429    #define F77_zhbmv      czhbmv
430    #define F77_zhpmv      czhpmv
431    #define F77_zgeru      czgeru
432    #define F77_zgerc      czgerc
433    #define F77_zher       czher
434    #define F77_zhpr       czhpr
435    #define F77_zher2      czher2
436    #define F77_zhpr2      czhpr2
437    #define F77_sgemv      csgemv
438    #define F77_sgbmv      csgbmv
439    #define F77_strmv      cstrmv
440    #define F77_stbmv      cstbmv
441    #define F77_stpmv      cstpmv
442    #define F77_strsv      cstrsv
443    #define F77_stbsv      cstbsv
444    #define F77_stpsv      cstpsv
445    #define F77_dgemv      cdgemv
446    #define F77_dgbmv      cdgbmv
447    #define F77_dtrmv      cdtrmv
448    #define F77_dtbmv      cdtbmv
449    #define F77_dtpmv      cdtpmv
450    #define F77_dtrsv      cdtrsv
451    #define F77_dtbsv      cdtbsv
452    #define F77_dtpsv      cdtpsv
453    #define F77_cgemv      ccgemv
454    #define F77_cgbmv      ccgbmv
455    #define F77_ctrmv      cctrmv
456    #define F77_ctbmv      cctbmv
457    #define F77_ctpmv      cctpmv
458    #define F77_ctrsv      cctrsv
459    #define F77_ctbsv      cctbsv
460    #define F77_ctpsv      cctpsv
461    #define F77_zgemv      czgemv
462    #define F77_zgbmv      czgbmv
463    #define F77_ztrmv      cztrmv
464    #define F77_ztbmv      cztbmv
465    #define F77_ztpmv      cztpmv
466    #define F77_ztrsv      cztrsv
467    #define F77_ztbsv      cztbsv
468    #define F77_ztpsv      cztpsv
469 /*
470  * Level 3 BLAS
471  */
472    #define F77_s3chke     cs3chke
473    #define F77_d3chke     cd3chke
474    #define F77_c3chke     cc3chke
475    #define F77_z3chke     cz3chke
476    #define F77_chemm      cchemm
477    #define F77_cherk      ccherk
478    #define F77_cher2k     ccher2k
479    #define F77_zhemm      czhemm
480    #define F77_zherk      czherk
481    #define F77_zher2k     czher2k
482    #define F77_sgemm      csgemm
483    #define F77_ssymm      cssymm
484    #define F77_ssyrk      cssyrk
485    #define F77_ssyr2k     cssyr2k
486    #define F77_strmm      cstrmm
487    #define F77_strsm      cstrsm
488    #define F77_dgemm      cdgemm
489    #define F77_dsymm      cdsymm
490    #define F77_dsyrk      cdsyrk
491    #define F77_dsyr2k     cdsyr2k
492    #define F77_dtrmm      cdtrmm
493    #define F77_dtrsm      cdtrsm
494    #define F77_cgemm      ccgemm
495    #define F77_csymm      ccsymm
496    #define F77_csyrk      ccsyrk
497    #define F77_csyr2k     ccsyr2k
498    #define F77_ctrmm      cctrmm
499    #define F77_ctrsm      cctrsm
500    #define F77_zgemm      czgemm
501    #define F77_zsymm      czsymm
502    #define F77_zsyrk      czsyrk
503    #define F77_zsyr2k     czsyr2k
504    #define F77_ztrmm      cztrmm
505    #define F77_ztrsm      cztrsm
506 #endif
507 
508 void get_transpose_type(char *type, enum CBLAS_TRANSPOSE *trans);
509 void get_uplo_type(char *type, enum CBLAS_UPLO *uplo);
510 void get_diag_type(char *type, enum CBLAS_DIAG *diag);
511 void get_side_type(char *type, enum CBLAS_SIDE *side);
512 
513 #endif /* CBLAS_TEST_H */