libflame  revision_anchor
Functions | Variables
FLA_Tridiag_UT.c File Reference

(r)

Functions

FLA_Error FLA_Tridiag_UT (FLA_Uplo uplo, FLA_Obj A, FLA_Obj T)

Variables

fla_tridiagut_tfla_tridiagut_cntl_fused
fla_tridiagut_tfla_tridiagut_cntl_nofus
fla_tridiagut_tfla_tridiagut_cntl_plain

Function Documentation

References FLA_Check_error_level(), FLA_Obj_is_double_precision(), FLA_Obj_row_stride(), FLA_Tridiag_UT_check(), and FLA_Tridiag_UT_internal().

Referenced by FLA_Hevd_lv_unb_var1(), and FLA_Hevd_lv_unb_var2().

{
  FLA_Error r_val;

  // Check parameters.
  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
    FLA_Tridiag_UT_check( uplo, A, T );

  if ( FLA_Obj_row_stride( A ) == 1 &&
       FLA_Obj_is_double_precision( A ) )
    // Temporary fix not to use the fused version (numerically unstable).
    r_val = FLA_Tridiag_UT_internal( uplo, A, T, fla_tridiagut_cntl_plain );
  else
    r_val = FLA_Tridiag_UT_internal( uplo, A, T, fla_tridiagut_cntl_nofus );

  return r_val;
}

Variable Documentation