|
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;
}
1.7.6.1