libflame  revision_anchor
FLA_Tridiag_UT.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_Tridiag_UT_l.h"
00034 //#include "FLA_Tridiag_UT_u.h"
00035 
00036 FLA_Error FLA_Tridiag_UT( FLA_Uplo uplo, FLA_Obj A, FLA_Obj T );
00037 
00038 FLA_Error FLA_Tridiag_UT_internal( FLA_Uplo uplo, FLA_Obj A, FLA_Obj T, fla_tridiagut_t* cntl );
00039 
00040 FLA_Error FLA_Tridiag_UT_l( FLA_Obj A, FLA_Obj T, fla_tridiagut_t* cntl );
00041 FLA_Error FLA_Tridiag_UT_u( FLA_Obj A, FLA_Obj T, fla_tridiagut_t* cntl );
00042 
00043 FLA_Error FLA_Tridiag_UT_create_T( FLA_Obj A, FLA_Obj* T );
00044 
00045 FLA_Error FLA_Tridiag_UT_recover_tau( FLA_Obj T, FLA_Obj t );
00046 
00047 FLA_Error FLA_Tridiag_UT_extract_diagonals( FLA_Uplo uplo, FLA_Obj A, FLA_Obj d, FLA_Obj e );
00048 FLA_Error FLA_Tridiag_UT_l_extract_diagonals( FLA_Obj A, FLA_Obj d, FLA_Obj e );
00049 FLA_Error FLA_Tridiag_UT_u_extract_diagonals( FLA_Obj A, FLA_Obj d, FLA_Obj e );
00050 
00051 FLA_Error FLA_Tridiag_UT_realify( FLA_Uplo uplo, FLA_Obj A, FLA_Obj d );
00052 FLA_Error FLA_Tridiag_UT_l_realify_unb( FLA_Obj A, FLA_Obj d );
00053 FLA_Error FLA_Tridiag_UT_l_realify_opt( FLA_Obj A, FLA_Obj d );
00054 FLA_Error FLA_Tridiag_UT_u_realify_unb( FLA_Obj A, FLA_Obj d );
00055 FLA_Error FLA_Tridiag_UT_u_realify_opt( FLA_Obj A, FLA_Obj d );
00056 
00057 
00058 FLA_Error FLA_Tridiag_UT_shift_U( FLA_Uplo uplo, FLA_Obj A );
00059 FLA_Error FLA_Tridiag_UT_shift_U_l_ops( int       m_A,
00060                                         float*    buff_A, int rs_A, int cs_A );
00061 FLA_Error FLA_Tridiag_UT_shift_U_u_ops( int       m_A,
00062                                         float*    buff_A, int rs_A, int cs_A );
00063 FLA_Error FLA_Tridiag_UT_shift_U_l_opd( int       m_A,
00064                                         double*   buff_A, int rs_A, int cs_A );
00065 FLA_Error FLA_Tridiag_UT_shift_U_u_opd( int       m_A,
00066                                         double*   buff_A, int rs_A, int cs_A );
00067 FLA_Error FLA_Tridiag_UT_shift_U_l_opc( int       m_A,
00068                                         scomplex* buff_A, int rs_A, int cs_A );
00069 FLA_Error FLA_Tridiag_UT_shift_U_u_opc( int       m_A,
00070                                         scomplex* buff_A, int rs_A, int cs_A );
00071 FLA_Error FLA_Tridiag_UT_shift_U_l_opz( int       m_A,
00072                                         dcomplex* buff_A, int rs_A, int cs_A );
00073 FLA_Error FLA_Tridiag_UT_shift_U_u_opz( int       m_A,
00074                                         dcomplex* buff_A, int rs_A, int cs_A );
00075 
00076 FLA_Error FLA_Tridiag_UT_form_Q( FLA_Uplo uplo, FLA_Obj A, FLA_Obj T );
00077 FLA_Error FLA_Tridiag_UT_form_Q_l_blk_var1( FLA_Obj A, FLA_Obj T, FLA_Obj W );
00078 FLA_Error FLA_Tridiag_UT_form_Q_u_blk_var1( FLA_Obj A, FLA_Obj T, FLA_Obj W );
00079 FLA_Error FLA_Tridiag_UT_form_Q_l_opt_var1( FLA_Obj A, FLA_Obj T );
00080 FLA_Error FLA_Tridiag_UT_form_Q_l_ops_var1( int       m_A,
00081                                             int       n_AT,
00082                                             float*    buff_A, int rs_A, int cs_A,
00083                                             float*    buff_T, int rs_T, int cs_T );
00084 FLA_Error FLA_Tridiag_UT_form_Q_l_opd_var1( int       m_A,
00085                                             int       n_AT,
00086                                             double*   buff_A, int rs_A, int cs_A,
00087                                             double*   buff_T, int rs_T, int cs_T );
00088 FLA_Error FLA_Tridiag_UT_form_Q_l_opc_var1( int       m_A,
00089                                             int       n_AT,
00090                                             scomplex* buff_A, int rs_A, int cs_A,
00091                                             scomplex* buff_T, int rs_T, int cs_T );
00092 FLA_Error FLA_Tridiag_UT_form_Q_l_opz_var1( int       m_A,
00093                                             int       n_AT,
00094                                             dcomplex* buff_A, int rs_A, int cs_A,
00095                                             dcomplex* buff_T, int rs_T, int cs_T );