libflame  revision_anchor
Functions
FLASH_LU_incpiv.c File Reference

(r)

Functions

FLA_Error FLASH_LU_incpiv (FLA_Obj A, FLA_Obj p, FLA_Obj L)
 

Function Documentation

◆ FLASH_LU_incpiv()

FLA_Error FLASH_LU_incpiv ( FLA_Obj  A,
FLA_Obj  p,
FLA_Obj  L 
)

References FLA_Abort(), FLA_Check_error_level(), FLA_LU_incpiv_check(), FLA_Print_message(), FLASH_LU_incpiv_noopt(), FLASH_LU_incpiv_opt1(), FLASH_Obj_depth(), and FLASH_Queue_stack_depth().

14 {
15  FLA_Error r_val;
16 
17  // Check parameters.
18  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
19  FLA_LU_incpiv_check( A, p, L );
20 
21  // *** The current LU_incpiv algorithm implemented assumes that
22  // the matrix has a hierarchical depth of 1. We check for that here, because
23  // we anticipate that we'll use a more general algorithm in the future, and
24  // we don't want to forget to remove the constraint. ***
25  if ( FLASH_Obj_depth( A ) != 1 )
26  {
27  FLA_Print_message( "FLASH_LU_incpiv() currently only supports matrices of depth 1",
28  __FILE__, __LINE__ );
29  FLA_Abort();
30  }
31 
32  if ( FLASH_Queue_stack_depth() == 0 )
33  r_val = FLASH_LU_incpiv_opt1( A, p, L );
34  else
35  r_val = FLASH_LU_incpiv_noopt( A, p, L );
36 
37  return r_val;
38 }
dim_t FLASH_Obj_depth(FLA_Obj H)
Definition: FLASH_Obj.c:20
FLA_Error FLASH_LU_incpiv_opt1(FLA_Obj A, FLA_Obj p, FLA_Obj L)
Definition: FLASH_LU_incpiv_opt1.c:15
FLA_Error FLASH_LU_incpiv_noopt(FLA_Obj A, FLA_Obj p, FLA_Obj L)
Definition: FLASH_LU_incpiv_noopt.c:15
int FLA_Error
Definition: FLA_type_defs.h:47
void FLA_Abort(void)
Definition: FLA_Error.c:248
unsigned int FLASH_Queue_stack_depth(void)
Definition: FLASH_Queue.c:106
void FLA_Print_message(char *str, char *file, int line)
Definition: FLA_Error.c:234
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
FLA_Error FLA_LU_incpiv_check(FLA_Obj A, FLA_Obj p, FLA_Obj L)
Definition: FLA_LU_incpiv_check.c:13