libflame revision_anchor
Functions | Variables
FLA_Trinv.c File Reference

(r)

Functions

FLA_Error FLA_Trinv (FLA_Uplo uplo, FLA_Diag diag, FLA_Obj A)

Variables

fla_trinv_tfla_trinv_cntl_leaf
fla_trinv_tfla_trinv_cntl
fla_blocksize_tfla_trinv_var3_bsize

Function Documentation

FLA_Error FLA_Trinv ( FLA_Uplo  uplo,
FLA_Diag  diag,
FLA_Obj  A 
)

References FLA_Blocksize_extract(), FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Trinv_check(), and FLA_Trinv_internal().

{
  FLA_Datatype datatype;
  int          m_A, r_val = 0;
  int          FLA_TRINV_VAR3_BLOCKSIZE;

  // Check parameters.
  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
    FLA_Trinv_check( uplo, diag, A );

  // Determine the datatype of the operation.
  datatype = FLA_Obj_datatype( A );

  // Extract the appropriate blocksize for the given datatype.
  FLA_TRINV_VAR3_BLOCKSIZE = FLA_Blocksize_extract( datatype, fla_trinv_var3_bsize );

  // Determine the dimension of A.
  m_A = FLA_Obj_length( A );

  // Invoke FLA_Trinv_internal() with the appropriate control tree.
  if      ( m_A <= FLA_TRINV_VAR3_BLOCKSIZE )
  {
    r_val = FLA_Trinv_internal( uplo, diag, A, fla_trinv_cntl_leaf );
  }
  else if ( FLA_TRINV_VAR3_BLOCKSIZE < m_A )
  {
    r_val = FLA_Trinv_internal( uplo, diag, A, fla_trinv_cntl );
  }

  return r_val;
}

Variable Documentation