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 FLA_Error FLA_Tridiag_UT_l_unb_var1( FLA_Obj A, FLA_Obj T ); 00034 FLA_Error FLA_Tridiag_UT_l_blk_var1( FLA_Obj A, FLA_Obj T ); 00035 FLA_Error FLA_Tridiag_UT_l_step_unb_var1( FLA_Obj A, FLA_Obj T ); 00036 00037 FLA_Error FLA_Tridiag_UT_l_unb_var2( FLA_Obj A, FLA_Obj T ); 00038 FLA_Error FLA_Tridiag_UT_l_blk_var2( FLA_Obj A, FLA_Obj T ); 00039 FLA_Error FLA_Tridiag_UT_l_step_unb_var2( FLA_Obj A, FLA_Obj T ); 00040 00041 FLA_Error FLA_Tridiag_UT_l_unb_var3( FLA_Obj A, FLA_Obj T ); 00042 FLA_Error FLA_Tridiag_UT_l_blk_var3( FLA_Obj A, FLA_Obj T ); 00043 FLA_Error FLA_Tridiag_UT_l_step_unb_var3( FLA_Obj A, FLA_Obj Z, FLA_Obj T ); 00044 00045 FLA_Error FLA_Tridiag_UT_l_opt_var1( FLA_Obj A, FLA_Obj T ); 00046 FLA_Error FLA_Tridiag_UT_l_step_opt_var1( FLA_Obj A, FLA_Obj T ); 00047 FLA_Error FLA_Tridiag_UT_l_step_ops_var1( int m_A, 00048 int m_T, 00049 float* buff_A, int rs_A, int cs_A, 00050 float* buff_T, int rs_T, int cs_T ); 00051 FLA_Error FLA_Tridiag_UT_l_step_opd_var1( int m_A, 00052 int m_T, 00053 double* buff_A, int rs_A, int cs_A, 00054 double* buff_T, int rs_T, int cs_T ); 00055 FLA_Error FLA_Tridiag_UT_l_step_opc_var1( int m_A, 00056 int m_T, 00057 scomplex* buff_A, int rs_A, int cs_A, 00058 scomplex* buff_T, int rs_T, int cs_T ); 00059 FLA_Error FLA_Tridiag_UT_l_step_opz_var1( int m_A, 00060 int m_T, 00061 dcomplex* buff_A, int rs_A, int cs_A, 00062 dcomplex* buff_T, int rs_T, int cs_T ); 00063 00064 FLA_Error FLA_Tridiag_UT_l_opt_var2( FLA_Obj A, FLA_Obj T ); 00065 FLA_Error FLA_Tridiag_UT_l_step_opt_var2( FLA_Obj A, FLA_Obj T ); 00066 FLA_Error FLA_Tridiag_UT_l_step_ops_var2( int m_A, 00067 int m_T, 00068 float* buff_A, int rs_A, int cs_A, 00069 float* buff_T, int rs_T, int cs_T ); 00070 FLA_Error FLA_Tridiag_UT_l_step_opd_var2( int m_A, 00071 int m_T, 00072 double* buff_A, int rs_A, int cs_A, 00073 double* buff_T, int rs_T, int cs_T ); 00074 FLA_Error FLA_Tridiag_UT_l_step_opc_var2( int m_A, 00075 int m_T, 00076 scomplex* buff_A, int rs_A, int cs_A, 00077 scomplex* buff_T, int rs_T, int cs_T ); 00078 FLA_Error FLA_Tridiag_UT_l_step_opz_var2( int m_A, 00079 int m_T, 00080 dcomplex* buff_A, int rs_A, int cs_A, 00081 dcomplex* buff_T, int rs_T, int cs_T ); 00082 00083 FLA_Error FLA_Tridiag_UT_l_opt_var3( FLA_Obj A, FLA_Obj T ); 00084 FLA_Error FLA_Tridiag_UT_l_step_opt_var3( FLA_Obj A, FLA_Obj Z, FLA_Obj T ); 00085 FLA_Error FLA_Tridiag_UT_l_step_ops_var3( int m_A, 00086 int m_T, 00087 float* buff_A, int rs_A, int cs_A, 00088 float* buff_Z, int rs_Z, int cs_Z, 00089 float* buff_T, int rs_T, int cs_T ); 00090 FLA_Error FLA_Tridiag_UT_l_step_opd_var3( int m_A, 00091 int m_T, 00092 double* buff_A, int rs_A, int cs_A, 00093 double* buff_Z, int rs_Z, int cs_Z, 00094 double* buff_T, int rs_T, int cs_T ); 00095 FLA_Error FLA_Tridiag_UT_l_step_opc_var3( int m_A, 00096 int m_T, 00097 scomplex* buff_A, int rs_A, int cs_A, 00098 scomplex* buff_Z, int rs_Z, int cs_Z, 00099 scomplex* buff_T, int rs_T, int cs_T ); 00100 FLA_Error FLA_Tridiag_UT_l_step_opz_var3( int m_A, 00101 int m_T, 00102 dcomplex* buff_A, int rs_A, int cs_A, 00103 dcomplex* buff_Z, int rs_Z, int cs_Z, 00104 dcomplex* buff_T, int rs_T, int cs_T ); 00105 00106 FLA_Error FLA_Tridiag_UT_l_ofu_var1( FLA_Obj A, FLA_Obj T ); 00107 FLA_Error FLA_Tridiag_UT_l_step_ofu_var1( FLA_Obj A, FLA_Obj T ); 00108 FLA_Error FLA_Tridiag_UT_l_step_ofs_var1( int m_A, 00109 int m_T, 00110 float* buff_A, int rs_A, int cs_A, 00111 float* buff_T, int rs_T, int cs_T ); 00112 FLA_Error FLA_Tridiag_UT_l_step_ofd_var1( int m_A, 00113 int m_T, 00114 double* buff_A, int rs_A, int cs_A, 00115 double* buff_T, int rs_T, int cs_T ); 00116 FLA_Error FLA_Tridiag_UT_l_step_ofc_var1( int m_A, 00117 int m_T, 00118 scomplex* buff_A, int rs_A, int cs_A, 00119 scomplex* buff_T, int rs_T, int cs_T ); 00120 FLA_Error FLA_Tridiag_UT_l_step_ofz_var1( int m_A, 00121 int m_T, 00122 dcomplex* buff_A, int rs_A, int cs_A, 00123 dcomplex* buff_T, int rs_T, int cs_T ); 00124 00125 FLA_Error FLA_Tridiag_UT_l_ofu_var2( FLA_Obj A, FLA_Obj T ); 00126 FLA_Error FLA_Tridiag_UT_l_step_ofu_var2( FLA_Obj A, FLA_Obj T ); 00127 FLA_Error FLA_Tridiag_UT_l_step_ofs_var2( int m_A, 00128 int m_T, 00129 float* buff_A, int rs_A, int cs_A, 00130 float* buff_T, int rs_T, int cs_T ); 00131 FLA_Error FLA_Tridiag_UT_l_step_ofd_var2( int m_A, 00132 int m_T, 00133 double* buff_A, int rs_A, int cs_A, 00134 double* buff_T, int rs_T, int cs_T ); 00135 FLA_Error FLA_Tridiag_UT_l_step_ofc_var2( int m_A, 00136 int m_T, 00137 scomplex* buff_A, int rs_A, int cs_A, 00138 scomplex* buff_T, int rs_T, int cs_T ); 00139 FLA_Error FLA_Tridiag_UT_l_step_ofz_var2( int m_A, 00140 int m_T, 00141 dcomplex* buff_A, int rs_A, int cs_A, 00142 dcomplex* buff_T, int rs_T, int cs_T ); 00143 00144 FLA_Error FLA_Tridiag_UT_l_ofu_var3( FLA_Obj A, FLA_Obj T ); 00145 FLA_Error FLA_Tridiag_UT_l_step_ofu_var3( FLA_Obj A, FLA_Obj Z, FLA_Obj T ); 00146 FLA_Error FLA_Tridiag_UT_l_step_ofs_var3( int m_A, 00147 int m_T, 00148 float* buff_A, int rs_A, int cs_A, 00149 float* buff_Z, int rs_Z, int cs_Z, 00150 float* buff_T, int rs_T, int cs_T ); 00151 FLA_Error FLA_Tridiag_UT_l_step_ofd_var3( int m_A, 00152 int m_T, 00153 double* buff_A, int rs_A, int cs_A, 00154 double* buff_Z, int rs_Z, int cs_Z, 00155 double* buff_T, int rs_T, int cs_T ); 00156 FLA_Error FLA_Tridiag_UT_l_step_ofc_var3( int m_A, 00157 int m_T, 00158 scomplex* buff_A, int rs_A, int cs_A, 00159 scomplex* buff_Z, int rs_Z, int cs_Z, 00160 scomplex* buff_T, int rs_T, int cs_T ); 00161 FLA_Error FLA_Tridiag_UT_l_step_ofz_var3( int m_A, 00162 int m_T, 00163 dcomplex* buff_A, int rs_A, int cs_A, 00164 dcomplex* buff_Z, int rs_Z, int cs_Z, 00165 dcomplex* buff_T, int rs_T, int cs_T ); 00166 00167 // --- Fused operations --- 00168 00169 FLA_Error FLA_Fused_Her2_Ax_opt_var1( FLA_Obj alpha, FLA_Obj u, FLA_Obj z, FLA_Obj A, FLA_Obj x, FLA_Obj w ); 00170 FLA_Error FLA_Fused_Her2_Ax_ops_var1( int m_A, 00171 float* buff_alpha, 00172 float* buff_u, int inc_u, 00173 float* buff_z, int inc_z, 00174 float* buff_A, int rs_A, int cs_A, 00175 float* buff_x, int inc_x, 00176 float* buff_w, int inc_w ); 00177 FLA_Error FLA_Fused_Her2_Ax_opd_var1( int m_A, 00178 double* buff_alpha, 00179 double* buff_u, int inc_u, 00180 double* buff_z, int inc_z, 00181 double* buff_A, int rs_A, int cs_A, 00182 double* buff_x, int inc_x, 00183 double* buff_w, int inc_w ); 00184 FLA_Error FLA_Fused_Her2_Ax_opc_var1( int m_A, 00185 scomplex* buff_alpha, 00186 scomplex* buff_u, int inc_u, 00187 scomplex* buff_z, int inc_z, 00188 scomplex* buff_A, int rs_A, int cs_A, 00189 scomplex* buff_x, int inc_x, 00190 scomplex* buff_w, int inc_w ); 00191 FLA_Error FLA_Fused_Her2_Ax_opz_var1( int m_A, 00192 dcomplex* buff_alpha, 00193 dcomplex* buff_u, int inc_u, 00194 dcomplex* buff_z, int inc_z, 00195 dcomplex* buff_A, int rs_A, int cs_A, 00196 dcomplex* buff_x, int inc_x, 00197 dcomplex* buff_w, int inc_w ); 00198 00199 FLA_Error FLA_Fused_UZhu_ZUhu_opt_var1( FLA_Obj delta, FLA_Obj U, FLA_Obj Z, FLA_Obj u, FLA_Obj w ); 00200 FLA_Error FLA_Fused_UZhu_ZUhu_ops_var1( int m_U, 00201 int n_U, 00202 float* buff_delta, 00203 float* buff_U, int rs_U, int cs_U, 00204 float* buff_Z, int rs_Z, int cs_Z, 00205 float* buff_u, int inc_u, 00206 float* buff_w, int inc_w ); 00207 FLA_Error FLA_Fused_UZhu_ZUhu_opd_var1( int m_U, 00208 int n_U, 00209 double* buff_delta, 00210 double* buff_U, int rs_U, int cs_U, 00211 double* buff_Z, int rs_Z, int cs_Z, 00212 double* buff_u, int inc_u, 00213 double* buff_w, int inc_w ); 00214 FLA_Error FLA_Fused_UZhu_ZUhu_opc_var1( int m_U, 00215 int n_U, 00216 scomplex* buff_delta, 00217 scomplex* buff_U, int rs_U, int cs_U, 00218 scomplex* buff_Z, int rs_Z, int cs_Z, 00219 scomplex* buff_u, int inc_u, 00220 scomplex* buff_w, int inc_w ); 00221 FLA_Error FLA_Fused_UZhu_ZUhu_opz_var1( int m_U, 00222 int n_U, 00223 dcomplex* buff_delta, 00224 dcomplex* buff_U, int rs_U, int cs_U, 00225 dcomplex* buff_Z, int rs_Z, int cs_Z, 00226 dcomplex* buff_u, int inc_u, 00227 dcomplex* buff_w, int inc_w );