/*
* cblas_test.h
* Written by Keita Teranishi
*/
#ifndef CBLAS_TEST_H
#define CBLAS_TEST_H
#include "cblas.h"
#define TRUE 1
#define PASSED 1
#define TEST_ROW_MJR 1
#define FALSE 0
#define FAILED 0
#define TEST_COL_MJR 0
#define INVALID -1
#define UNDEFINED -1
typedef struct { float real; float imag; } CBLAS_TEST_COMPLEX;
typedef struct { double real; double imag; } CBLAS_TEST_ZOMPLEX;
#if defined(ADD_)
// Google-local: Note that here we retain the standard name, as we want to
// override the existing BLAS/LAPACK version when running tests.
#define F77_xerbla xerbla_
/*
* Level 1 BLAS
*/
#define F77_srotg srotgtest_
#define F77_srotmg srotmgtest_
#define F77_srot srottest_
#define F77_srotm srotmtest_
#define F77_drotg drotgtest_
#define F77_drotmg drotmgtest_
#define F77_drot drottest_
#define F77_drotm drotmtest_
#define F77_sswap sswaptest_
#define F77_scopy scopytest_
#define F77_saxpy saxpytest_
#define F77_isamax isamaxtest_
#define F77_dswap dswaptest_
#define F77_dcopy dcopytest_
#define F77_daxpy daxpytest_
#define F77_idamax idamaxtest_
#define F77_cswap cswaptest_
#define F77_ccopy ccopytest_
#define F77_caxpy caxpytest_
#define F77_icamax icamaxtest_
#define F77_zswap zswaptest_
#define F77_zcopy zcopytest_
#define F77_zaxpy zaxpytest_
#define F77_izamax izamaxtest_
#define F77_sdot sdottest_
#define F77_ddot ddottest_
#define F77_dsdot dsdottest_
#define F77_sscal sscaltest_
#define F77_dscal dscaltest_
#define F77_cscal cscaltest_
#define F77_zscal zscaltest_
#define F77_csscal csscaltest_
#define F77_zdscal zdscaltest_
#define F77_cdotu cdotutest_
#define F77_cdotc cdotctest_
#define F77_zdotu zdotutest_
#define F77_zdotc zdotctest_
#define F77_snrm2 snrm2test_
#define F77_sasum sasumtest_
#define F77_dnrm2 dnrm2test_
#define F77_dasum dasumtest_
#define F77_scnrm2 scnrm2test_
#define F77_scasum scasumtest_
#define F77_dznrm2 dznrm2test_
#define F77_dzasum dzasumtest_
#define F77_sdsdot sdsdottest_
/*
* Level 2 BLAS
*/
#define F77_s2chke cs2chke_
#define F77_d2chke cd2chke_
#define F77_c2chke cc2chke_
#define F77_z2chke cz2chke_
#define F77_ssymv cssymv_
#define F77_ssbmv cssbmv_
#define F77_sspmv csspmv_
#define F77_sger csger_
#define F77_ssyr cssyr_
#define F77_sspr csspr_
#define F77_ssyr2 cssyr2_
#define F77_sspr2 csspr2_
#define F77_dsymv cdsymv_
#define F77_dsbmv cdsbmv_
#define F77_dspmv cdspmv_
#define F77_dger cdger_
#define F77_dsyr cdsyr_
#define F77_dspr cdspr_
#define F77_dsyr2 cdsyr2_
#define F77_dspr2 cdspr2_
#define F77_chemv cchemv_
#define F77_chbmv cchbmv_
#define F77_chpmv cchpmv_
#define F77_cgeru ccgeru_
#define F77_cgerc ccgerc_
#define F77_cher ccher_
#define F77_chpr cchpr_
#define F77_cher2 ccher2_
#define F77_chpr2 cchpr2_
#define F77_zhemv czhemv_
#define F77_zhbmv czhbmv_
#define F77_zhpmv czhpmv_
#define F77_zgeru czgeru_
#define F77_zgerc czgerc_
#define F77_zher czher_
#define F77_zhpr czhpr_
#define F77_zher2 czher2_
#define F77_zhpr2 czhpr2_
#define F77_sgemv csgemv_
#define F77_sgbmv csgbmv_
#define F77_strmv cstrmv_
#define F77_stbmv cstbmv_
#define F77_stpmv cstpmv_
#define F77_strsv cstrsv_
#define F77_stbsv cstbsv_
#define F77_stpsv cstpsv_
#define F77_dgemv cdgemv_
#define F77_dgbmv cdgbmv_
#define F77_dtrmv cdtrmv_
#define F77_dtbmv cdtbmv_
#define F77_dtpmv cdtpmv_
#define F77_dtrsv cdtrsv_
#define F77_dtbsv cdtbsv_
#define F77_dtpsv cdtpsv_
#define F77_cgemv ccgemv_
#define F77_cgbmv ccgbmv_
#define F77_ctrmv cctrmv_
#define F77_ctbmv cctbmv_
#define F77_ctpmv cctpmv_
#define F77_ctrsv cctrsv_
#define F77_ctbsv cctbsv_
#define F77_ctpsv cctpsv_
#define F77_zgemv czgemv_
#define F77_zgbmv czgbmv_
#define F77_ztrmv cztrmv_
#define F77_ztbmv cztbmv_
#define F77_ztpmv cztpmv_
#define F77_ztrsv cztrsv_
#define F77_ztbsv cztbsv_
#define F77_ztpsv cztpsv_
/*
* Level 3 BLAS
*/
#define F77_s3chke cs3chke_
#define F77_d3chke cd3chke_
#define F77_c3chke cc3chke_
#define F77_z3chke cz3chke_
#define F77_chemm cchemm_
#define F77_cherk ccherk_
#define F77_cher2k ccher2k_
#define F77_zhemm czhemm_
#define F77_zherk czherk_
#define F77_zher2k czher2k_
#define F77_sgemm csgemm_
#define F77_ssymm cssymm_
#define F77_ssyrk cssyrk_
#define F77_ssyr2k cssyr2k_
#define F77_strmm cstrmm_
#define F77_strsm cstrsm_
#define F77_dgemm cdgemm_
#define F77_dsymm cdsymm_
#define F77_dsyrk cdsyrk_
#define F77_dsyr2k cdsyr2k_
#define F77_dtrmm cdtrmm_
#define F77_dtrsm cdtrsm_
#define F77_cgemm ccgemm_
#define F77_csymm ccsymm_
#define F77_csyrk ccsyrk_
#define F77_csyr2k ccsyr2k_
#define F77_ctrmm cctrmm_
#define F77_ctrsm cctrsm_
#define F77_zgemm czgemm_
#define F77_zsymm czsymm_
#define F77_zsyrk czsyrk_
#define F77_zsyr2k czsyr2k_
#define F77_ztrmm cztrmm_
#define F77_ztrsm cztrsm_
#elif defined(UPCASE)
#define F77_xerbla XERBLA
/*
* Level 1 BLAS
*/
#define F77_srotg SROTGTEST
#define F77_srotmg SROTMGTEST
#define F77_srot SROTCTEST
#define F77_srotm SROTMTEST
#define F77_drotg DROTGTEST
#define F77_drotmg DROTMGTEST
#define F77_drot DROTTEST
#define F77_drotm DROTMTEST
#define F77_sswap SSWAPTEST
#define F77_scopy SCOPYTEST
#define F77_saxpy SAXPYTEST
#define F77_isamax ISAMAXTEST
#define F77_dswap DSWAPTEST
#define F77_dcopy DCOPYTEST
#define F77_daxpy DAXPYTEST
#define F77_idamax IDAMAXTEST
#define F77_cswap CSWAPTEST
#define F77_ccopy CCOPYTEST
#define F77_caxpy CAXPYTEST
#define F77_icamax ICAMAXTEST
#define F77_zswap ZSWAPTEST
#define F77_zcopy ZCOPYTEST
#define F77_zaxpy ZAXPYTEST
#define F77_izamax IZAMAXTEST
#define F77_sdot SDOTTEST
#define F77_ddot DDOTTEST
#define F77_dsdot DSDOTTEST
#define F77_sscal SSCALTEST
#define F77_dscal DSCALTEST
#define F77_cscal CSCALTEST
#define F77_zscal ZSCALTEST
#define F77_csscal CSSCALTEST
#define F77_zdscal ZDSCALTEST
#define F77_cdotu CDOTUTEST
#define F77_cdotc CDOTCTEST
#define F77_zdotu ZDOTUTEST
#define F77_zdotc ZDOTCTEST
#define F77_snrm2 SNRM2TEST
#define F77_sasum SASUMTEST
#define F77_dnrm2 DNRM2TEST
#define F77_dasum DASUMTEST
#define F77_scnrm2 SCNRM2TEST
#define F77_scasum SCASUMTEST
#define F77_dznrm2 DZNRM2TEST
#define F77_dzasum DZASUMTEST
#define F77_sdsdot SDSDOTTEST
/*
* Level 2 BLAS
*/
#define F77_s2chke CS2CHKE
#define F77_d2chke CD2CHKE
#define F77_c2chke CC2CHKE
#define F77_z2chke CZ2CHKE
#define F77_ssymv CSSYMV
#define F77_ssbmv CSSBMV
#define F77_sspmv CSSPMV
#define F77_sger CSGER
#define F77_ssyr CSSYR
#define F77_sspr CSSPR
#define F77_ssyr2 CSSYR2
#define F77_sspr2 CSSPR2
#define F77_dsymv CDSYMV
#define F77_dsbmv CDSBMV
#define F77_dspmv CDSPMV
#define F77_dger CDGER
#define F77_dsyr CDSYR
#define F77_dspr CDSPR
#define F77_dsyr2 CDSYR2
#define F77_dspr2 CDSPR2
#define F77_chemv CCHEMV
#define F77_chbmv CCHBMV
#define F77_chpmv CCHPMV
#define F77_cgeru CCGERU
#define F77_cgerc CCGERC
#define F77_cher CCHER
#define F77_chpr CCHPR
#define F77_cher2 CCHER2
#define F77_chpr2 CCHPR2
#define F77_zhemv CZHEMV
#define F77_zhbmv CZHBMV
#define F77_zhpmv CZHPMV
#define F77_zgeru CZGERU
#define F77_zgerc CZGERC
#define F77_zher CZHER
#define F77_zhpr CZHPR
#define F77_zher2 CZHER2
#define F77_zhpr2 CZHPR2
#define F77_sgemv CSGEMV
#define F77_sgbmv CSGBMV
#define F77_strmv CSTRMV
#define F77_stbmv CSTBMV
#define F77_stpmv CSTPMV
#define F77_strsv CSTRSV
#define F77_stbsv CSTBSV
#define F77_stpsv CSTPSV
#define F77_dgemv CDGEMV
#define F77_dgbmv CDGBMV
#define F77_dtrmv CDTRMV
#define F77_dtbmv CDTBMV
#define F77_dtpmv CDTPMV
#define F77_dtrsv CDTRSV
#define F77_dtbsv CDTBSV
#define F77_dtpsv CDTPSV
#define F77_cgemv CCGEMV
#define F77_cgbmv CCGBMV
#define F77_ctrmv CCTRMV
#define F77_ctbmv CCTBMV
#define F77_ctpmv CCTPMV
#define F77_ctrsv CCTRSV
#define F77_ctbsv CCTBSV
#define F77_ctpsv CCTPSV
#define F77_zgemv CZGEMV
#define F77_zgbmv CZGBMV
#define F77_ztrmv CZTRMV
#define F77_ztbmv CZTBMV
#define F77_ztpmv CZTPMV
#define F77_ztrsv CZTRSV
#define F77_ztbsv CZTBSV
#define F77_ztpsv CZTPSV
/*
* Level 3 BLAS
*/
#define F77_s3chke CS3CHKE
#define F77_d3chke CD3CHKE
#define F77_c3chke CC3CHKE
#define F77_z3chke CZ3CHKE
#define F77_chemm CCHEMM
#define F77_cherk CCHERK
#define F77_cher2k CCHER2K
#define F77_zhemm CZHEMM
#define F77_zherk CZHERK
#define F77_zher2k CZHER2K
#define F77_sgemm CSGEMM
#define F77_ssymm CSSYMM
#define F77_ssyrk CSSYRK
#define F77_ssyr2k CSSYR2K
#define F77_strmm CSTRMM
#define F77_strsm CSTRSM
#define F77_dgemm CDGEMM
#define F77_dsymm CDSYMM
#define F77_dsyrk CDSYRK
#define F77_dsyr2k CDSYR2K
#define F77_dtrmm CDTRMM
#define F77_dtrsm CDTRSM
#define F77_cgemm CCGEMM
#define F77_csymm CCSYMM
#define F77_csyrk CCSYRK
#define F77_csyr2k CCSYR2K
#define F77_ctrmm CCTRMM
#define F77_ctrsm CCTRSM
#define F77_zgemm CZGEMM
#define F77_zsymm CZSYMM
#define F77_zsyrk CZSYRK
#define F77_zsyr2k CZSYR2K
#define F77_ztrmm CZTRMM
#define F77_ztrsm CZTRSM
#elif defined(NOCHANGE)
#define F77_xerbla xerbla
/*
* Level 1 BLAS
*/
#define F77_srotg srotgtest
#define F77_srotmg srotmgtest
#define F77_srot srottest
#define F77_srotm srotmtest
#define F77_drotg drotgtest
#define F77_drotmg drotmgtest
#define F77_drot drottest
#define F77_drotm drotmtest
#define F77_sswap sswaptest
#define F77_scopy scopytest
#define F77_saxpy saxpytest
#define F77_isamax isamaxtest
#define F77_dswap dswaptest
#define F77_dcopy dcopytest
#define F77_daxpy daxpytest
#define F77_idamax idamaxtest
#define F77_cswap cswaptest
#define F77_ccopy ccopytest
#define F77_caxpy caxpytest
#define F77_icamax icamaxtest
#define F77_zswap zswaptest
#define F77_zcopy zcopytest
#define F77_zaxpy zaxpytest
#define F77_izamax izamaxtest
#define F77_sdot sdottest
#define F77_ddot ddottest
#define F77_dsdot dsdottest
#define F77_sscal sscaltest
#define F77_dscal dscaltest
#define F77_cscal cscaltest
#define F77_zscal zscaltest
#define F77_csscal csscaltest
#define F77_zdscal zdscaltest
#define F77_cdotu cdotutest
#define F77_cdotc cdotctest
#define F77_zdotu zdotutest
#define F77_zdotc zdotctest
#define F77_snrm2 snrm2test
#define F77_sasum sasumtest
#define F77_dnrm2 dnrm2test
#define F77_dasum dasumtest
#define F77_scnrm2 scnrm2test
#define F77_scasum scasumtest
#define F77_dznrm2 dznrm2test
#define F77_dzasum dzasumtest
#define F77_sdsdot sdsdottest
/*
* Level 2 BLAS
*/
#define F77_s2chke cs2chke
#define F77_d2chke cd2chke
#define F77_c2chke cc2chke
#define F77_z2chke cz2chke
#define F77_ssymv cssymv
#define F77_ssbmv cssbmv
#define F77_sspmv csspmv
#define F77_sger csger
#define F77_ssyr cssyr
#define F77_sspr csspr
#define F77_ssyr2 cssyr2
#define F77_sspr2 csspr2
#define F77_dsymv cdsymv
#define F77_dsbmv cdsbmv
#define F77_dspmv cdspmv
#define F77_dger cdger
#define F77_dsyr cdsyr
#define F77_dspr cdspr
#define F77_dsyr2 cdsyr2
#define F77_dspr2 cdspr2
#define F77_chemv cchemv
#define F77_chbmv cchbmv
#define F77_chpmv cchpmv
#define F77_cgeru ccgeru
#define F77_cgerc ccgerc
#define F77_cher ccher
#define F77_chpr cchpr
#define F77_cher2 ccher2
#define F77_chpr2 cchpr2
#define F77_zhemv czhemv
#define F77_zhbmv czhbmv
#define F77_zhpmv czhpmv
#define F77_zgeru czgeru
#define F77_zgerc czgerc
#define F77_zher czher
#define F77_zhpr czhpr
#define F77_zher2 czher2
#define F77_zhpr2 czhpr2
#define F77_sgemv csgemv
#define F77_sgbmv csgbmv
#define F77_strmv cstrmv
#define F77_stbmv cstbmv
#define F77_stpmv cstpmv
#define F77_strsv cstrsv
#define F77_stbsv cstbsv
#define F77_stpsv cstpsv
#define F77_dgemv cdgemv
#define F77_dgbmv cdgbmv
#define F77_dtrmv cdtrmv
#define F77_dtbmv cdtbmv
#define F77_dtpmv cdtpmv
#define F77_dtrsv cdtrsv
#define F77_dtbsv cdtbsv
#define F77_dtpsv cdtpsv
#define F77_cgemv ccgemv
#define F77_cgbmv ccgbmv
#define F77_ctrmv cctrmv
#define F77_ctbmv cctbmv
#define F77_ctpmv cctpmv
#define F77_ctrsv cctrsv
#define F77_ctbsv cctbsv
#define F77_ctpsv cctpsv
#define F77_zgemv czgemv
#define F77_zgbmv czgbmv
#define F77_ztrmv cztrmv
#define F77_ztbmv cztbmv
#define F77_ztpmv cztpmv
#define F77_ztrsv cztrsv
#define F77_ztbsv cztbsv
#define F77_ztpsv cztpsv
/*
* Level 3 BLAS
*/
#define F77_s3chke cs3chke
#define F77_d3chke cd3chke
#define F77_c3chke cc3chke
#define F77_z3chke cz3chke
#define F77_chemm cchemm
#define F77_cherk ccherk
#define F77_cher2k ccher2k
#define F77_zhemm czhemm
#define F77_zherk czherk
#define F77_zher2k czher2k
#define F77_sgemm csgemm
#define F77_ssymm cssymm
#define F77_ssyrk cssyrk
#define F77_ssyr2k cssyr2k
#define F77_strmm cstrmm
#define F77_strsm cstrsm
#define F77_dgemm cdgemm
#define F77_dsymm cdsymm
#define F77_dsyrk cdsyrk
#define F77_dsyr2k cdsyr2k
#define F77_dtrmm cdtrmm
#define F77_dtrsm cdtrsm
#define F77_cgemm ccgemm
#define F77_csymm ccsymm
#define F77_csyrk ccsyrk
#define F77_csyr2k ccsyr2k
#define F77_ctrmm cctrmm
#define F77_ctrsm cctrsm
#define F77_zgemm czgemm
#define F77_zsymm czsymm
#define F77_zsyrk czsyrk
#define F77_zsyr2k czsyr2k
#define F77_ztrmm cztrmm
#define F77_ztrsm cztrsm
#endif
void get_transpose_type(char *type, enum CBLAS_TRANSPOSE *trans);
void get_uplo_type(char *type, enum CBLAS_UPLO *uplo);
void get_diag_type(char *type, enum CBLAS_DIAG *diag);
void get_side_type(char *type, enum CBLAS_SIDE *side);
#endif /* CBLAS_TEST_H */