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 // --- LAPACK-related utility prototypes --------------------------------------- 00034 00035 FLA_Error FLA_Househ2_UT( FLA_Side side, FLA_Obj chi_1, FLA_Obj x2, FLA_Obj tau ); 00036 FLA_Error FLA_Househ2_UT_l_ops( int m_x2, 00037 float* chi_1, 00038 float* x2, int inc_x2, 00039 float* tau ); 00040 FLA_Error FLA_Househ2_UT_l_opd( int m_x2, 00041 double* chi_1, 00042 double* x2, int inc_x2, 00043 double* tau ); 00044 FLA_Error FLA_Househ2_UT_l_opc( int m_x2, 00045 scomplex* chi_1, 00046 scomplex* x2, int inc_x2, 00047 scomplex* tau ); 00048 FLA_Error FLA_Househ2_UT_l_opz( int m_x2, 00049 dcomplex* chi_1, 00050 dcomplex* x2, int inc_x2, 00051 dcomplex* tau ); 00052 FLA_Error FLA_Househ2_UT_r_ops( int m_x2, 00053 float* chi_1, 00054 float* x2, int inc_x2, 00055 float* tau ); 00056 FLA_Error FLA_Househ2_UT_r_opd( int m_x2, 00057 double* chi_1, 00058 double* x2, int inc_x2, 00059 double* tau ); 00060 FLA_Error FLA_Househ2_UT_r_opc( int m_x2, 00061 scomplex* chi_1, 00062 scomplex* x2, int inc_x2, 00063 scomplex* tau ); 00064 FLA_Error FLA_Househ2_UT_r_opz( int m_x2, 00065 dcomplex* chi_1, 00066 dcomplex* x2, int inc_x2, 00067 dcomplex* tau ); 00068 00069 FLA_Error FLA_Househ3UD_UT( FLA_Obj chi_1, FLA_Obj x2, FLA_Obj y2, FLA_Obj tau ); 00070 FLA_Error FLA_Househ3UD_UT_ops( int m_x2, 00071 int m_y2, 00072 float* chi_1, 00073 float* x2, int inc_x2, 00074 float* y2, int inc_y2, 00075 float* tau ); 00076 FLA_Error FLA_Househ3UD_UT_opd( int m_x2, 00077 int m_y2, 00078 double* chi_1, 00079 double* x2, int inc_x2, 00080 double* y2, int inc_y2, 00081 double* tau ); 00082 FLA_Error FLA_Househ3UD_UT_opc( int m_x2, 00083 int m_y2, 00084 scomplex* chi_1, 00085 scomplex* x2, int inc_x2, 00086 scomplex* y2, int inc_y2, 00087 scomplex* tau ); 00088 FLA_Error FLA_Househ3UD_UT_opz( int m_x2, 00089 int m_y2, 00090 dcomplex* chi_1, 00091 dcomplex* x2, int inc_x2, 00092 dcomplex* y2, int inc_y2, 00093 dcomplex* tau ); 00094 00095 FLA_Error FLA_Househ2s_UT( FLA_Side side, FLA_Obj chi_1, FLA_Obj x2, FLA_Obj alpha, FLA_Obj chi_1_minus_alpha, FLA_Obj tau ); 00096 FLA_Error FLA_Househ2s_UT_l_ops( int m_x2, 00097 float* chi_1, 00098 float* x2, int inc_x2, 00099 float* alpha, 00100 float* chi_1_minus_alpha, 00101 float* tau ); 00102 FLA_Error FLA_Househ2s_UT_l_opd( int m_x2, 00103 double* chi_1, 00104 double* x2, int inc_x2, 00105 double* alpha, 00106 double* chi_1_minus_alpha, 00107 double* tau ); 00108 FLA_Error FLA_Househ2s_UT_l_opc( int m_x2, 00109 scomplex* chi_1, 00110 scomplex* x2, int inc_x2, 00111 scomplex* alpha, 00112 scomplex* chi_1_minus_alpha, 00113 scomplex* tau ); 00114 FLA_Error FLA_Househ2s_UT_l_opz( int m_x2, 00115 dcomplex* chi_1, 00116 dcomplex* x2, int inc_x2, 00117 dcomplex* alpha, 00118 dcomplex* chi_1_minus_alpha, 00119 dcomplex* tau ); 00120 FLA_Error FLA_Househ2s_UT_r_ops( int m_x2, 00121 float* chi_1, 00122 float* x2, int inc_x2, 00123 float* alpha, 00124 float* chi_1_minus_alpha, 00125 float* tau ); 00126 FLA_Error FLA_Househ2s_UT_r_opd( int m_x2, 00127 double* chi_1, 00128 double* x2, int inc_x2, 00129 double* alpha, 00130 double* chi_1_minus_alpha, 00131 double* tau ); 00132 FLA_Error FLA_Househ2s_UT_r_opc( int m_x2, 00133 scomplex* chi_1, 00134 scomplex* x2, int inc_x2, 00135 scomplex* alpha, 00136 scomplex* chi_1_minus_alpha, 00137 scomplex* tau ); 00138 FLA_Error FLA_Househ2s_UT_r_opz( int m_x2, 00139 dcomplex* chi_1, 00140 dcomplex* x2, int inc_x2, 00141 dcomplex* alpha, 00142 dcomplex* chi_1_minus_alpha, 00143 dcomplex* tau ); 00144 00145 FLA_Error FLA_Apply_diag_matrix( FLA_Side side, FLA_Conj conj, FLA_Obj x, FLA_Obj A ); 00146 FLA_Error FLA_Shift_pivots_to( FLA_Pivot_type ptype, FLA_Obj p ); 00147 FLA_Error FLA_Form_perm_matrix( FLA_Obj p, FLA_Obj A ); 00148 FLA_Error FLA_LU_find_zero_on_diagonal( FLA_Obj A ); 00149 00150 // --- LAPACK-related utility check routine prototypes ------------------------- 00151 00152 FLA_Error FLA_Househ2_UT_check( FLA_Side side, FLA_Obj chi_1, FLA_Obj x2, FLA_Obj tau ); 00153 FLA_Error FLA_Househ3UD_UT_check( FLA_Obj chi_1, FLA_Obj x2, FLA_Obj y2, FLA_Obj tau ); 00154 FLA_Error FLA_Househ2s_UT_check( FLA_Side side, FLA_Obj chi_1, FLA_Obj x2, FLA_Obj alpha, FLA_Obj chi_1_minus_alpha, FLA_Obj tau ); 00155 FLA_Error FLA_Apply_diag_matrix_check( FLA_Side side, FLA_Conj conj, FLA_Obj x, FLA_Obj A ); 00156 FLA_Error FLA_Shift_pivots_to_check( FLA_Pivot_type ptype, FLA_Obj p ); 00157 FLA_Error FLA_Form_perm_matrix_check( FLA_Obj p, FLA_Obj A ); 00158 FLA_Error FLA_LU_find_zero_on_diagonal_check( FLA_Obj A ); 00159