libflame
revision_anchor
|
00001 /* 00002 00003 Copyright (C) 2014, The University of Texas at Austin 00004 00005 This file is part of libflame and is available under the 3-Clause 00006 BSD license, which can be found in the LICENSE file at the top-level 00007 directory, or at http://opensource.org/licenses/BSD-3-Clause 00008 00009 */ 00010 00011 // --- Name-mangling macro definitions ----------------------------------------- 00012 00013 // --- Name-mangle level-1 BLAS routines --------------------------- 00014 00015 #define F77_isamax F77_FUNC( isamax , ISAMAX ) 00016 #define F77_idamax F77_FUNC( idamax , IDAMAX ) 00017 #define F77_icamax F77_FUNC( icamax , ICAMAX ) 00018 #define F77_izamax F77_FUNC( izamax , IZAMAX ) 00019 #define F77_sasum F77_FUNC( sasum , SASUM ) 00020 #define F77_dasum F77_FUNC( dasum , DASUM ) 00021 #define F77_scasum F77_FUNC( scasum , SCASUM ) 00022 #define F77_dzasum F77_FUNC( dzasum , DZASUM ) 00023 #define F77_saxpy F77_FUNC( saxpy , SAXPY ) 00024 #define F77_daxpy F77_FUNC( daxpy , DAXPY ) 00025 #define F77_caxpy F77_FUNC( caxpy , CAXPY ) 00026 #define F77_zaxpy F77_FUNC( zaxpy , ZAXPY ) 00027 #define F77_scopy F77_FUNC( scopy , SCOPY ) 00028 #define F77_dcopy F77_FUNC( dcopy , DCOPY ) 00029 #define F77_ccopy F77_FUNC( ccopy , CCOPY ) 00030 #define F77_zcopy F77_FUNC( zcopy , ZCOPY ) 00031 #define F77_sdot F77_FUNC( sdot , SDOT ) 00032 #define F77_ddot F77_FUNC( ddot , DDOT ) 00033 #define F77_cdotu F77_FUNC( cdotu , CDOTU ) 00034 #define F77_cdotc F77_FUNC( cdotc , CDOTC ) 00035 #define F77_zdotu F77_FUNC( zdotu , ZDOTU ) 00036 #define F77_zdotc F77_FUNC( zdotc , ZDOTC ) 00037 #define F77_snrm2 F77_FUNC( snrm2 , SNRM2 ) 00038 #define F77_dnrm2 F77_FUNC( dnrm2 , DNRM2 ) 00039 #define F77_scnrm2 F77_FUNC( scnrm2 , SCNRM2 ) 00040 #define F77_dznrm2 F77_FUNC( dznrm2 , DZNRM2 ) 00041 #define F77_sscal F77_FUNC( sscal , SSCAL ) 00042 #define F77_dscal F77_FUNC( dscal , DSCAL ) 00043 #define F77_cscal F77_FUNC( cscal , CSCAL ) 00044 #define F77_csscal F77_FUNC( csscal , CSSCAL ) 00045 #define F77_zscal F77_FUNC( zscal , ZSCAL ) 00046 #define F77_zdscal F77_FUNC( zdscal , ZDSCAL ) 00047 #define F77_sswap F77_FUNC( sswap , SSWAP ) 00048 #define F77_dswap F77_FUNC( dswap , DSWAP ) 00049 #define F77_cswap F77_FUNC( cswap , CSWAP ) 00050 #define F77_zswap F77_FUNC( zswap , ZSWAP ) 00051 00052 // --- Name-mangle level-2 BLAS routines --------------------------- 00053 00054 #define F77_sgemv F77_FUNC( sgemv , SGEMV ) 00055 #define F77_dgemv F77_FUNC( dgemv , DGEMV ) 00056 #define F77_cgemv F77_FUNC( cgemv , CGEMV ) 00057 #define F77_zgemv F77_FUNC( zgemv , ZGEMV ) 00058 #define F77_sger F77_FUNC( sger , SGER ) 00059 #define F77_dger F77_FUNC( dger , DGER ) 00060 #define F77_cgerc F77_FUNC( cgerc , CGERC ) 00061 #define F77_cgeru F77_FUNC( cgeru , CGERU ) 00062 #define F77_zgerc F77_FUNC( zgerc , ZGERC ) 00063 #define F77_zgeru F77_FUNC( zgeru , ZGERU ) 00064 #define F77_chemv F77_FUNC( chemv , CHEMV ) 00065 #define F77_zhemv F77_FUNC( zhemv , ZHEMV ) 00066 #define F77_cher F77_FUNC( cher , CHER ) 00067 #define F77_zher F77_FUNC( zher , ZHER ) 00068 #define F77_cher2 F77_FUNC( cher2 , CHER2 ) 00069 #define F77_zher2 F77_FUNC( zher2 , ZHER2 ) 00070 #define F77_ssymv F77_FUNC( ssymv , SSYMV ) 00071 #define F77_dsymv F77_FUNC( dsymv , DSYMV ) 00072 #define F77_ssyr F77_FUNC( ssyr , SSYR ) 00073 #define F77_dsyr F77_FUNC( dsyr , DSYR ) 00074 #define F77_ssyr2 F77_FUNC( ssyr2 , SSYR2 ) 00075 #define F77_dsyr2 F77_FUNC( dsyr2 , DSYR2 ) 00076 #define F77_strmv F77_FUNC( strmv , STRMV ) 00077 #define F77_dtrmv F77_FUNC( dtrmv , DTRMV ) 00078 #define F77_ctrmv F77_FUNC( ctrmv , CTRMV ) 00079 #define F77_ztrmv F77_FUNC( ztrmv , ZTRMV ) 00080 #define F77_strsv F77_FUNC( strsv , STRSV ) 00081 #define F77_dtrsv F77_FUNC( dtrsv , DTRSV ) 00082 #define F77_ctrsv F77_FUNC( ctrsv , CTRSV ) 00083 #define F77_ztrsv F77_FUNC( ztrsv , ZTRSV ) 00084 00085 // --- Name-mangle level-3 BLAS routines --------------------------- 00086 00087 #define F77_sgemm F77_FUNC( sgemm , SGEMM ) 00088 #define F77_dgemm F77_FUNC( dgemm , DGEMM ) 00089 #define F77_cgemm F77_FUNC( cgemm , CGEMM ) 00090 #define F77_zgemm F77_FUNC( zgemm , ZGEMM ) 00091 #define F77_chemm F77_FUNC( chemm , CHEMM ) 00092 #define F77_zhemm F77_FUNC( zhemm , ZHEMM ) 00093 #define F77_cherk F77_FUNC( cherk , CHERK ) 00094 #define F77_zherk F77_FUNC( zherk , ZHERK ) 00095 #define F77_cher2k F77_FUNC( cher2k , CHER2K ) 00096 #define F77_zher2k F77_FUNC( zher2k , ZHER2K ) 00097 #define F77_ssymm F77_FUNC( ssymm , SSYMM ) 00098 #define F77_dsymm F77_FUNC( dsymm , DSYMM ) 00099 #define F77_csymm F77_FUNC( csymm , CSYMM ) 00100 #define F77_zsymm F77_FUNC( zsymm , ZSYMM ) 00101 #define F77_ssyrk F77_FUNC( ssyrk , SSYRK ) 00102 #define F77_dsyrk F77_FUNC( dsyrk , DSYRK ) 00103 #define F77_csyrk F77_FUNC( csyrk , CSYRK ) 00104 #define F77_zsyrk F77_FUNC( zsyrk , ZSYRK ) 00105 #define F77_ssyr2k F77_FUNC( ssyr2k , SSYR2K ) 00106 #define F77_dsyr2k F77_FUNC( dsyr2k , DSYR2K ) 00107 #define F77_csyr2k F77_FUNC( csyr2k , CSYR2K ) 00108 #define F77_zsyr2k F77_FUNC( zsyr2k , ZSYR2K ) 00109 #define F77_strmm F77_FUNC( strmm , STRMM ) 00110 #define F77_dtrmm F77_FUNC( dtrmm , DTRMM ) 00111 #define F77_ctrmm F77_FUNC( ctrmm , CTRMM ) 00112 #define F77_ztrmm F77_FUNC( ztrmm , ZTRMM ) 00113 #define F77_strsm F77_FUNC( strsm , STRSM ) 00114 #define F77_dtrsm F77_FUNC( dtrsm , DTRSM ) 00115 #define F77_ctrsm F77_FUNC( ctrsm , CTRSM ) 00116 #define F77_ztrsm F77_FUNC( ztrsm , ZTRSM ) 00117 00118 00119 // --- Prototypes -------------------------------------------------------------- 00120 00121 // --- Level-1 BLAS prototypes ------------------- 00122 00123 // --- amax --- 00124 int F77_isamax ( int* n, float* x, int* incx ); 00125 int F77_idamax ( int* n, double* x, int* incx ); 00126 int F77_icamax ( int* n, scomplex* x, int* incx ); 00127 int F77_izamax ( int* n, dcomplex* x, int* incx ); 00128 // --- asum --- 00129 float F77_sasum ( int* n, float* x, int* incx ); 00130 double F77_dasum ( int* n, double* x, int* incx ); 00131 float F77_scasum ( int* n, scomplex* x, int* incx ); 00132 double F77_dzasum ( int* n, dcomplex* x, int* incx ); 00133 // --- axpy --- 00134 void F77_saxpy ( int* n, float* alpha, float* x, int* incx, float* y, int* incy ); 00135 void F77_daxpy ( int* n, double* alpha, double* x, int* incx, double* y, int* incy ); 00136 void F77_caxpy ( int* n, scomplex* alpha, scomplex* x, int* incx, scomplex* y, int* incy ); 00137 void F77_zaxpy ( int* n, dcomplex* alpha, dcomplex* x, int* incx, dcomplex* y, int* incy ); 00138 // --- copy --- 00139 void F77_scopy ( int* n, float* x, int* incx, float* y, int* incy ); 00140 void F77_dcopy ( int* n, double* x, int* incx, double* y, int* incy ); 00141 void F77_ccopy ( int* n, scomplex* x, int* incx, scomplex* y, int* incy ); 00142 void F77_zcopy ( int* n, dcomplex* x, int* incx, dcomplex* y, int* incy ); 00143 // --- dot --- 00144 float F77_sdot ( int* n, float* x, int* incx, float* y, int* incy ); 00145 double F77_ddot ( int* n, double* x, int* incx, double* y, int* incy ); 00146 scomplex F77_cdotu ( int* n, scomplex* x, int* incx, scomplex* y, int* incy ); 00147 scomplex F77_cdotc ( int* n, scomplex* x, int* incx, scomplex* y, int* incy ); 00148 dcomplex F77_zdotu ( int* n, dcomplex* x, int* incx, dcomplex* y, int* incy ); 00149 dcomplex F77_zdotc ( int* n, dcomplex* x, int* incx, dcomplex* y, int* incy ); 00150 // --- nrm2 --- 00151 float F77_snrm2 ( int* n, float* x, int* incx ); 00152 double F77_dnrm2 ( int* n, double* x, int* incx ); 00153 float F77_scnrm2 ( int* n, scomplex* x, int* incx ); 00154 double F77_dznrm2 ( int* n, dcomplex* x, int* incx ); 00155 // --- scal --- 00156 void F77_sscal ( int* n, float* alpha, float* y, int* incy ); 00157 void F77_dscal ( int* n, double* alpha, double* y, int* incy ); 00158 void F77_cscal ( int* n, scomplex* alpha, scomplex* y, int* incy ); 00159 void F77_csscal ( int* n, float* alpha, scomplex* y, int* incy ); 00160 void F77_zscal ( int* n, dcomplex* alpha, dcomplex* y, int* incy ); 00161 void F77_zdscal ( int* n, double* alpha, dcomplex* y, int* incy ); 00162 // --- swap --- 00163 void F77_sswap ( int* n, float* x, int* incx, float* y, int* incy ); 00164 void F77_dswap ( int* n, double* x, int* incx, double* y, int* incy ); 00165 void F77_cswap ( int* n, scomplex* x, int* incx, scomplex* y, int* incy ); 00166 void F77_zswap ( int* n, dcomplex* x, int* incx, dcomplex* y, int* incy ); 00167 00168 // --- Level-2 BLAS prototypes ------------------- 00169 00170 // --- gemv --- 00171 void F77_sgemv ( char* transa, int* m, int* n, float* alpha, float* a, int* lda, float* x, int* incx, float* beta, float* y, int* incy ); 00172 void F77_dgemv ( char* transa, int* m, int* n, double* alpha, double* a, int* lda, double* x, int* incx, double* beta, double* y, int* incy ); 00173 void F77_cgemv ( char* transa, int* m, int* n, scomplex* alpha, scomplex* a, int* lda, scomplex* x, int* incx, scomplex* beta, scomplex* y, int* incy ); 00174 void F77_zgemv ( char* transa, int* m, int* n, dcomplex* alpha, dcomplex* a, int* lda, dcomplex* x, int* incx, dcomplex* beta, dcomplex* y, int* incy ); 00175 // --- ger --- 00176 void F77_sger ( int* m, int* n, float* alpha, float* x, int* incx, float* y, int* incy, float* a, int* lda ); 00177 void F77_dger ( int* m, int* n, double* alpha, double* x, int* incx, double* y, int* incy, double* a, int* lda ); 00178 void F77_cgerc ( int* m, int* n, scomplex* alpha, scomplex* x, int* incx, scomplex* y, int* incy, scomplex* a, int* lda ); 00179 void F77_cgeru ( int* m, int* n, scomplex* alpha, scomplex* x, int* incx, scomplex* y, int* incy, scomplex* a, int* lda ); 00180 void F77_zgerc ( int* m, int* n, dcomplex* alpha, dcomplex* x, int* incx, dcomplex* y, int* incy, dcomplex* a, int* lda ); 00181 void F77_zgeru ( int* m, int* n, dcomplex* alpha, dcomplex* x, int* incx, dcomplex* y, int* incy, dcomplex* a, int* lda ); 00182 // --- hemv --- 00183 void F77_chemv ( char* uplo, int* n, scomplex* alpha, scomplex* a, int* lda, scomplex* x, int* incx, scomplex* beta, scomplex* y, int* incy ); 00184 void F77_zhemv ( char* uplo, int* n, dcomplex* alpha, dcomplex* a, int* lda, dcomplex* x, int* incx, dcomplex* beta, dcomplex* y, int* incy ); 00185 // --- her --- 00186 void F77_cher ( char* uplo, int* n, float* alpha, scomplex* x, int* incx, scomplex* a, int* lda ); 00187 void F77_zher ( char* uplo, int* n, double* alpha, dcomplex* x, int* incx, dcomplex* a, int* lda ); 00188 // --- her2 --- 00189 void F77_cher2 ( char* uplo, int* n, scomplex* alpha, scomplex* x, int* incx, scomplex* y, int* incy, scomplex* a, int* lda ); 00190 void F77_zher2 ( char* uplo, int* n, dcomplex* alpha, dcomplex* x, int* incx, dcomplex* y, int* incy, dcomplex* a, int* lda ); 00191 // --- symv --- 00192 void F77_ssymv ( char* uplo, int* n, float* alpha, float* a, int* lda, float* x, int* incx, float* beta, float* y, int* incy ); 00193 void F77_dsymv ( char* uplo, int* n, double* alpha, double* a, int* lda, double* x, int* incx, double* beta, double* y, int* incy ); 00194 // --- syr --- 00195 void F77_ssyr ( char* uplo, int* n, float* alpha, float* x, int* incx, float* a, int* lda ); 00196 void F77_dsyr ( char* uplo, int* n, double* alpha, double* x, int* incx, double* a, int* lda ); 00197 // --- syr2 --- 00198 void F77_ssyr2 ( char* uplo, int* n, float* alpha, float* x, int* incx, float* y, int* incy, float* a, int* lda ); 00199 void F77_dsyr2 ( char* uplo, int* n, double* alpha, double* x, int* incx, double* y, int* incy, double* a, int* lda ); 00200 // --- trmv --- 00201 void F77_strmv ( char* uplo, char* transa, char* diag, int* n, float* a, int* lda, float* y, int* incy ); 00202 void F77_dtrmv ( char* uplo, char* transa, char* diag, int* n, double* a, int* lda, double* y, int* incy ); 00203 void F77_ctrmv ( char* uplo, char* transa, char* diag, int* n, scomplex* a, int* lda, scomplex* y, int* incy ); 00204 void F77_ztrmv ( char* uplo, char* transa, char* diag, int* n, dcomplex* a, int* lda, dcomplex* y, int* incy ); 00205 // --- trsv --- 00206 void F77_strsv ( char* uplo, char* transa, char* diag, int* n, float* a, int* lda, float* y, int* incy ); 00207 void F77_dtrsv ( char* uplo, char* transa, char* diag, int* n, double* a, int* lda, double* y, int* incy ); 00208 void F77_ctrsv ( char* uplo, char* transa, char* diag, int* n, scomplex* a, int* lda, scomplex* y, int* incy ); 00209 void F77_ztrsv ( char* uplo, char* transa, char* diag, int* n, dcomplex* a, int* lda, dcomplex* y, int* incy ); 00210 00211 // --- Level-3 BLAS prototypes ------------------- 00212 00213 // --- gemm --- 00214 void F77_sgemm ( char* transa, char* transb, int* m, int* n, int* k, float* alpha, float* a, int* lda, float* b, int* ldb, float* beta, float* c, int* ldc ); 00215 void F77_dgemm ( char* transa, char* transb, int* m, int* n, int* k, double* alpha, double* a, int* lda, double* b, int* ldb, double* beta, double* c, int* ldc ); 00216 void F77_cgemm ( char* transa, char* transb, int* m, int* n, int* k, scomplex* alpha, scomplex* a, int* lda, scomplex* b, int* ldb, scomplex* beta, scomplex* c, int* ldc ); 00217 void F77_zgemm ( char* transa, char* transb, int* m, int* n, int* k, dcomplex* alpha, dcomplex* a, int* lda, dcomplex* b, int* ldb, dcomplex* beta, dcomplex* c, int* ldc ); 00218 // --- hemm --- 00219 void F77_chemm ( char* side, char* uplo, int* m, int* n, scomplex* alpha, scomplex* a, int* lda, scomplex* b, int* ldb, scomplex* beta, scomplex* c, int* ldc ); 00220 void F77_zhemm ( char* side, char* uplo, int* m, int* n, dcomplex* alpha, dcomplex* a, int* lda, dcomplex* b, int* ldb, dcomplex* beta, dcomplex* c, int* ldc ); 00221 // --- herk --- 00222 void F77_cherk ( char* uplo, char* transa, int* n, int* k, float* alpha, scomplex* a, int* lda, float* beta, scomplex* c, int* ldc ); 00223 void F77_zherk ( char* uplo, char* transa, int* n, int* k, double* alpha, dcomplex* a, int* lda, double* beta, dcomplex* c, int* ldc ); 00224 // --- her2k --- 00225 void F77_cher2k ( char* uplo, char* transa, int* n, int* k, scomplex* alpha, scomplex* a, int* lda, scomplex* b, int* ldb, float* beta, scomplex* c, int* ldc ); 00226 void F77_zher2k ( char* uplo, char* transa, int* n, int* k, dcomplex* alpha, dcomplex* a, int* lda, dcomplex* b, int* ldb, double* beta, dcomplex* c, int* ldc ); 00227 // --- symm --- 00228 void F77_ssymm ( char* side, char* uplo, int* m, int* n, float* alpha, float* a, int* lda, float* b, int* ldb, float* beta, float* c, int* ldc ); 00229 void F77_dsymm ( char* side, char* uplo, int* m, int* n, double* alpha, double* a, int* lda, double* b, int* ldb, double* beta, double* c, int* ldc ); 00230 void F77_csymm ( char* side, char* uplo, int* m, int* n, scomplex* alpha, scomplex* a, int* lda, scomplex* b, int* ldb, scomplex* beta, scomplex* c, int* ldc ); 00231 void F77_zsymm ( char* side, char* uplo, int* m, int* n, dcomplex* alpha, dcomplex* a, int* lda, dcomplex* b, int* ldb, dcomplex* beta, dcomplex* c, int* ldc ); 00232 // --- syrk --- 00233 void F77_ssyrk ( char* uplo, char* transa, int* n, int* k, float* alpha, float* a, int* lda, float* beta, float* c, int* ldc ); 00234 void F77_dsyrk ( char* uplo, char* transa, int* n, int* k, double* alpha, double* a, int* lda, double* beta, double* c, int* ldc ); 00235 void F77_csyrk ( char* uplo, char* transa, int* n, int* k, scomplex* alpha, scomplex* a, int* lda, scomplex* beta, scomplex* c, int* ldc ); 00236 void F77_zsyrk ( char* uplo, char* transa, int* n, int* k, dcomplex* alpha, dcomplex* a, int* lda, dcomplex* beta, dcomplex* c, int* ldc ); 00237 // --- syr2k --- 00238 void F77_ssyr2k ( char* uplo, char* transa, int* n, int* k, float* alpha, float* a, int* lda, float* b, int* ldb, float* beta, float* c, int* ldc ); 00239 void F77_dsyr2k ( char* uplo, char* transa, int* n, int* k, double* alpha, double* a, int* lda, double* b, int* ldb, double* beta, double* c, int* ldc ); 00240 void F77_csyr2k ( char* uplo, char* transa, int* n, int* k, scomplex* alpha, scomplex* a, int* lda, scomplex* b, int* ldb, scomplex* beta, scomplex* c, int* ldc ); 00241 void F77_zsyr2k ( char* uplo, char* transa, int* n, int* k, dcomplex* alpha, dcomplex* a, int* lda, dcomplex* b, int* ldb, dcomplex* beta, dcomplex* c, int* ldc ); 00242 // --- trmm --- 00243 void F77_strmm ( char* side, char* uplo, char* transa, char* diag, int* m, int* n, float* alpha, float* a, int* lda, float* b, int* ldb ); 00244 void F77_dtrmm ( char* side, char* uplo, char* transa, char* diag, int* m, int* n, double* alpha, double* a, int* lda, double* b, int* ldb ); 00245 void F77_ctrmm ( char* side, char* uplo, char* transa, char* diag, int* m, int* n, scomplex* alpha, scomplex* a, int* lda, scomplex* b, int* ldb ); 00246 void F77_ztrmm ( char* side, char* uplo, char* transa, char* diag, int* m, int* n, dcomplex* alpha, dcomplex* a, int* lda, dcomplex* b, int* ldb ); 00247 // --- trsm --- 00248 void F77_strsm ( char* side, char* uplo, char* transa, char* diag, int* m, int* n, float* alpha, float* a, int* lda, float* b, int* ldb ); 00249 void F77_dtrsm ( char* side, char* uplo, char* transa, char* diag, int* m, int* n, double* alpha, double* a, int* lda, double* b, int* ldb ); 00250 void F77_ctrsm ( char* side, char* uplo, char* transa, char* diag, int* m, int* n, scomplex* alpha, scomplex* a, int* lda, scomplex* b, int* ldb ); 00251 void F77_ztrsm ( char* side, char* uplo, char* transa, char* diag, int* m, int* n, dcomplex* alpha, dcomplex* a, int* lda, dcomplex* b, int* ldb ); 00252