/* * cblas_f77.h * Written by Keita Teranishi * * Updated by Jeff Horner * Merged cblas_f77.h and cblas_fortran_header.h */ #ifndef CBLAS_F77_H #define CBLAS_F77_H #define FCHAR char * #define FINT const int * /* * Level 1 BLAS */ // Google-local: Nonstandard xerbla name to avoid collisions with LAPACK. #define F77_xerbla cblas_f77_xerbla_ #define F77_srotg srotg_ #define F77_srotmg srotmg_ #define F77_srot srot_ #define F77_srotm srotm_ #define F77_drotg drotg_ #define F77_drotmg drotmg_ #define F77_drot drot_ #define F77_drotm drotm_ #define F77_sswap sswap_ #define F77_scopy scopy_ #define F77_saxpy saxpy_ #define F77_dswap dswap_ #define F77_dcopy dcopy_ #define F77_daxpy daxpy_ #define F77_cswap cswap_ #define F77_ccopy ccopy_ #define F77_caxpy caxpy_ #define F77_zswap zswap_ #define F77_zcopy zcopy_ #define F77_zaxpy zaxpy_ #define F77_sscal sscal_ #define F77_dscal dscal_ #define F77_cscal cscal_ #define F77_zscal zscal_ #define F77_csscal csscal_ #define F77_zdscal zdscal_ // Google-local: Use the function version of these, so that we don't need // the built-in Fortran wrappers. #define F77_sdot sdot_ #define F77_ddot ddot_ #define F77_dsdot dsdot_ #define F77_sdsdot sdsdot_ #define F77_snrm2 snrm2_ #define F77_sasum sasum_ #define F77_dnrm2 dnrm2_ #define F77_dasum dasum_ #define F77_isamax isamax_ #define F77_idamax idamax_ #define F77_icamax icamax_ #define F77_izamax izamax_ #define F77_scnrm2 scnrm2_ #define F77_scasum scasum_ #define F77_dznrm2 dznrm2_ #define F77_dzasum dzasum_ // Google-local: Use Eigen's "subroutine" versions of these functions, not // the built-in Fortran wrappers. #define F77_cdotc_sub cdotcw_ #define F77_cdotu_sub cdotuw_ #define F77_zdotu_sub zdotuw_ #define F77_zdotc_sub zdotcw_ /* * Level 2 BLAS */ #define F77_ssymv ssymv_ #define F77_ssbmv ssbmv_ #define F77_sspmv sspmv_ #define F77_sger sger_ #define F77_ssyr ssyr_ #define F77_sspr sspr_ #define F77_ssyr2 ssyr2_ #define F77_sspr2 sspr2_ #define F77_dsymv dsymv_ #define F77_dsbmv dsbmv_ #define F77_dspmv dspmv_ #define F77_dger dger_ #define F77_dsyr dsyr_ #define F77_dspr dspr_ #define F77_dsyr2 dsyr2_ #define F77_dspr2 dspr2_ #define F77_chemv chemv_ #define F77_chbmv chbmv_ #define F77_chpmv chpmv_ #define F77_cgeru cgeru_ #define F77_cgerc cgerc_ #define F77_cher cher_ #define F77_chpr chpr_ #define F77_cher2 cher2_ #define F77_chpr2 chpr2_ #define F77_zhemv zhemv_ #define F77_zhbmv zhbmv_ #define F77_zhpmv zhpmv_ #define F77_zgeru zgeru_ #define F77_zgerc zgerc_ #define F77_zher zher_ #define F77_zhpr zhpr_ #define F77_zher2 zher2_ #define F77_zhpr2 zhpr2_ #define F77_sgemv sgemv_ #define F77_sgbmv sgbmv_ #define F77_strmv strmv_ #define F77_stbmv stbmv_ #define F77_stpmv stpmv_ #define F77_strsv strsv_ #define F77_stbsv stbsv_ #define F77_stpsv stpsv_ #define F77_dgemv dgemv_ #define F77_dgbmv dgbmv_ #define F77_dtrmv dtrmv_ #define F77_dtbmv dtbmv_ #define F77_dtpmv dtpmv_ #define F77_dtrsv dtrsv_ #define F77_dtbsv dtbsv_ #define F77_dtpsv dtpsv_ #define F77_cgemv cgemv_ #define F77_cgbmv cgbmv_ #define F77_ctrmv ctrmv_ #define F77_ctbmv ctbmv_ #define F77_ctpmv ctpmv_ #define F77_ctrsv ctrsv_ #define F77_ctbsv ctbsv_ #define F77_ctpsv ctpsv_ #define F77_zgemv zgemv_ #define F77_zgbmv zgbmv_ #define F77_ztrmv ztrmv_ #define F77_ztbmv ztbmv_ #define F77_ztpmv ztpmv_ #define F77_ztrsv ztrsv_ #define F77_ztbsv ztbsv_ #define F77_ztpsv ztpsv_ /* * Level 3 BLAS */ #define F77_chemm chemm_ #define F77_cherk cherk_ #define F77_cher2k cher2k_ #define F77_zhemm zhemm_ #define F77_zherk zherk_ #define F77_zher2k zher2k_ #define F77_sgemm sgemm_ #define F77_ssymm ssymm_ #define F77_ssyrk ssyrk_ #define F77_ssyr2k ssyr2k_ #define F77_strmm strmm_ #define F77_strsm strsm_ #define F77_dgemm dgemm_ #define F77_dsymm dsymm_ #define F77_dsyrk dsyrk_ #define F77_dsyr2k dsyr2k_ #define F77_dtrmm dtrmm_ #define F77_dtrsm dtrsm_ #define F77_cgemm cgemm_ #define F77_csymm csymm_ #define F77_csyrk csyrk_ #define F77_csyr2k csyr2k_ #define F77_ctrmm ctrmm_ #define F77_ctrsm ctrsm_ #define F77_zgemm zgemm_ #define F77_zsymm zsymm_ #define F77_zsyrk zsyrk_ #define F77_zsyr2k zsyr2k_ #define F77_ztrmm ztrmm_ #define F77_ztrsm ztrsm_ #ifdef __cplusplus extern "C" { #endif void F77_xerbla(FCHAR, void *); /* * Level 1 Fortran Prototypes */ /* Single Precision */ void F77_srot(FINT, float *, FINT, float *, FINT, const float *, const float *); void F77_srotg(float *,float *,float *,float *); void F77_srotm( FINT, float *, FINT, float *, FINT, const float *); void F77_srotmg(float *,float *,float *,const float *, float *); void F77_sswap( FINT, float *, FINT, float *, FINT); void F77_scopy( FINT, const float *, FINT, float *, FINT); void F77_saxpy( FINT, const float *, const float *, FINT, float *, FINT); void F77_sscal( FINT, const float *, float *, FINT); // Google-local: Use the function version of these, so that we don't need // the built-in Fortran wrappers. float F77_sdot(FINT, const float *, FINT, const float *, FINT); float F77_sdsdot( FINT, const float *, const float *, FINT, const float *, FINT); float F77_snrm2( FINT, const float *, FINT); float F77_sasum( FINT, const float *, FINT); int F77_isamax( FINT, const float *, FINT); /* Double Precision */ void F77_drot(FINT, double *, FINT, double *, FINT, const double *, const double *); void F77_drotg(double *,double *,double *,double *); void F77_drotm( FINT, double *, FINT, double *, FINT, const double *); void F77_drotmg(double *,double *,double *,const double *, double *); void F77_dswap( FINT, double *, FINT, double *, FINT); void F77_dcopy( FINT, const double *, FINT, double *, FINT); void F77_daxpy( FINT, const double *, const double *, FINT, double *, FINT); void F77_dswap( FINT, double *, FINT, double *, FINT); void F77_dscal( FINT, const double *, double *, FINT); // Google-local: Use the function version of these, so that we don't need // the built-in Fortran wrappers. double F77_ddot(FINT, const double *, FINT, const double *, FINT); double F77_dsdot(FINT, const float *, FINT, const float *, FINT); double F77_dnrm2( FINT, const double *, FINT); double F77_dasum( FINT, const double *, FINT); int F77_idamax( FINT, const double * , FINT); /* Single Complex Precision */ void F77_cswap( FINT, void *, FINT, void *, FINT); void F77_ccopy( FINT, const void *, FINT, void *, FINT); void F77_caxpy( FINT, const void *, const void *, FINT, void *, FINT); void F77_cswap( FINT, void *, FINT, void *, FINT); void F77_cdotc_sub( FINT, const void *, FINT, const void *, FINT, void *); void F77_cdotu_sub( FINT, const void *, FINT, const void *, FINT, void *); void F77_cscal( FINT, const void *, void *, FINT); void F77_csscal( FINT, const float *, void *, FINT); // Google-local: Use the function version of these, so that we don't need // the built-in Fortran wrappers. int F77_icamax( FINT, const void *, FINT); float F77_scnrm2( FINT, const void *, FINT); float F77_scasum( FINT, const void *, FINT); /* Double Complex Precision */ void F77_zswap( FINT, void *, FINT, void *, FINT); void F77_zcopy( FINT, const void *, FINT, void *, FINT); void F77_zaxpy( FINT, const void *, const void *, FINT, void *, FINT); void F77_zswap( FINT, void *, FINT, void *, FINT); void F77_zdotc_sub( FINT, const void *, FINT, const void *, FINT, void *); void F77_zdotu_sub( FINT, const void *, FINT, const void *, FINT, void *); void F77_zdscal( FINT, const double *, void *, FINT); void F77_zscal( FINT, const void *, void *, FINT); // Google-local: Use the function version of these, so that we don't need // the built-in Fortran wrappers. int F77_izamax( FINT, const void *, FINT); double F77_dznrm2( FINT, const void *, FINT); double F77_dzasum( FINT, const void *, FINT); /* * Level 2 Fortran Prototypes */ /* Single Precision */ void F77_sgemv(FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_sgbmv(FCHAR, FINT, FINT, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_ssymv(FCHAR, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_ssbmv(FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_sspmv(FCHAR, FINT, const float *, const float *, const float *, FINT, const float *, float *, FINT); void F77_strmv( FCHAR, FCHAR, FCHAR, FINT, const float *, FINT, float *, FINT); void F77_stbmv( FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, FINT, float *, FINT); void F77_strsv( FCHAR, FCHAR, FCHAR, FINT, const float *, FINT, float *, FINT); void F77_stbsv( FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, FINT, float *, FINT); void F77_stpmv( FCHAR, FCHAR, FCHAR, FINT, const float *, float *, FINT); void F77_stpsv( FCHAR, FCHAR, FCHAR, FINT, const float *, float *, FINT); void F77_sger( FINT, FINT, const float *, const float *, FINT, const float *, FINT, float *, FINT); void F77_ssyr(FCHAR, FINT, const float *, const float *, FINT, float *, FINT); void F77_sspr(FCHAR, FINT, const float *, const float *, FINT, float *); void F77_sspr2(FCHAR, FINT, const float *, const float *, FINT, const float *, FINT, float *); void F77_ssyr2(FCHAR, FINT, const float *, const float *, FINT, const float *, FINT, float *, FINT); /* Double Precision */ void F77_dgemv(FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_dgbmv(FCHAR, FINT, FINT, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_dsymv(FCHAR, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_dsbmv(FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_dspmv(FCHAR, FINT, const double *, const double *, const double *, FINT, const double *, double *, FINT); void F77_dtrmv( FCHAR, FCHAR, FCHAR, FINT, const double *, FINT, double *, FINT); void F77_dtbmv( FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, FINT, double *, FINT); void F77_dtrsv( FCHAR, FCHAR, FCHAR, FINT, const double *, FINT, double *, FINT); void F77_dtbsv( FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, FINT, double *, FINT); void F77_dtpmv( FCHAR, FCHAR, FCHAR, FINT, const double *, double *, FINT); void F77_dtpsv( FCHAR, FCHAR, FCHAR, FINT, const double *, double *, FINT); void F77_dger( FINT, FINT, const double *, const double *, FINT, const double *, FINT, double *, FINT); void F77_dsyr(FCHAR, FINT, const double *, const double *, FINT, double *, FINT); void F77_dspr(FCHAR, FINT, const double *, const double *, FINT, double *); void F77_dspr2(FCHAR, FINT, const double *, const double *, FINT, const double *, FINT, double *); void F77_dsyr2(FCHAR, FINT, const double *, const double *, FINT, const double *, FINT, double *, FINT); /* Single Complex Precision */ void F77_cgemv(FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT); void F77_cgbmv(FCHAR, FINT, FINT, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT); void F77_chemv(FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT); void F77_chbmv(FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT); void F77_chpmv(FCHAR, FINT, const void *, const void *, const void *, FINT, const void *, void *, FINT); void F77_ctrmv( FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void *, FINT); void F77_ctbmv( FCHAR, FCHAR, FCHAR, FINT, FINT, const void *, FINT, void *, FINT); void F77_ctpmv( FCHAR, FCHAR, FCHAR, FINT, const void *, void *, FINT); void F77_ctrsv( FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void *, FINT); void F77_ctbsv( FCHAR, FCHAR, FCHAR, FINT, FINT, const void *, FINT, void *, FINT); void F77_ctpsv( FCHAR, FCHAR, FCHAR, FINT, const void *, void *,FINT); void F77_cgerc( FINT, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT); void F77_cgeru( FINT, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT); void F77_cher(FCHAR, FINT, const float *, const void *, FINT, void *, FINT); void F77_cher2(FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT); void F77_chpr(FCHAR, FINT, const float *, const void *, FINT, void *); void F77_chpr2(FCHAR, FINT, const float *, const void *, FINT, const void *, FINT, void *); /* Double Complex Precision */ void F77_zgemv(FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT); void F77_zgbmv(FCHAR, FINT, FINT, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT); void F77_zhemv(FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT); void F77_zhbmv(FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT); void F77_zhpmv(FCHAR, FINT, const void *, const void *, const void *, FINT, const void *, void *, FINT); void F77_ztrmv( FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void *, FINT); void F77_ztbmv( FCHAR, FCHAR, FCHAR, FINT, FINT, const void *, FINT, void *, FINT); void F77_ztpmv( FCHAR, FCHAR, FCHAR, FINT, const void *, void *, FINT); void F77_ztrsv( FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void *, FINT); void F77_ztbsv( FCHAR, FCHAR, FCHAR, FINT, FINT, const void *, FINT, void *, FINT); void F77_ztpsv( FCHAR, FCHAR, FCHAR, FINT, const void *, void *,FINT); void F77_zgerc( FINT, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT); void F77_zgeru( FINT, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT); void F77_zher(FCHAR, FINT, const double *, const void *, FINT, void *, FINT); void F77_zher2(FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT); void F77_zhpr(FCHAR, FINT, const double *, const void *, FINT, void *); void F77_zhpr2(FCHAR, FINT, const double *, const void *, FINT, const void *, FINT, void *); /* * Level 3 Fortran Prototypes */ /* Single Precision */ void F77_sgemm(FCHAR, FCHAR, FINT, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_ssymm(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_ssyrk(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, float *, FINT); void F77_ssyr2k(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_strmm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, float *, FINT); void F77_strsm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, float *, FINT); /* Double Precision */ void F77_dgemm(FCHAR, FCHAR, FINT, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_dsymm(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_dsyrk(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, double *, FINT); void F77_dsyr2k(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_dtrmm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, double *, FINT); void F77_dtrsm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, double *, FINT); /* Single Complex Precision */ void F77_cgemm(FCHAR, FCHAR, FINT, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_csymm(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_chemm(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_csyrk(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, float *, FINT); void F77_cherk(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, float *, FINT); void F77_csyr2k(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_cher2k(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT); void F77_ctrmm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, float *, FINT); void F77_ctrsm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, float *, FINT); /* Double Complex Precision */ void F77_zgemm(FCHAR, FCHAR, FINT, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_zsymm(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_zhemm(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_zsyrk(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, double *, FINT); void F77_zherk(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, double *, FINT); void F77_zsyr2k(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_zher2k(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT); void F77_ztrmm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, double *, FINT); void F77_ztrsm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, double *, FINT); #ifdef __cplusplus } #endif #endif /* CBLAS_F77_H */