libflame
revision_anchor
|
Functions | |
FLA_Error | FLA_Tridiag_UT_form_Q (FLA_Uplo uplo, FLA_Obj A, FLA_Obj T) |
FLA_Error FLA_Tridiag_UT_form_Q | ( | FLA_Uplo | uplo, |
FLA_Obj | A, | ||
FLA_Obj | T | ||
) |
References FLA_Check_error_level(), FLA_Part_1x2(), FLA_Part_2x2(), FLA_QR_UT_form_Q(), FLA_Tridiag_UT_form_Q_check(), and FLA_Tridiag_UT_shift_U().
Referenced by FLA_Hevd_lv_unb_var1(), and FLA_Hevd_lv_unb_var2().
{ FLA_Error r_val = FLA_SUCCESS; FLA_Obj ATL, ATR, ABL, ABR; FLA_Obj TL, TR; if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) FLA_Tridiag_UT_form_Q_check( uplo, A, T ); // Shift the Householder vectors one row/column towards the diagonal. FLA_Tridiag_UT_shift_U( uplo, A ); FLA_Part_2x2( A, &ATL, &ATR, &ABL, &ABR, 1, 1, FLA_TL ); FLA_Part_1x2( T, &TL, &TR, 1, FLA_RIGHT ); if ( uplo == FLA_LOWER_TRIANGULAR ) { FLA_QR_UT_form_Q( ABR, TL, ABR ); } else // if ( uplo == FLA_UPPER_TRIANGULAR ) { //FLA_LQ_UT_form_Q( A, T, A ); } return r_val; }