libflame revision_anchor
|
00001 /* 00002 libflame 00003 An object-based infrastructure for developing high-performance 00004 dense linear algebra libraries. 00005 00006 Copyright (C) 2011, The University of Texas 00007 00008 libflame is free software; you can redistribute it and/or modify 00009 it under the terms of the GNU Lesser General Public License as 00010 published by the Free Software Foundation; either version 2.1 of 00011 the License, or (at your option) any later version. 00012 00013 libflame is distributed in the hope that it will be useful, but 00014 WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Lesser General Public License for more details. 00017 00018 You should have received a copy of the GNU Lesser General Public 00019 License along with libflame; if you did not receive a copy, see 00020 http://www.gnu.org/licenses/. 00021 00022 For more information, please contact us at flame@cs.utexas.edu or 00023 send mail to: 00024 00025 Field G. Van Zee and/or 00026 Robert A. van de Geijn 00027 The University of Texas at Austin 00028 Department of Computer Sciences 00029 1 University Station C0500 00030 Austin TX 78712 00031 */ 00032 00033 // --- Level-2 BLAS-like prototypes -------------------------------------------- 00034 00035 // --- gemv --- 00036 00037 void bli_sgemv( char transa, char conjx, int m, int n, float* alpha, float* a, int a_rs, int a_cs, float* x, int incx, float* beta, float* y, int incy ); 00038 void bli_dgemv( char transa, char conjx, int m, int n, double* alpha, double* a, int a_rs, int a_cs, double* x, int incx, double* beta, double* y, int incy ); 00039 void bli_cgemv( char transa, char conjx, int m, int n, scomplex* alpha, scomplex* a, int a_rs, int a_cs, scomplex* x, int incx, scomplex* beta, scomplex* y, int incy ); 00040 void bli_zgemv( char transa, char conjx, int m, int n, dcomplex* alpha, dcomplex* a, int a_rs, int a_cs, dcomplex* x, int incx, dcomplex* beta, dcomplex* y, int incy ); 00041 00042 void bli_sgemv_blas( char transa, int m, int n, float* alpha, float* a, int lda, float* x, int incx, float* beta, float* y, int incy ); 00043 void bli_dgemv_blas( char transa, int m, int n, double* alpha, double* a, int lda, double* x, int incx, double* beta, double* y, int incy ); 00044 void bli_cgemv_blas( char transa, int m, int n, scomplex* alpha, scomplex* a, int lda, scomplex* x, int incx, scomplex* beta, scomplex* y, int incy ); 00045 void bli_zgemv_blas( char transa, int m, int n, dcomplex* alpha, dcomplex* a, int lda, dcomplex* x, int incx, dcomplex* beta, dcomplex* y, int incy ); 00046 00047 // --- ger --- 00048 00049 void bli_sger( char conjx, char conjy, int m, int n, float* alpha, float* x, int incx, float* y, int incy, float* a, int a_rs, int a_cs ); 00050 void bli_dger( char conjx, char conjy, int m, int n, double* alpha, double* x, int incx, double* y, int incy, double* a, int a_rs, int a_cs ); 00051 void bli_cger( char conjx, char conjy, int m, int n, scomplex* alpha, scomplex* x, int incx, scomplex* y, int incy, scomplex* a, int a_rs, int a_cs ); 00052 void bli_zger( char conjx, char conjy, int m, int n, dcomplex* alpha, dcomplex* x, int incx, dcomplex* y, int incy, dcomplex* a, int a_rs, int a_cs ); 00053 00054 void bli_sger_blas( int m, int n, float* alpha, float* x, int incx, float* y, int incy, float* a, int lda ); 00055 void bli_dger_blas( int m, int n, double* alpha, double* x, int incx, double* y, int incy, double* a, int lda ); 00056 void bli_cgerc_blas( int m, int n, scomplex* alpha, scomplex* x, int incx, scomplex* y, int incy, scomplex* a, int lda ); 00057 void bli_cgeru_blas( int m, int n, scomplex* alpha, scomplex* x, int incx, scomplex* y, int incy, scomplex* a, int lda ); 00058 void bli_zgerc_blas( int m, int n, dcomplex* alpha, dcomplex* x, int incx, dcomplex* y, int incy, dcomplex* a, int lda ); 00059 void bli_zgeru_blas( int m, int n, dcomplex* alpha, dcomplex* x, int incx, dcomplex* y, int incy, dcomplex* a, int lda ); 00060 00061 // --- hemv --- 00062 00063 void bli_shemv( char uplo, char conj, int m, float* alpha, float* a, int a_rs, int a_cs, float* x, int incx, float* beta, float* y, int incy ); 00064 void bli_dhemv( char uplo, char conj, int m, double* alpha, double* a, int a_rs, int a_cs, double* x, int incx, double* beta, double* y, int incy ); 00065 void bli_chemv( char uplo, char conj, int m, scomplex* alpha, scomplex* a, int a_rs, int a_cs, scomplex* x, int incx, scomplex* beta, scomplex* y, int incy ); 00066 void bli_zhemv( char uplo, char conj, int m, dcomplex* alpha, dcomplex* a, int a_rs, int a_cs, dcomplex* x, int incx, dcomplex* beta, dcomplex* y, int incy ); 00067 00068 void bli_chemv_blas( char uplo, int m, scomplex* alpha, scomplex* a, int lda, scomplex* x, int incx, scomplex* beta, scomplex* y, int incy ); 00069 void bli_zhemv_blas( char uplo, int m, dcomplex* alpha, dcomplex* a, int lda, dcomplex* x, int incx, dcomplex* beta, dcomplex* y, int incy ); 00070 00071 // --- her --- 00072 00073 void bli_sher( char uplo, char conj, int m, float* alpha, float* x, int incx, float* a, int a_rs, int a_cs ); 00074 void bli_dher( char uplo, char conj, int m, double* alpha, double* x, int incx, double* a, int a_rs, int a_cs ); 00075 void bli_cher( char uplo, char conj, int m, float* alpha, scomplex* x, int incx, scomplex* a, int a_rs, int a_cs ); 00076 void bli_zher( char uplo, char conj, int m, double* alpha, dcomplex* x, int incx, dcomplex* a, int a_rs, int a_cs ); 00077 00078 void bli_cher_blas( char uplo, int m, float* alpha, scomplex* x, int incx, scomplex* a, int lda ); 00079 void bli_zher_blas( char uplo, int m, double* alpha, dcomplex* x, int incx, dcomplex* a, int lda ); 00080 00081 // --- her2 --- 00082 00083 void bli_sher2( char uplo, char conj, int m, float* alpha, float* x, int incx, float* y, int incy, float* a, int a_rs, int a_cs ); 00084 void bli_dher2( char uplo, char conj, int m, double* alpha, double* x, int incx, double* y, int incy, double* a, int a_rs, int a_cs ); 00085 void bli_cher2( char uplo, char conj, int m, scomplex* alpha, scomplex* x, int incx, scomplex* y, int incy, scomplex* a, int a_rs, int a_cs ); 00086 void bli_zher2( char uplo, char conj, int m, dcomplex* alpha, dcomplex* x, int incx, dcomplex* y, int incy, dcomplex* a, int a_rs, int a_cs ); 00087 00088 void bli_cher2_blas( char uplo, int m, scomplex* alpha, scomplex* x, int incx, scomplex* y, int incy, scomplex* a, int lda ); 00089 void bli_zher2_blas( char uplo, int m, dcomplex* alpha, dcomplex* x, int incx, dcomplex* y, int incy, dcomplex* a, int lda ); 00090 00091 // --- symv --- 00092 00093 void bli_ssymv( char uplo, int m, float* alpha, float* a, int a_rs, int a_cs, float* x, int incx, float* beta, float* y, int incy ); 00094 void bli_dsymv( char uplo, int m, double* alpha, double* a, int a_rs, int a_cs, double* x, int incx, double* beta, double* y, int incy ); 00095 void bli_csymv( char uplo, int m, scomplex* alpha, scomplex* a, int a_rs, int a_cs, scomplex* x, int incx, scomplex* beta, scomplex* y, int incy ); 00096 void bli_zsymv( char uplo, int m, dcomplex* alpha, dcomplex* a, int a_rs, int a_cs, dcomplex* x, int incx, dcomplex* beta, dcomplex* y, int incy ); 00097 00098 void bli_ssymv_blas( char uplo, int m, float* alpha, float* a, int lda, float* x, int incx, float* beta, float* y, int incy ); 00099 void bli_dsymv_blas( char uplo, int m, double* alpha, double* a, int lda, double* x, int incx, double* beta, double* y, int incy ); 00100 void bli_csymv_blas( char uplo, int m, scomplex* alpha, scomplex* a, int lda, scomplex* x, int incx, scomplex* beta, scomplex* y, int incy ); 00101 void bli_zsymv_blas( char uplo, int m, dcomplex* alpha, dcomplex* a, int lda, dcomplex* x, int incx, dcomplex* beta, dcomplex* y, int incy ); 00102 00103 // --- syr --- 00104 00105 void bli_ssyr( char uplo, int m, float* alpha, float* x, int incx, float* a, int a_rs, int a_cs ); 00106 void bli_dsyr( char uplo, int m, double* alpha, double* x, int incx, double* a, int a_rs, int a_cs ); 00107 void bli_csyr( char uplo, int m, scomplex* alpha, scomplex* x, int incx, scomplex* a, int a_rs, int a_cs ); 00108 void bli_zsyr( char uplo, int m, dcomplex* alpha, dcomplex* x, int incx, dcomplex* a, int a_rs, int a_cs ); 00109 00110 void bli_ssyr_blas( char uplo, int m, float* alpha, float* x, int incx, float* a, int lda ); 00111 void bli_dsyr_blas( char uplo, int m, double* alpha, double* x, int incx, double* a, int lda ); 00112 void bli_csyr_blas( char uplo, int m, scomplex* alpha, scomplex* x, int incx, scomplex* a, int lda ); 00113 void bli_zsyr_blas( char uplo, int m, dcomplex* alpha, dcomplex* x, int incx, dcomplex* a, int lda ); 00114 00115 // --- syr2 --- 00116 00117 void bli_ssyr2( char uplo, int m, float* alpha, float* x, int incx, float* y, int incy, float* a, int a_rs, int a_cs ); 00118 void bli_dsyr2( char uplo, int m, double* alpha, double* x, int incx, double* y, int incy, double* a, int a_rs, int a_cs ); 00119 void bli_csyr2( char uplo, int m, scomplex* alpha, scomplex* x, int incx, scomplex* y, int incy, scomplex* a, int a_rs, int a_cs ); 00120 void bli_zsyr2( char uplo, int m, dcomplex* alpha, dcomplex* x, int incx, dcomplex* y, int incy, dcomplex* a, int a_rs, int a_cs ); 00121 00122 void bli_ssyr2_blas( char uplo, int m, float* alpha, float* x, int incx, float* y, int incy, float* a, int lda ); 00123 void bli_dsyr2_blas( char uplo, int m, double* alpha, double* x, int incx, double* y, int incy, double* a, int lda ); 00124 void bli_csyr2_blas( char uplo, int m, scomplex* alpha, scomplex* x, int incx, scomplex* y, int incy, scomplex* a, int lda ); 00125 void bli_zsyr2_blas( char uplo, int m, dcomplex* alpha, dcomplex* x, int incx, dcomplex* y, int incy, dcomplex* a, int lda ); 00126 00127 // --- trmv --- 00128 00129 void bli_strmv( char uplo, char trans, char diag, int m, float* a, int a_rs, int a_cs, float* x, int incx ); 00130 void bli_dtrmv( char uplo, char trans, char diag, int m, double* a, int a_rs, int a_cs, double* x, int incx ); 00131 void bli_ctrmv( char uplo, char trans, char diag, int m, scomplex* a, int a_rs, int a_cs, scomplex* x, int incx ); 00132 void bli_ztrmv( char uplo, char trans, char diag, int m, dcomplex* a, int a_rs, int a_cs, dcomplex* x, int incx ); 00133 00134 void bli_strmv_blas( char uplo, char trans, char diag, int m, float* a, int lda, float* x, int incx ); 00135 void bli_dtrmv_blas( char uplo, char trans, char diag, int m, double* a, int lda, double* x, int incx ); 00136 void bli_ctrmv_blas( char uplo, char trans, char diag, int m, scomplex* a, int lda, scomplex* x, int incx ); 00137 void bli_ztrmv_blas( char uplo, char trans, char diag, int m, dcomplex* a, int lda, dcomplex* x, int incx ); 00138 00139 // --- trsv --- 00140 00141 void bli_strsv( char uplo, char trans, char diag, int m, float* a, int a_rs, int a_cs, float* x, int incx ); 00142 void bli_dtrsv( char uplo, char trans, char diag, int m, double* a, int a_rs, int a_cs, double* x, int incx ); 00143 void bli_ctrsv( char uplo, char trans, char diag, int m, scomplex* a, int a_rs, int a_cs, scomplex* x, int incx ); 00144 void bli_ztrsv( char uplo, char trans, char diag, int m, dcomplex* a, int a_rs, int a_cs, dcomplex* x, int incx ); 00145 00146 void bli_strsv_blas( char uplo, char trans, char diag, int m, float* a, int lda, float* x, int incx ); 00147 void bli_dtrsv_blas( char uplo, char trans, char diag, int m, double* a, int lda, double* x, int incx ); 00148 void bli_ctrsv_blas( char uplo, char trans, char diag, int m, scomplex* a, int lda, scomplex* x, int incx ); 00149 void bli_ztrsv_blas( char uplo, char trans, char diag, int m, dcomplex* a, int lda, dcomplex* x, int incx ); 00150 00151 // --- trmvsx --- 00152 00153 void bli_strmvsx( char uplo, char trans, char diag, int m, float* alpha, float* a, int a_rs, int a_cs, float* x, int incx, float* beta, float* y, int incy ); 00154 void bli_dtrmvsx( char uplo, char trans, char diag, int m, double* alpha, double* a, int a_rs, int a_cs, double* x, int incx, double* beta, double* y, int incy ); 00155 void bli_ctrmvsx( char uplo, char trans, char diag, int m, scomplex* alpha, scomplex* a, int a_rs, int a_cs, scomplex* x, int incx, scomplex* beta, scomplex* y, int incy ); 00156 void bli_ztrmvsx( char uplo, char trans, char diag, int m, dcomplex* alpha, dcomplex* a, int a_rs, int a_cs, dcomplex* x, int incx, dcomplex* beta, dcomplex* y, int incy ); 00157 00158 // --- trsvsx --- 00159 00160 void bli_strsvsx( char uplo, char trans, char diag, int m, float* alpha, float* a, int a_rs, int a_cs, float* x, int incx, float* beta, float* y, int incy ); 00161 void bli_dtrsvsx( char uplo, char trans, char diag, int m, double* alpha, double* a, int a_rs, int a_cs, double* x, int incx, double* beta, double* y, int incy ); 00162 void bli_ctrsvsx( char uplo, char trans, char diag, int m, scomplex* alpha, scomplex* a, int a_rs, int a_cs, scomplex* x, int incx, scomplex* beta, scomplex* y, int incy ); 00163 void bli_ztrsvsx( char uplo, char trans, char diag, int m, dcomplex* alpha, dcomplex* a, int a_rs, int a_cs, dcomplex* x, int incx, dcomplex* beta, dcomplex* y, int incy ); 00164