libflame
revision_anchor
|
00001 /* 00002 00003 Copyright (C) 2014, The University of Texas at Austin 00004 00005 This file is part of libflame and is available under the 3-Clause 00006 BSD license, which can be found in the LICENSE file at the top-level 00007 directory, or at http://opensource.org/licenses/BSD-3-Clause 00008 00009 */ 00010 00011 #include "FLA_Tevd_iteracc_v.h" 00012 #include "FLA_Tevd_eigval_v.h" 00013 #include "FLA_Tevd_francis_v.h" 00014 00015 // --- FLA_Tevd_compute_scaling() ---------------------------------------------- 00016 00017 FLA_Error FLA_Tevd_compute_scaling_ops( int m_A, 00018 float* buff_d, int inc_d, 00019 float* buff_e, int inc_e, 00020 float* sigma ); 00021 FLA_Error FLA_Tevd_compute_scaling_opd( int m_A, 00022 double* buff_d, int inc_d, 00023 double* buff_e, int inc_e, 00024 double* sigma ); 00025 00026 // --- FLA_Tevd_find_submatrix() ----------------------------------------------- 00027 00028 FLA_Error FLA_Tevd_find_submatrix_ops( int m_A, 00029 int ij_begin, 00030 float* buff_d, int inc_d, 00031 float* buff_e, int inc_e, 00032 int* ijTL, 00033 int* ijBR ); 00034 FLA_Error FLA_Tevd_find_submatrix_opd( int m_A, 00035 int ij_begin, 00036 double* buff_d, int inc_d, 00037 double* buff_e, int inc_e, 00038 int* ijTL, 00039 int* ijBR ); 00040 00041 // --- FLA_Tevd_find_perfshift() ----------------------------------------------- 00042 00043 FLA_Error FLA_Tevd_find_perfshift_ops( int m_d, 00044 int m_l, 00045 float* buff_d, int inc_d, 00046 float* buff_e, int inc_e, 00047 float* buff_l, int inc_l, 00048 int* buff_lstat, int inc_lstat, 00049 float* buff_pu, int inc_pu, 00050 int* ij_shift ); 00051 FLA_Error FLA_Tevd_find_perfshift_opd( int m_d, 00052 int m_l, 00053 double* buff_d, int inc_d, 00054 double* buff_e, int inc_e, 00055 double* buff_l, int inc_l, 00056 int* buff_lstat, int inc_lstat, 00057 double* buff_pu, int inc_pu, 00058 int* ij_shift ); 00059 00060 // --- FLA_Norm1_tridiag() ----------------------------------------------------- 00061 00062 FLA_Error FLA_Norm1_tridiag( FLA_Obj d, FLA_Obj e, FLA_Obj norm ); 00063 FLA_Error FLA_Norm1_tridiag_ops( int m_A, 00064 float* buff_d, int inc_d, 00065 float* buff_e, int inc_e, 00066 float* norm ); 00067 FLA_Error FLA_Norm1_tridiag_opd( int m_A, 00068 double* buff_d, int inc_d, 00069 double* buff_e, int inc_e, 00070 double* norm ); 00071 00072 // --- FLA_Tevd_v_opt_var1() --------------------------------------------------- 00073 00074 FLA_Error FLA_Tevd_v_opt_var1( dim_t n_iter_max, FLA_Obj d, FLA_Obj e, FLA_Obj G, FLA_Obj U, dim_t b_alg ); 00075 FLA_Error FLA_Tevd_v_ops_var1( int m_A, 00076 int m_U, 00077 int n_G, 00078 int n_iter_max, 00079 float* buff_d, int inc_d, 00080 float* buff_e, int inc_e, 00081 scomplex* buff_G, int rs_G, int cs_G, 00082 float* buff_U, int rs_U, int cs_U, 00083 int b_alg ); 00084 FLA_Error FLA_Tevd_v_opd_var1( int m_A, 00085 int m_U, 00086 int n_G, 00087 int n_iter_max, 00088 double* buff_d, int inc_d, 00089 double* buff_e, int inc_e, 00090 dcomplex* buff_G, int rs_G, int cs_G, 00091 double* buff_U, int rs_U, int cs_U, 00092 int b_alg ); 00093 FLA_Error FLA_Tevd_v_opc_var1( int m_A, 00094 int m_U, 00095 int n_G, 00096 int n_iter_max, 00097 float* buff_d, int inc_d, 00098 float* buff_e, int inc_e, 00099 scomplex* buff_G, int rs_G, int cs_G, 00100 scomplex* buff_U, int rs_U, int cs_U, 00101 int b_alg ); 00102 FLA_Error FLA_Tevd_v_opz_var1( int m_A, 00103 int m_U, 00104 int n_G, 00105 int n_iter_max, 00106 double* buff_d, int inc_d, 00107 double* buff_e, int inc_e, 00108 dcomplex* buff_G, int rs_G, int cs_G, 00109 dcomplex* buff_U, int rs_U, int cs_U, 00110 int b_alg ); 00111 00112 // --- FLA_Tevd_v_opt_var2() --------------------------------------------------- 00113 00114 FLA_Error FLA_Tevd_v_opt_var2( dim_t n_iter_max, FLA_Obj d, FLA_Obj e, FLA_Obj G, FLA_Obj R, FLA_Obj W, FLA_Obj U, dim_t b_alg ); 00115 FLA_Error FLA_Tevd_v_ops_var2( int m_A, 00116 int m_U, 00117 int n_G, 00118 int n_G_extra, 00119 float* buff_d, int inc_d, 00120 float* buff_e, int inc_e, 00121 scomplex* buff_G, int rs_G, int cs_G, 00122 float* buff_R, int rs_R, int cs_R, 00123 float* buff_W, int rs_W, int cs_W, 00124 float* buff_U, int rs_U, int cs_U, 00125 int b_alg ); 00126 FLA_Error FLA_Tevd_v_opd_var2( int m_A, 00127 int m_U, 00128 int n_G, 00129 int n_G_extra, 00130 double* buff_d, int inc_d, 00131 double* buff_e, int inc_e, 00132 dcomplex* buff_G, int rs_G, int cs_G, 00133 double* buff_R, int rs_R, int cs_R, 00134 double* buff_W, int rs_W, int cs_W, 00135 double* buff_U, int rs_U, int cs_U, 00136 int b_alg ); 00137 FLA_Error FLA_Tevd_v_opc_var2( int m_A, 00138 int m_U, 00139 int n_G, 00140 int n_G_extra, 00141 float* buff_d, int inc_d, 00142 float* buff_e, int inc_e, 00143 scomplex* buff_G, int rs_G, int cs_G, 00144 float* buff_R, int rs_R, int cs_R, 00145 scomplex* buff_W, int rs_W, int cs_W, 00146 scomplex* buff_U, int rs_U, int cs_U, 00147 int b_alg ); 00148 FLA_Error FLA_Tevd_v_opz_var2( int m_A, 00149 int m_U, 00150 int n_G, 00151 int n_G_extra, 00152 double* buff_d, int inc_d, 00153 double* buff_e, int inc_e, 00154 dcomplex* buff_G, int rs_G, int cs_G, 00155 double* buff_R, int rs_R, int cs_R, 00156 dcomplex* buff_W, int rs_W, int cs_W, 00157 dcomplex* buff_U, int rs_U, int cs_U, 00158 int b_alg ); 00159