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_Hess_UT_unb_var1( FLA_Obj A, FLA_Obj T ); 00034 FLA_Error FLA_Hess_UT_blk_var1( FLA_Obj A, FLA_Obj T ); 00035 FLA_Error FLA_Hess_UT_step_unb_var1( FLA_Obj A, FLA_Obj T ); 00036 00037 FLA_Error FLA_Hess_UT_unb_var2( FLA_Obj A, FLA_Obj T ); 00038 FLA_Error FLA_Hess_UT_blk_var2( FLA_Obj A, FLA_Obj T ); 00039 FLA_Error FLA_Hess_UT_step_unb_var2( FLA_Obj A, FLA_Obj T ); 00040 00041 FLA_Error FLA_Hess_UT_unb_var3( FLA_Obj A, FLA_Obj T ); 00042 FLA_Error FLA_Hess_UT_blk_var3( FLA_Obj A, FLA_Obj T ); 00043 FLA_Error FLA_Hess_UT_step_unb_var3( FLA_Obj A, FLA_Obj T ); 00044 00045 FLA_Error FLA_Hess_UT_unb_var4( FLA_Obj A, FLA_Obj T ); 00046 FLA_Error FLA_Hess_UT_blk_var4( FLA_Obj A, FLA_Obj T ); 00047 FLA_Error FLA_Hess_UT_step_unb_var4( FLA_Obj A, FLA_Obj Y, FLA_Obj Z, FLA_Obj T ); 00048 00049 FLA_Error FLA_Hess_UT_unb_var5( FLA_Obj A, FLA_Obj T ); 00050 FLA_Error FLA_Hess_UT_blk_var5( FLA_Obj A, FLA_Obj T ); 00051 FLA_Error FLA_Hess_UT_step_unb_var5( FLA_Obj A, FLA_Obj U, FLA_Obj Z, FLA_Obj T ); 00052 00053 00054 FLA_Error FLA_Hess_UT_opt_var1( FLA_Obj A, FLA_Obj T ); 00055 FLA_Error FLA_Hess_UT_step_opt_var1( FLA_Obj A, FLA_Obj T ); 00056 FLA_Error FLA_Hess_UT_step_ops_var1( int m_A, 00057 int m_T, 00058 float* buff_A, int rs_A, int cs_A, 00059 float* buff_T, int rs_T, int cs_T ); 00060 FLA_Error FLA_Hess_UT_step_opd_var1( int m_A, 00061 int m_T, 00062 double* buff_A, int rs_A, int cs_A, 00063 double* buff_T, int rs_T, int cs_T ); 00064 FLA_Error FLA_Hess_UT_step_opc_var1( int m_A, 00065 int m_T, 00066 scomplex* buff_A, int rs_A, int cs_A, 00067 scomplex* buff_T, int rs_T, int cs_T ); 00068 FLA_Error FLA_Hess_UT_step_opz_var1( int m_A, 00069 int m_T, 00070 dcomplex* buff_A, int rs_A, int cs_A, 00071 dcomplex* buff_T, int rs_T, int cs_T ); 00072 00073 00074 FLA_Error FLA_Hess_UT_opt_var2( FLA_Obj A, FLA_Obj T ); 00075 FLA_Error FLA_Hess_UT_step_opt_var2( FLA_Obj A, FLA_Obj T ); 00076 FLA_Error FLA_Hess_UT_step_ops_var2( int m_A, 00077 int m_T, 00078 float* buff_A, int rs_A, int cs_A, 00079 float* buff_T, int rs_T, int cs_T ); 00080 FLA_Error FLA_Hess_UT_step_opd_var2( int m_A, 00081 int m_T, 00082 double* buff_A, int rs_A, int cs_A, 00083 double* buff_T, int rs_T, int cs_T ); 00084 FLA_Error FLA_Hess_UT_step_opc_var2( int m_A, 00085 int m_T, 00086 scomplex* buff_A, int rs_A, int cs_A, 00087 scomplex* buff_T, int rs_T, int cs_T ); 00088 FLA_Error FLA_Hess_UT_step_opz_var2( int m_A, 00089 int m_T, 00090 dcomplex* buff_A, int rs_A, int cs_A, 00091 dcomplex* buff_T, int rs_T, int cs_T ); 00092 00093 00094 FLA_Error FLA_Hess_UT_opt_var3( FLA_Obj A, FLA_Obj T ); 00095 FLA_Error FLA_Hess_UT_step_opt_var3( FLA_Obj A, FLA_Obj T ); 00096 FLA_Error FLA_Hess_UT_step_ops_var3( int m_A, 00097 int m_T, 00098 float* buff_A, int rs_A, int cs_A, 00099 float* buff_T, int rs_T, int cs_T ); 00100 FLA_Error FLA_Hess_UT_step_opd_var3( int m_A, 00101 int m_T, 00102 double* buff_A, int rs_A, int cs_A, 00103 double* buff_T, int rs_T, int cs_T ); 00104 FLA_Error FLA_Hess_UT_step_opc_var3( int m_A, 00105 int m_T, 00106 scomplex* buff_A, int rs_A, int cs_A, 00107 scomplex* buff_T, int rs_T, int cs_T ); 00108 FLA_Error FLA_Hess_UT_step_opz_var3( int m_A, 00109 int m_T, 00110 dcomplex* buff_A, int rs_A, int cs_A, 00111 dcomplex* buff_T, int rs_T, int cs_T ); 00112 00113 00114 FLA_Error FLA_Hess_UT_opt_var4( FLA_Obj A, FLA_Obj T ); 00115 FLA_Error FLA_Hess_UT_step_opt_var4( FLA_Obj A, FLA_Obj Y, FLA_Obj Z, FLA_Obj T ); 00116 FLA_Error FLA_Hess_UT_step_ops_var4( int m_A, 00117 int m_T, 00118 float* buff_A, int rs_A, int cs_A, 00119 float* buff_Y, int rs_Y, int cs_Y, 00120 float* buff_Z, int rs_Z, int cs_Z, 00121 float* buff_T, int rs_T, int cs_T ); 00122 FLA_Error FLA_Hess_UT_step_opd_var4( int m_A, 00123 int m_T, 00124 double* buff_A, int rs_A, int cs_A, 00125 double* buff_Y, int rs_Y, int cs_Y, 00126 double* buff_Z, int rs_Z, int cs_Z, 00127 double* buff_T, int rs_T, int cs_T ); 00128 FLA_Error FLA_Hess_UT_step_opc_var4( int m_A, 00129 int m_T, 00130 scomplex* buff_A, int rs_A, int cs_A, 00131 scomplex* buff_Y, int rs_Y, int cs_Y, 00132 scomplex* buff_Z, int rs_Z, int cs_Z, 00133 scomplex* buff_T, int rs_T, int cs_T ); 00134 FLA_Error FLA_Hess_UT_step_opz_var4( int m_A, 00135 int m_T, 00136 dcomplex* buff_A, int rs_A, int cs_A, 00137 dcomplex* buff_Y, int rs_Y, int cs_Y, 00138 dcomplex* buff_Z, int rs_Z, int cs_Z, 00139 dcomplex* buff_T, int rs_T, int cs_T ); 00140 00141 00142 FLA_Error FLA_Hess_UT_opt_var5( FLA_Obj A, FLA_Obj T ); 00143 FLA_Error FLA_Hess_UT_step_opt_var5( FLA_Obj A, FLA_Obj U, FLA_Obj Z, FLA_Obj T ); 00144 FLA_Error FLA_Hess_UT_step_ops_var5( int m_A, 00145 int m_T, 00146 float* buff_A, int rs_A, int cs_A, 00147 float* buff_U, int rs_U, int cs_U, 00148 float* buff_Z, int rs_Z, int cs_Z, 00149 float* buff_T, int rs_T, int cs_T ); 00150 FLA_Error FLA_Hess_UT_step_opd_var5( int m_A, 00151 int m_T, 00152 double* buff_A, int rs_A, int cs_A, 00153 double* buff_U, int rs_U, int cs_U, 00154 double* buff_Z, int rs_Z, int cs_Z, 00155 double* buff_T, int rs_T, int cs_T ); 00156 FLA_Error FLA_Hess_UT_step_opc_var5( int m_A, 00157 int m_T, 00158 scomplex* buff_A, int rs_A, int cs_A, 00159 scomplex* buff_U, int rs_U, int cs_U, 00160 scomplex* buff_Z, int rs_Z, int cs_Z, 00161 scomplex* buff_T, int rs_T, int cs_T ); 00162 FLA_Error FLA_Hess_UT_step_opz_var5( int m_A, 00163 int m_T, 00164 dcomplex* buff_A, int rs_A, int cs_A, 00165 dcomplex* buff_U, int rs_U, int cs_U, 00166 dcomplex* buff_Z, int rs_Z, int cs_Z, 00167 dcomplex* buff_T, int rs_T, int cs_T ); 00168 00169 00170 FLA_Error FLA_Hess_UT_ofu_var1( FLA_Obj A, FLA_Obj T ); 00171 FLA_Error FLA_Hess_UT_step_ofu_var1( FLA_Obj A, FLA_Obj T ); 00172 FLA_Error FLA_Hess_UT_step_ofs_var1( int m_A, 00173 int m_T, 00174 float* buff_A, int rs_A, int cs_A, 00175 float* buff_T, int rs_T, int cs_T ); 00176 FLA_Error FLA_Hess_UT_step_ofd_var1( int m_A, 00177 int m_T, 00178 double* buff_A, int rs_A, int cs_A, 00179 double* buff_T, int rs_T, int cs_T ); 00180 FLA_Error FLA_Hess_UT_step_ofc_var1( int m_A, 00181 int m_T, 00182 scomplex* buff_A, int rs_A, int cs_A, 00183 scomplex* buff_T, int rs_T, int cs_T ); 00184 FLA_Error FLA_Hess_UT_step_ofz_var1( int m_A, 00185 int m_T, 00186 dcomplex* buff_A, int rs_A, int cs_A, 00187 dcomplex* buff_T, int rs_T, int cs_T ); 00188 00189 00190 FLA_Error FLA_Hess_UT_ofu_var2( FLA_Obj A, FLA_Obj T ); 00191 FLA_Error FLA_Hess_UT_step_ofu_var2( FLA_Obj A, FLA_Obj T ); 00192 FLA_Error FLA_Hess_UT_step_ofs_var2( int m_A, 00193 int m_T, 00194 float* buff_A, int rs_A, int cs_A, 00195 float* buff_T, int rs_T, int cs_T ); 00196 FLA_Error FLA_Hess_UT_step_ofd_var2( int m_A, 00197 int m_T, 00198 double* buff_A, int rs_A, int cs_A, 00199 double* buff_T, int rs_T, int cs_T ); 00200 FLA_Error FLA_Hess_UT_step_ofc_var2( int m_A, 00201 int m_T, 00202 scomplex* buff_A, int rs_A, int cs_A, 00203 scomplex* buff_T, int rs_T, int cs_T ); 00204 FLA_Error FLA_Hess_UT_step_ofz_var2( int m_A, 00205 int m_T, 00206 dcomplex* buff_A, int rs_A, int cs_A, 00207 dcomplex* buff_T, int rs_T, int cs_T ); 00208 00209 00210 FLA_Error FLA_Hess_UT_ofu_var3( FLA_Obj A, FLA_Obj T ); 00211 FLA_Error FLA_Hess_UT_step_ofu_var3( FLA_Obj A, FLA_Obj T ); 00212 FLA_Error FLA_Hess_UT_step_ofs_var3( int m_A, 00213 int m_T, 00214 float* buff_A, int rs_A, int cs_A, 00215 float* buff_T, int rs_T, int cs_T ); 00216 FLA_Error FLA_Hess_UT_step_ofd_var3( int m_A, 00217 int m_T, 00218 double* buff_A, int rs_A, int cs_A, 00219 double* buff_T, int rs_T, int cs_T ); 00220 FLA_Error FLA_Hess_UT_step_ofc_var3( int m_A, 00221 int m_T, 00222 scomplex* buff_A, int rs_A, int cs_A, 00223 scomplex* buff_T, int rs_T, int cs_T ); 00224 FLA_Error FLA_Hess_UT_step_ofz_var3( int m_A, 00225 int m_T, 00226 dcomplex* buff_A, int rs_A, int cs_A, 00227 dcomplex* buff_T, int rs_T, int cs_T ); 00228 00229 00230 FLA_Error FLA_Hess_UT_ofu_var4( FLA_Obj A, FLA_Obj T ); 00231 FLA_Error FLA_Hess_UT_step_ofu_var4( FLA_Obj A, FLA_Obj Y, FLA_Obj Z, FLA_Obj T ); 00232 FLA_Error FLA_Hess_UT_step_ofs_var4( int m_A, 00233 int m_T, 00234 float* buff_A, int rs_A, int cs_A, 00235 float* buff_Y, int rs_Y, int cs_Y, 00236 float* buff_Z, int rs_Z, int cs_Z, 00237 float* buff_T, int rs_T, int cs_T ); 00238 FLA_Error FLA_Hess_UT_step_ofd_var4( int m_A, 00239 int m_T, 00240 double* buff_A, int rs_A, int cs_A, 00241 double* buff_Y, int rs_Y, int cs_Y, 00242 double* buff_Z, int rs_Z, int cs_Z, 00243 double* buff_T, int rs_T, int cs_T ); 00244 FLA_Error FLA_Hess_UT_step_ofc_var4( int m_A, 00245 int m_T, 00246 scomplex* buff_A, int rs_A, int cs_A, 00247 scomplex* buff_Y, int rs_Y, int cs_Y, 00248 scomplex* buff_Z, int rs_Z, int cs_Z, 00249 scomplex* buff_T, int rs_T, int cs_T ); 00250 FLA_Error FLA_Hess_UT_step_ofz_var4( int m_A, 00251 int m_T, 00252 dcomplex* buff_A, int rs_A, int cs_A, 00253 dcomplex* buff_Y, int rs_Y, int cs_Y, 00254 dcomplex* buff_Z, int rs_Z, int cs_Z, 00255 dcomplex* buff_T, int rs_T, int cs_T ); 00256 00257 00258 // --- Fused operations -------------------------------------------------------- 00259 00260 FLA_Error FLA_Fused_Ahx_Ax_ops_var1( int m_A, 00261 int n_A, 00262 float* buff_A, int rs_A, int cs_A, 00263 float* buff_x, int inc_x, 00264 float* buff_v, int inc_v, 00265 float* buff_w, int inc_w ); 00266 FLA_Error FLA_Fused_Ahx_Ax_opd_var1( int m_A, 00267 int n_A, 00268 double* buff_A, int rs_A, int cs_A, 00269 double* buff_x, int inc_x, 00270 double* buff_v, int inc_v, 00271 double* buff_w, int inc_w ); 00272 FLA_Error FLA_Fused_Ahx_Ax_opc_var1( int m_A, 00273 int n_A, 00274 scomplex* buff_A, int rs_A, int cs_A, 00275 scomplex* buff_x, int inc_x, 00276 scomplex* buff_v, int inc_v, 00277 scomplex* buff_w, int inc_w ); 00278 FLA_Error FLA_Fused_Ahx_Ax_opz_var1( int m_A, 00279 int n_A, 00280 dcomplex* buff_A, int rs_A, int cs_A, 00281 dcomplex* buff_x, int inc_x, 00282 dcomplex* buff_v, int inc_v, 00283 dcomplex* buff_w, int inc_w ); 00284 00285 00286 FLA_Error FLA_Fused_Gerc2_Ahx_Ax_ops_var1( int m_A, 00287 int n_A, 00288 float* buff_alpha, 00289 float* buff_u, int inc_u, 00290 float* buff_y, int inc_y, 00291 float* buff_z, int inc_z, 00292 float* buff_A, int rs_A, int cs_A, 00293 float* buff_x, int inc_x, 00294 float* buff_v, int inc_v, 00295 float* buff_w, int inc_w ); 00296 FLA_Error FLA_Fused_Gerc2_Ahx_Ax_opd_var1( int m_A, 00297 int n_A, 00298 double* buff_alpha, 00299 double* buff_u, int inc_u, 00300 double* buff_y, int inc_y, 00301 double* buff_z, int inc_z, 00302 double* buff_A, int rs_A, int cs_A, 00303 double* buff_x, int inc_x, 00304 double* buff_v, int inc_v, 00305 double* buff_w, int inc_w ); 00306 FLA_Error FLA_Fused_Gerc2_Ahx_Ax_opc_var1( int m_A, 00307 int n_A, 00308 scomplex* buff_alpha, 00309 scomplex* buff_u, int inc_u, 00310 scomplex* buff_y, int inc_y, 00311 scomplex* buff_z, int inc_z, 00312 scomplex* buff_A, int rs_A, int cs_A, 00313 scomplex* buff_x, int inc_x, 00314 scomplex* buff_v, int inc_v, 00315 scomplex* buff_w, int inc_w ); 00316 FLA_Error FLA_Fused_Gerc2_Ahx_Ax_opz_var1( int m_A, 00317 int n_A, 00318 dcomplex* buff_alpha, 00319 dcomplex* buff_u, int inc_u, 00320 dcomplex* buff_y, int inc_y, 00321 dcomplex* buff_z, int inc_z, 00322 dcomplex* buff_A, int rs_A, int cs_A, 00323 dcomplex* buff_x, int inc_x, 00324 dcomplex* buff_v, int inc_v, 00325 dcomplex* buff_w, int inc_w ); 00326 00327 00328 FLA_Error FLA_Fused_Gemv_Uhu_Yhu_Zhu_ops_var1( int m_U, 00329 int n_U, 00330 float* buff_delta, 00331 float* buff_U, int rs_U, int cs_U, 00332 float* buff_Y, int rs_Y, int cs_Y, 00333 float* buff_Z, int rs_Z, int cs_Z, 00334 float* buff_u, int inc_u, 00335 float* buff_y, int inc_y, 00336 float* buff_z, int inc_z ); 00337 FLA_Error FLA_Fused_Gemv_Uhu_Yhu_Zhu_opd_var1( int m_U, 00338 int n_U, 00339 double* buff_delta, 00340 double* buff_U, int rs_U, int cs_U, 00341 double* buff_Y, int rs_Y, int cs_Y, 00342 double* buff_Z, int rs_Z, int cs_Z, 00343 double* buff_u, int inc_u, 00344 double* buff_y, int inc_y, 00345 double* buff_z, int inc_z ); 00346 FLA_Error FLA_Fused_Gemv_Uhu_Yhu_Zhu_opc_var1( int m_U, 00347 int n_U, 00348 scomplex* buff_delta, 00349 scomplex* buff_U, int rs_U, int cs_U, 00350 scomplex* buff_Y, int rs_Y, int cs_Y, 00351 scomplex* buff_Z, int rs_Z, int cs_Z, 00352 scomplex* buff_u, int inc_u, 00353 scomplex* buff_y, int inc_y, 00354 scomplex* buff_z, int inc_z ); 00355 FLA_Error FLA_Fused_Gemv_Uhu_Yhu_Zhu_opz_var1( int m_U, 00356 int n_U, 00357 dcomplex* buff_delta, 00358 dcomplex* buff_U, int rs_U, int cs_U, 00359 dcomplex* buff_Y, int rs_Y, int cs_Y, 00360 dcomplex* buff_Z, int rs_Z, int cs_Z, 00361 dcomplex* buff_u, int inc_u, 00362 dcomplex* buff_y, int inc_y, 00363 dcomplex* buff_z, int inc_z ); 00364