libflame  revision_anchor
blis_prototypes_level1.h
Go to the documentation of this file.
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-1 BLAS-like prototypes --------------------------------------------
00034 
00035 // --- amax ---
00036 
00037 void bli_samax( int n, float*    x, int incx, int* index );
00038 void bli_damax( int n, double*   x, int incx, int* index );
00039 void bli_camax( int n, scomplex* x, int incx, int* index );
00040 void bli_zamax( int n, dcomplex* x, int incx, int* index );
00041 
00042 // --- asum ---
00043 
00044 void bli_sasum( int n, float*    x, int incx, float*  norm );
00045 void bli_dasum( int n, double*   x, int incx, double* norm );
00046 void bli_casum( int n, scomplex* x, int incx, float*  norm );
00047 void bli_zasum( int n, dcomplex* x, int incx, double* norm );
00048 
00049 // --- axpy ---
00050 
00051 void bli_saxpy( int n, float*    alpha, float*    x, int incx, float*    y, int incy );
00052 void bli_daxpy( int n, double*   alpha, double*   x, int incx, double*   y, int incy );
00053 void bli_caxpy( int n, scomplex* alpha, scomplex* x, int incx, scomplex* y, int incy );
00054 void bli_zaxpy( int n, dcomplex* alpha, dcomplex* x, int incx, dcomplex* y, int incy );
00055 
00056 // --- axpyv ---
00057 
00058 void bli_saxpyv( conj_t conj, int n, float*    alpha, float*    x, int incx, float*    y, int incy );
00059 void bli_daxpyv( conj_t conj, int n, double*   alpha, double*   x, int incx, double*   y, int incy );
00060 void bli_caxpyv( conj_t conj, int n, scomplex* alpha, scomplex* x, int incx, scomplex* y, int incy );
00061 void bli_zaxpyv( conj_t conj, int n, dcomplex* alpha, dcomplex* x, int incx, dcomplex* y, int incy );
00062 
00063 // --- axpymt ---
00064 
00065 void bli_saxpymt( trans_t trans, int m, int n, float*    alpha, float*    a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00066 void bli_daxpymt( trans_t trans, int m, int n, double*   alpha, double*   a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00067 void bli_caxpymt( trans_t trans, int m, int n, scomplex* alpha, scomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00068 void bli_zaxpymt( trans_t trans, int m, int n, dcomplex* alpha, dcomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00069 
00070 // --- axpymrt ---
00071 
00072 void bli_saxpymrt( uplo_t uplo, trans_t trans, int m, int n, float*    alpha, float*    a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00073 void bli_daxpymrt( uplo_t uplo, trans_t trans, int m, int n, double*   alpha, double*   a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00074 void bli_caxpymrt( uplo_t uplo, trans_t trans, int m, int n, scomplex* alpha, scomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00075 void bli_zaxpymrt( uplo_t uplo, trans_t trans, int m, int n, dcomplex* alpha, dcomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00076 
00077 // --- axpysv ---
00078 
00079 void bli_saxpysv( int n, float*    alpha0, float*    alpha1, float*    x, int incx, float*    beta, float*    y, int incy );
00080 void bli_daxpysv( int n, double*   alpha0, double*   alpha1, double*   x, int incx, double*   beta, double*   y, int incy );
00081 void bli_caxpysv( int n, scomplex* alpha0, scomplex* alpha1, scomplex* x, int incx, scomplex* beta, scomplex* y, int incy );
00082 void bli_zaxpysv( int n, dcomplex* alpha0, dcomplex* alpha1, dcomplex* x, int incx, dcomplex* beta, dcomplex* y, int incy );
00083 
00084 // --- axpysmt ---
00085 
00086 void bli_saxpysmt( trans_t trans, int m, int n, float*    alpha0, float*    alpha1, float*    a, int a_rs, int a_cs, float*    beta, float*    b, int b_rs, int b_cs );
00087 void bli_daxpysmt( trans_t trans, int m, int n, double*   alpha0, double*   alpha1, double*   a, int a_rs, int a_cs, double*   beta, double*   b, int b_rs, int b_cs );
00088 void bli_caxpysmt( trans_t trans, int m, int n, scomplex* alpha0, scomplex* alpha1, scomplex* a, int a_rs, int a_cs, scomplex* beta, scomplex* b, int b_rs, int b_cs );
00089 void bli_zaxpysmt( trans_t trans, int m, int n, dcomplex* alpha0, dcomplex* alpha1, dcomplex* a, int a_rs, int a_cs, dcomplex* beta, dcomplex* b, int b_rs, int b_cs );
00090 
00091 // --- conjv ---
00092 
00093 void bli_sconjv( int m, float* x, int incx );
00094 void bli_dconjv( int m, double* x, int incx );
00095 void bli_cconjv( int m, scomplex* x, int incx );
00096 void bli_zconjv( int m, dcomplex* x, int incx );
00097 
00098 // --- conjm ---
00099 
00100 void bli_sconjm( int m, int n, float*    a, int a_rs, int a_cs );
00101 void bli_dconjm( int m, int n, double*   a, int a_rs, int a_cs );
00102 void bli_cconjm( int m, int n, scomplex* a, int a_rs, int a_cs );
00103 void bli_zconjm( int m, int n, dcomplex* a, int a_rs, int a_cs );
00104 
00105 // --- conjmr ---
00106 
00107 void bli_sconjmr( uplo_t uplo, int m, int n, float*    a, int a_rs, int a_cs );
00108 void bli_dconjmr( uplo_t uplo, int m, int n, double*   a, int a_rs, int a_cs );
00109 void bli_cconjmr( uplo_t uplo, int m, int n, scomplex* a, int a_rs, int a_cs );
00110 void bli_zconjmr( uplo_t uplo, int m, int n, dcomplex* a, int a_rs, int a_cs );
00111 
00112 // --- copy ---
00113 
00114 void bli_scopy( int m, float*    x, int incx, float*    y, int incy );
00115 void bli_dcopy( int m, double*   x, int incx, double*   y, int incy );
00116 void bli_ccopy( int m, scomplex* x, int incx, scomplex* y, int incy );
00117 void bli_zcopy( int m, dcomplex* x, int incx, dcomplex* y, int incy );
00118 
00119 // --- copyv ---
00120 
00121 void bli_icopyv( conj_t conj, int m, int*      x, int incx, int*      y, int incy );
00122 void bli_scopyv( conj_t conj, int m, float*    x, int incx, float*    y, int incy );
00123 void bli_dcopyv( conj_t conj, int m, double*   x, int incx, double*   y, int incy );
00124 void bli_ccopyv( conj_t conj, int m, scomplex* x, int incx, scomplex* y, int incy );
00125 void bli_zcopyv( conj_t conj, int m, dcomplex* x, int incx, dcomplex* y, int incy );
00126 
00127 void bli_sdcopyv( conj_t conj, int m, float*    x, int incx, double*   y, int incy );
00128 void bli_dscopyv( conj_t conj, int m, double*   x, int incx, float*    y, int incy );
00129 void bli_sccopyv( conj_t conj, int m, float*    x, int incx, scomplex* y, int incy );
00130 void bli_cscopyv( conj_t conj, int m, scomplex* x, int incx, float*    y, int incy );
00131 void bli_szcopyv( conj_t conj, int m, float*    x, int incx, dcomplex* y, int incy );
00132 void bli_zscopyv( conj_t conj, int m, dcomplex* x, int incx, float*    y, int incy );
00133 void bli_dccopyv( conj_t conj, int m, double*   x, int incx, scomplex* y, int incy );
00134 void bli_cdcopyv( conj_t conj, int m, scomplex* x, int incx, double*   y, int incy );
00135 void bli_dzcopyv( conj_t conj, int m, double*   x, int incx, dcomplex* y, int incy );
00136 void bli_zdcopyv( conj_t conj, int m, dcomplex* x, int incx, double*   y, int incy );
00137 void bli_czcopyv( conj_t conj, int m, scomplex* x, int incx, dcomplex* y, int incy );
00138 void bli_zccopyv( conj_t conj, int m, dcomplex* x, int incx, scomplex* y, int incy );
00139 
00140 // --- copymr ---
00141 
00142 void bli_scopymr( uplo_t uplo, int m, int n, float*    a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00143 void bli_dcopymr( uplo_t uplo, int m, int n, double*   a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00144 void bli_ccopymr( uplo_t uplo, int m, int n, scomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00145 void bli_zcopymr( uplo_t uplo, int m, int n, dcomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00146 
00147 void bli_sscopymr( uplo_t uplo, int m, int n, float*    a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00148 void bli_sdcopymr( uplo_t uplo, int m, int n, float*    a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00149 void bli_dscopymr( uplo_t uplo, int m, int n, double*   a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00150 void bli_sccopymr( uplo_t uplo, int m, int n, float*    a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00151 void bli_cscopymr( uplo_t uplo, int m, int n, scomplex* a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00152 void bli_szcopymr( uplo_t uplo, int m, int n, float*    a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00153 void bli_zscopymr( uplo_t uplo, int m, int n, dcomplex* a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00154 void bli_ddcopymr( uplo_t uplo, int m, int n, double*   a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00155 void bli_dccopymr( uplo_t uplo, int m, int n, double*   a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00156 void bli_cdcopymr( uplo_t uplo, int m, int n, scomplex* a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00157 void bli_dzcopymr( uplo_t uplo, int m, int n, double*   a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00158 void bli_zdcopymr( uplo_t uplo, int m, int n, dcomplex* a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00159 void bli_cccopymr( uplo_t uplo, int m, int n, scomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00160 void bli_czcopymr( uplo_t uplo, int m, int n, scomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00161 void bli_zccopymr( uplo_t uplo, int m, int n, dcomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00162 void bli_zzcopymr( uplo_t uplo, int m, int n, dcomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00163 
00164 // --- copymrt ---
00165 
00166 void bli_scopymrt( uplo_t uplo, trans_t trans, int m, int n, float*    a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00167 void bli_dcopymrt( uplo_t uplo, trans_t trans, int m, int n, double*   a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00168 void bli_ccopymrt( uplo_t uplo, trans_t trans, int m, int n, scomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00169 void bli_zcopymrt( uplo_t uplo, trans_t trans, int m, int n, dcomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00170 
00171 void bli_sscopymrt( uplo_t uplo, trans_t trans, int m, int n, float*    a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00172 void bli_sdcopymrt( uplo_t uplo, trans_t trans, int m, int n, float*    a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00173 void bli_sccopymrt( uplo_t uplo, trans_t trans, int m, int n, float*    a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00174 void bli_szcopymrt( uplo_t uplo, trans_t trans, int m, int n, float*    a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00175 void bli_dscopymrt( uplo_t uplo, trans_t trans, int m, int n, double*   a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00176 void bli_ddcopymrt( uplo_t uplo, trans_t trans, int m, int n, double*   a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00177 void bli_dccopymrt( uplo_t uplo, trans_t trans, int m, int n, double*   a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00178 void bli_dzcopymrt( uplo_t uplo, trans_t trans, int m, int n, double*   a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00179 void bli_cscopymrt( uplo_t uplo, trans_t trans, int m, int n, scomplex* a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00180 void bli_cdcopymrt( uplo_t uplo, trans_t trans, int m, int n, scomplex* a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00181 void bli_cccopymrt( uplo_t uplo, trans_t trans, int m, int n, scomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00182 void bli_czcopymrt( uplo_t uplo, trans_t trans, int m, int n, scomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00183 void bli_zscopymrt( uplo_t uplo, trans_t trans, int m, int n, dcomplex* a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00184 void bli_zdcopymrt( uplo_t uplo, trans_t trans, int m, int n, dcomplex* a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00185 void bli_zccopymrt( uplo_t uplo, trans_t trans, int m, int n, dcomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00186 void bli_zzcopymrt( uplo_t uplo, trans_t trans, int m, int n, dcomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00187 
00188 // --- copymt ---
00189 
00190 void bli_icopymt( trans_t trans, int m, int n, int*      a, int a_rs, int a_cs, int*      b, int b_rs, int b_cs );
00191 void bli_scopymt( trans_t trans, int m, int n, float*    a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00192 void bli_dcopymt( trans_t trans, int m, int n, double*   a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00193 void bli_ccopymt( trans_t trans, int m, int n, scomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00194 void bli_zcopymt( trans_t trans, int m, int n, dcomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00195 
00196 void bli_sscopymt( trans_t trans, int m, int n, float*    a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00197 void bli_sdcopymt( trans_t trans, int m, int n, float*    a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00198 void bli_dscopymt( trans_t trans, int m, int n, double*   a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00199 void bli_sccopymt( trans_t trans, int m, int n, float*    a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00200 void bli_cscopymt( trans_t trans, int m, int n, scomplex* a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00201 void bli_szcopymt( trans_t trans, int m, int n, float*    a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00202 void bli_zscopymt( trans_t trans, int m, int n, dcomplex* a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00203 void bli_ddcopymt( trans_t trans, int m, int n, double*   a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00204 void bli_dccopymt( trans_t trans, int m, int n, double*   a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00205 void bli_cdcopymt( trans_t trans, int m, int n, scomplex* a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00206 void bli_dzcopymt( trans_t trans, int m, int n, double*   a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00207 void bli_zdcopymt( trans_t trans, int m, int n, dcomplex* a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00208 void bli_cccopymt( trans_t trans, int m, int n, scomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00209 void bli_czcopymt( trans_t trans, int m, int n, scomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00210 void bli_zccopymt( trans_t trans, int m, int n, dcomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00211 void bli_zzcopymt( trans_t trans, int m, int n, dcomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00212 
00213 // --- dot ---
00214 
00215 void bli_cdot_in( conj_t conj, int n, scomplex* x, int incx, scomplex* y, int incy, scomplex* rho );
00216 void bli_zdot_in( conj_t conj, int n, dcomplex* x, int incx, dcomplex* y, int incy, dcomplex* rho );
00217 
00218 void bli_sdot( conj_t conj, int n, float*    x, int incx, float*    y, int incy, float*    rho );
00219 void bli_ddot( conj_t conj, int n, double*   x, int incx, double*   y, int incy, double*   rho );
00220 void bli_cdot( conj_t conj, int n, scomplex* x, int incx, scomplex* y, int incy, scomplex* rho );
00221 void bli_zdot( conj_t conj, int n, dcomplex* x, int incx, dcomplex* y, int incy, dcomplex* rho );
00222 
00223 // --- dots ---
00224 
00225 void bli_sdots( conj_t conj, int n, float*    alpha, float*    x, int incx, float*    y, int incy, float*    beta, float*    rho );
00226 void bli_ddots( conj_t conj, int n, double*   alpha, double*   x, int incx, double*   y, int incy, double*   beta, double*   rho );
00227 void bli_cdots( conj_t conj, int n, scomplex* alpha, scomplex* x, int incx, scomplex* y, int incy, scomplex* beta, scomplex* rho );
00228 void bli_zdots( conj_t conj, int n, dcomplex* alpha, dcomplex* x, int incx, dcomplex* y, int incy, dcomplex* beta, dcomplex* rho );
00229 
00230 // --- dot2s ---
00231 
00232 void bli_sdot2s( conj_t conj, int n, float*    alpha, float*    x, int incx, float*    y, int incy, float*    beta, float*    rho );
00233 void bli_ddot2s( conj_t conj, int n, double*   alpha, double*   x, int incx, double*   y, int incy, double*   beta, double*   rho );
00234 void bli_cdot2s( conj_t conj, int n, scomplex* alpha, scomplex* x, int incx, scomplex* y, int incy, scomplex* beta, scomplex* rho );
00235 void bli_zdot2s( conj_t conj, int n, dcomplex* alpha, dcomplex* x, int incx, dcomplex* y, int incy, dcomplex* beta, dcomplex* rho );
00236 
00237 // --- fnorm ---
00238 
00239 void bli_sfnorm( int m, int n, float*    a, int a_rs, int a_cs, float*  norm );
00240 void bli_dfnorm( int m, int n, double*   a, int a_rs, int a_cs, double* norm );
00241 void bli_cfnorm( int m, int n, scomplex* a, int a_rs, int a_cs, float*  norm );
00242 void bli_zfnorm( int m, int n, dcomplex* a, int a_rs, int a_cs, double* norm );
00243 
00244 // --- invscalv ---
00245 
00246 void bli_sinvscalv(  conj_t conj, int n, float*    alpha, float*    x, int incx );
00247 void bli_dinvscalv(  conj_t conj, int n, double*   alpha, double*   x, int incx );
00248 void bli_csinvscalv( conj_t conj, int n, float*    alpha, scomplex* x, int incx );
00249 void bli_cinvscalv(  conj_t conj, int n, scomplex* alpha, scomplex* x, int incx );
00250 void bli_zdinvscalv( conj_t conj, int n, double*   alpha, dcomplex* x, int incx );
00251 void bli_zinvscalv(  conj_t conj, int n, dcomplex* alpha, dcomplex* x, int incx );
00252 
00253 // --- invscalm ---
00254 
00255 void bli_sinvscalm(  conj_t conj, int m, int n, float*    alpha, float*    a, int a_rs, int a_cs );
00256 void bli_dinvscalm(  conj_t conj, int m, int n, double*   alpha, double*   a, int a_rs, int a_cs );
00257 void bli_csinvscalm( conj_t conj, int m, int n, float*    alpha, scomplex* a, int a_rs, int a_cs );
00258 void bli_cinvscalm(  conj_t conj, int m, int n, scomplex* alpha, scomplex* a, int a_rs, int a_cs );
00259 void bli_zdinvscalm( conj_t conj, int m, int n, double*   alpha, dcomplex* a, int a_rs, int a_cs );
00260 void bli_zinvscalm(  conj_t conj, int m, int n, dcomplex* alpha, dcomplex* a, int a_rs, int a_cs );
00261 
00262 // --- nrm2 ---
00263 
00264 void bli_snrm2( int n, float*    x, int incx, float*  norm );
00265 void bli_dnrm2( int n, double*   x, int incx, double* norm );
00266 void bli_cnrm2( int n, scomplex* x, int incx, float*  norm );
00267 void bli_znrm2( int n, dcomplex* x, int incx, double* norm );
00268 
00269 // --- scal ---
00270 
00271 void bli_sscal(  int n, float*    alpha, float*    x, int incx );
00272 void bli_dscal(  int n, double*   alpha, double*   x, int incx );
00273 void bli_csscal( int n, float*    alpha, scomplex* x, int incx );
00274 void bli_cscal(  int n, scomplex* alpha, scomplex* x, int incx );
00275 void bli_zdscal( int n, double*   alpha, dcomplex* x, int incx );
00276 void bli_zscal(  int n, dcomplex* alpha, dcomplex* x, int incx );
00277 
00278 // --- scalv ---
00279 
00280 void bli_sscalv(  conj_t conj, int n, float*    alpha, float*    x, int incx );
00281 void bli_dscalv(  conj_t conj, int n, double*   alpha, double*   x, int incx );
00282 void bli_csscalv( conj_t conj, int n, float*    alpha, scomplex* x, int incx );
00283 void bli_cscalv(  conj_t conj, int n, scomplex* alpha, scomplex* x, int incx );
00284 void bli_zdscalv( conj_t conj, int n, double*   alpha, dcomplex* x, int incx );
00285 void bli_zscalv(  conj_t conj, int n, dcomplex* alpha, dcomplex* x, int incx );
00286 
00287 // --- scalm ---
00288 
00289 void bli_sscalm(  conj_t conj, int m, int n, float*    alpha, float*    a, int a_rs, int a_cs );
00290 void bli_dscalm(  conj_t conj, int m, int n, double*   alpha, double*   a, int a_rs, int a_cs );
00291 void bli_csscalm( conj_t conj, int m, int n, float*    alpha, scomplex* a, int a_rs, int a_cs );
00292 void bli_cscalm(  conj_t conj, int m, int n, scomplex* alpha, scomplex* a, int a_rs, int a_cs );
00293 void bli_zdscalm( conj_t conj, int m, int n, double*   alpha, dcomplex* a, int a_rs, int a_cs );
00294 void bli_zscalm(  conj_t conj, int m, int n, dcomplex* alpha, dcomplex* a, int a_rs, int a_cs );
00295 
00296 // --- scalmr ---
00297 
00298 void bli_sscalmr(  uplo_t uplo, int m, int n, float*    alpha, float*    a, int a_rs, int a_cs );
00299 void bli_dscalmr(  uplo_t uplo, int m, int n, double*   alpha, double*   a, int a_rs, int a_cs );
00300 void bli_csscalmr( uplo_t uplo, int m, int n, float*    alpha, scomplex* a, int a_rs, int a_cs );
00301 void bli_cscalmr(  uplo_t uplo, int m, int n, scomplex* alpha, scomplex* a, int a_rs, int a_cs );
00302 void bli_zdscalmr( uplo_t uplo, int m, int n, double*   alpha, dcomplex* a, int a_rs, int a_cs );
00303 void bli_zscalmr(  uplo_t uplo, int m, int n, dcomplex* alpha, dcomplex* a, int a_rs, int a_cs );
00304 
00305 // --- swap ---
00306 
00307 void bli_sswap( int n, float*    x, int incx, float*    y, int incy );
00308 void bli_dswap( int n, double*   x, int incx, double*   y, int incy );
00309 void bli_cswap( int n, scomplex* x, int incx, scomplex* y, int incy );
00310 void bli_zswap( int n, dcomplex* x, int incx, dcomplex* y, int incy );
00311 
00312 // --- swapv ---
00313 
00314 void bli_sswapv( int n, float*    x, int incx, float*    y, int incy );
00315 void bli_dswapv( int n, double*   x, int incx, double*   y, int incy );
00316 void bli_cswapv( int n, scomplex* x, int incx, scomplex* y, int incy );
00317 void bli_zswapv( int n, dcomplex* x, int incx, dcomplex* y, int incy );
00318 
00319 // --- swapmt ---
00320 
00321 void bli_sswapmt( trans_t trans, int m, int n, float*    a, int a_rs, int a_cs, float*    b, int b_rs, int b_cs );
00322 void bli_dswapmt( trans_t trans, int m, int n, double*   a, int a_rs, int a_cs, double*   b, int b_rs, int b_cs );
00323 void bli_cswapmt( trans_t trans, int m, int n, scomplex* a, int a_rs, int a_cs, scomplex* b, int b_rs, int b_cs );
00324 void bli_zswapmt( trans_t trans, int m, int n, dcomplex* a, int a_rs, int a_cs, dcomplex* b, int b_rs, int b_cs );
00325