libflame  revision_anchor
Functions | Variables
FLA_Ttmm.c File Reference

(r)

Functions

FLA_Error FLA_Ttmm (FLA_Uplo uplo, FLA_Obj A)

Variables

fla_ttmm_tfla_ttmm_cntl_leaf
fla_ttmm_tfla_ttmm_cntl
fla_blocksize_tfla_ttmm_var1_bsize

Function Documentation

FLA_Error FLA_Ttmm ( FLA_Uplo  uplo,
FLA_Obj  A 
)

References FLA_Blocksize_extract(), FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Ttmm_check(), and FLA_Ttmm_internal().

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

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

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

  // Extract the appropriate blocksize for the given datatype.
  FLA_TTMM_VAR1_BLOCKSIZE = FLA_Blocksize_extract( datatype, fla_ttmm_var1_bsize );

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

  // Invoke FLA_Ttmm_internal() with the appropriate control tree.
  if      ( m_A <= FLA_TTMM_VAR1_BLOCKSIZE )
  {
    r_val = FLA_Ttmm_internal( uplo, A, fla_ttmm_cntl_leaf );
  }
  else if ( FLA_TTMM_VAR1_BLOCKSIZE < m_A )
  {
    r_val = FLA_Ttmm_internal( uplo, A, fla_ttmm_cntl );
  }

  return r_val;
}

Variable Documentation