libflame  revision_anchor
FLA_Tevd_v.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 #include "FLA_Tevd_iteracc_v.h"
00034 #include "FLA_Tevd_eigval_v.h"
00035 #include "FLA_Tevd_francis_v.h"
00036 
00037 // --- FLA_Tevd_compute_scaling() ----------------------------------------------
00038 
00039 FLA_Error FLA_Tevd_compute_scaling_ops( int       m_A,
00040                                         float*    buff_d, int inc_d, 
00041                                         float*    buff_e, int inc_e,
00042                                         float*    sigma );
00043 FLA_Error FLA_Tevd_compute_scaling_opd( int       m_A,
00044                                         double*   buff_d, int inc_d, 
00045                                         double*   buff_e, int inc_e,
00046                                         double*   sigma );
00047 
00048 // --- FLA_Tevd_find_submatrix() -----------------------------------------------
00049 
00050 FLA_Error FLA_Tevd_find_submatrix_ops( int       m_A,
00051                                        int       ij_begin,
00052                                        float*    buff_d, int inc_d, 
00053                                        float*    buff_e, int inc_e,
00054                                        int*      ijTL,
00055                                        int*      ijBR );
00056 FLA_Error FLA_Tevd_find_submatrix_opd( int       m_A,
00057                                        int       ij_begin,
00058                                        double*   buff_d, int inc_d, 
00059                                        double*   buff_e, int inc_e,
00060                                        int*      ijTL,
00061                                        int*      ijBR );
00062 
00063 // --- FLA_Tevd_find_perfshift() -----------------------------------------------
00064 
00065 FLA_Error FLA_Tevd_find_perfshift_ops( int       m_d,
00066                                        int       m_l,
00067                                        float*    buff_d, int inc_d, 
00068                                        float*    buff_e, int inc_e, 
00069                                        float*    buff_l, int inc_l, 
00070                                        int*      buff_lstat, int inc_lstat, 
00071                                        float*    buff_pu, int inc_pu, 
00072                                        int*      ij_shift );
00073 FLA_Error FLA_Tevd_find_perfshift_opd( int       m_d,
00074                                        int       m_l,
00075                                        double*   buff_d, int inc_d, 
00076                                        double*   buff_e, int inc_e, 
00077                                        double*   buff_l, int inc_l, 
00078                                        int*      buff_lstat, int inc_lstat, 
00079                                        double*   buff_pu, int inc_pu, 
00080                                        int*      ij_shift );
00081 
00082 // --- FLA_Norm1_tridiag() -----------------------------------------------------
00083 
00084 FLA_Error FLA_Norm1_tridiag( FLA_Obj d, FLA_Obj e, FLA_Obj norm );
00085 FLA_Error FLA_Norm1_tridiag_ops( int       m_A,
00086                                  float*    buff_d, int inc_d, 
00087                                  float*    buff_e, int inc_e,
00088                                  float*    norm );
00089 FLA_Error FLA_Norm1_tridiag_opd( int       m_A,
00090                                  double*   buff_d, int inc_d, 
00091                                  double*   buff_e, int inc_e,
00092                                  double*   norm );
00093 
00094 // --- FLA_Tevd_v_opt_var1() ---------------------------------------------------
00095 
00096 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 );
00097 FLA_Error FLA_Tevd_v_ops_var1( int       m_A,
00098                                int       m_U,
00099                                int       n_G,
00100                                int       n_iter_max,
00101                                float*    buff_d, int inc_d, 
00102                                float*    buff_e, int inc_e,
00103                                scomplex* buff_G, int rs_G, int cs_G,
00104                                float*    buff_U, int rs_U, int cs_U,
00105                                int       b_alg );
00106 FLA_Error FLA_Tevd_v_opd_var1( int       m_A,
00107                                int       m_U,
00108                                int       n_G,
00109                                int       n_iter_max,
00110                                double*   buff_d, int inc_d, 
00111                                double*   buff_e, int inc_e,
00112                                dcomplex* buff_G, int rs_G, int cs_G,
00113                                double*   buff_U, int rs_U, int cs_U,
00114                                int       b_alg );
00115 FLA_Error FLA_Tevd_v_opc_var1( int       m_A,
00116                                int       m_U,
00117                                int       n_G,
00118                                int       n_iter_max,
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                                scomplex* buff_U, int rs_U, int cs_U,
00123                                int       b_alg );
00124 FLA_Error FLA_Tevd_v_opz_var1( int       m_A,
00125                                int       m_U,
00126                                int       n_G,
00127                                int       n_iter_max,
00128                                double*   buff_d, int inc_d, 
00129                                double*   buff_e, int inc_e,
00130                                dcomplex* buff_G, int rs_G, int cs_G,
00131                                dcomplex* buff_U, int rs_U, int cs_U,
00132                                int       b_alg );
00133 
00134 // --- FLA_Tevd_v_opt_var2() ---------------------------------------------------
00135 
00136 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 );
00137 FLA_Error FLA_Tevd_v_ops_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                                float*    buff_W, int rs_W, int cs_W,
00146                                float*    buff_U, int rs_U, int cs_U,
00147                                int       b_alg );
00148 FLA_Error FLA_Tevd_v_opd_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                                double*   buff_W, int rs_W, int cs_W,
00157                                double*   buff_U, int rs_U, int cs_U,
00158                                int       b_alg );
00159 FLA_Error FLA_Tevd_v_opc_var2( int       m_A,
00160                                int       m_U,
00161                                int       n_G,
00162                                int       n_G_extra,
00163                                float*    buff_d, int inc_d, 
00164                                float*    buff_e, int inc_e,
00165                                scomplex* buff_G, int rs_G, int cs_G,
00166                                float*    buff_R, int rs_R, int cs_R,
00167                                scomplex* buff_W, int rs_W, int cs_W,
00168                                scomplex* buff_U, int rs_U, int cs_U,
00169                                int       b_alg );
00170 FLA_Error FLA_Tevd_v_opz_var2( int       m_A,
00171                                int       m_U,
00172                                int       n_G,
00173                                int       n_G_extra,
00174                                double*   buff_d, int inc_d, 
00175                                double*   buff_e, int inc_e,
00176                                dcomplex* buff_G, int rs_G, int cs_G,
00177                                double*   buff_R, int rs_R, int cs_R,
00178                                dcomplex* buff_W, int rs_W, int cs_W,
00179                                dcomplex* buff_U, int rs_U, int cs_U,
00180                                int       b_alg );
00181 
00182 // --- FLA_Tevd_v_opt_var3() ---------------------------------------------------
00183 
00184 FLA_Error FLA_Tevd_v_opt_var3( dim_t n_iter_max, FLA_Obj d, FLA_Obj e, FLA_Obj l, FLA_Obj ls, FLA_Obj pu, FLA_Obj G, FLA_Obj U, dim_t b_alg );
00185 FLA_Error FLA_Tevd_v_ops_var3( int       m_A,
00186                                int       m_U,
00187                                int       n_G,
00188                                int       n_iter_max,
00189                                float*    buff_d, int inc_d, 
00190                                float*    buff_e, int inc_e,
00191                                float*    buff_l, int inc_l,
00192                                int*      buff_ls, int inc_ls,
00193                                float*    buff_pu, int inc_pu,
00194                                scomplex* buff_G, int rs_G, int cs_G,
00195                                float*    buff_U, int rs_U, int cs_U,
00196                                int       b_alg );
00197 FLA_Error FLA_Tevd_v_opd_var3( int       m_A,
00198                                int       m_U,
00199                                int       n_G,
00200                                int       n_iter_max,
00201                                double*   buff_d, int inc_d, 
00202                                double*   buff_e, int inc_e,
00203                                double*   buff_l, int inc_l,
00204                                int*      buff_ls, int inc_ls,
00205                                double*   buff_pu, int inc_pu,
00206                                dcomplex* buff_G, int rs_G, int cs_G,
00207                                double*   buff_U, int rs_U, int cs_U,
00208                                int       b_alg );
00209 FLA_Error FLA_Tevd_v_opc_var3( int       m_A,
00210                                int       m_U,
00211                                int       n_G,
00212                                int       n_iter_max,
00213                                float*    buff_d, int inc_d, 
00214                                float*    buff_e, int inc_e,
00215                                float*    buff_l, int inc_l,
00216                                int*      buff_ls, int inc_ls,
00217                                float*    buff_pu, int inc_pu,
00218                                scomplex* buff_G, int rs_G, int cs_G,
00219                                scomplex* buff_U, int rs_U, int cs_U,
00220                                int       b_alg );
00221 FLA_Error FLA_Tevd_v_opz_var3( int       m_A,
00222                                int       m_U,
00223                                int       n_G,
00224                                int       n_iter_max,
00225                                double*   buff_d, int inc_d, 
00226                                double*   buff_e, int inc_e,
00227                                double*   buff_l, int inc_l,
00228                                int*      buff_ls, int inc_ls,
00229                                double*   buff_pu, int inc_pu,
00230                                dcomplex* buff_G, int rs_G, int cs_G,
00231                                dcomplex* buff_U, int rs_U, int cs_U,
00232                                int       b_alg );
00233 
00234 // --- FLA_Tevd_v_opt_var4() ---------------------------------------------------
00235 
00236 FLA_Error FLA_Tevd_v_opt_var4( dim_t n_iter_max, FLA_Obj d, FLA_Obj e, FLA_Obj l, FLA_Obj ls, FLA_Obj pu, FLA_Obj G, FLA_Obj R, FLA_Obj W, FLA_Obj U, dim_t b_alg );
00237 FLA_Error FLA_Tevd_v_ops_var4( int       m_A,
00238                                int       m_U,
00239                                int       n_G,
00240                                int       n_iter_max,
00241                                float*    buff_d, int inc_d, 
00242                                float*    buff_e, int inc_e,
00243                                float*    buff_l, int inc_l,
00244                                int*      buff_ls, int inc_ls,
00245                                float*    buff_pu, int inc_pu,
00246                                scomplex* buff_G, int rs_G, int cs_G,
00247                                float*    buff_R, int rs_R, int cs_R,
00248                                float*    buff_W, int rs_W, int cs_W,
00249                                float*    buff_U, int rs_U, int cs_U,
00250                                int       b_alg );
00251 FLA_Error FLA_Tevd_v_opd_var4( int       m_A,
00252                                int       m_U,
00253                                int       n_G,
00254                                int       n_iter_max,
00255                                double*   buff_d, int inc_d, 
00256                                double*   buff_e, int inc_e,
00257                                double*   buff_l, int inc_l,
00258                                int*      buff_ls, int inc_ls,
00259                                double*   buff_pu, int inc_pu,
00260                                dcomplex* buff_G, int rs_G, int cs_G,
00261                                double*   buff_R, int rs_R, int cs_R,
00262                                double*   buff_W, int rs_W, int cs_W,
00263                                double*   buff_U, int rs_U, int cs_U,
00264                                int       b_alg );
00265 FLA_Error FLA_Tevd_v_opc_var4( int       m_A,
00266                                int       m_U,
00267                                int       n_G,
00268                                int       n_iter_max,
00269                                float*    buff_d, int inc_d, 
00270                                float*    buff_e, int inc_e,
00271                                float*    buff_l, int inc_l,
00272                                int*      buff_ls, int inc_ls,
00273                                float*    buff_pu, int inc_pu,
00274                                scomplex* buff_G, int rs_G, int cs_G,
00275                                float*    buff_R, int rs_R, int cs_R,
00276                                scomplex* buff_W, int rs_W, int cs_W,
00277                                scomplex* buff_U, int rs_U, int cs_U,
00278                                int       b_alg );
00279 FLA_Error FLA_Tevd_v_opz_var4( int       m_A,
00280                                int       m_U,
00281                                int       n_G,
00282                                int       n_iter_max,
00283                                double*   buff_d, int inc_d, 
00284                                double*   buff_e, int inc_e,
00285                                double*   buff_l, int inc_l,
00286                                int*      buff_ls, int inc_ls,
00287                                double*   buff_pu, int inc_pu,
00288                                dcomplex* buff_G, int rs_G, int cs_G,
00289                                double*   buff_R, int rs_R, int cs_R,
00290                                dcomplex* buff_W, int rs_W, int cs_W,
00291                                dcomplex* buff_U, int rs_U, int cs_U,
00292                                int       b_alg );
00293