libflame  revision_anchor
Functions | Variables
FLASH_LU_piv.c File Reference

(r)

Functions

FLA_Error FLASH_LU_piv (FLA_Obj A, FLA_Obj p)
 

Variables

fla_lu_tflash_lu_piv_cntl
 

Function Documentation

◆ FLASH_LU_piv()

FLA_Error FLASH_LU_piv ( FLA_Obj  A,
FLA_Obj  p 
)
16 {
17  FLA_Error r_val = FLA_SUCCESS;
18 
19  // Check parameters.
20  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
21  FLA_LU_piv_check( A, p );
22 
23  // *** The current LU_piv algorithm implemented assumes that
24  // the matrix has a hierarchical depth of 1. We check for that here, because
25  // we anticipate that we'll use a more general algorithm in the future, and
26  // we don't want to forget to remove the constraint. ***
27  if ( FLASH_Obj_depth( A ) != 1 )
28  {
29  FLA_Print_message( "FLASH_LU_piv() currently only supports matrices of depth 1",
30  __FILE__, __LINE__ );
31  FLA_Abort();
32  }
33 
34  // Begin a parallel region.
36 
37  // Invoke FLA_LU_piv_internal() with large control tree.
39 
40  // End the parallel region.
42 
43  // Check for singularity.
44  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
45  r_val = FLASH_LU_find_zero_on_diagonal( A );
46 
47  return r_val;
48 }
fla_lu_t * flash_lu_piv_cntl
Definition: FLASH_LU_piv_cntl_init.c:18
void FLASH_Queue_begin(void)
Definition: FLASH_Queue.c:59
void FLASH_Queue_end(void)
Definition: FLASH_Queue.c:81
dim_t FLASH_Obj_depth(FLA_Obj H)
Definition: FLASH_Obj.c:20
FLA_Error FLASH_LU_find_zero_on_diagonal(FLA_Obj A)
Definition: FLASH_LU_find_zero_on_diagonal.c:13
FLA_Error FLA_LU_piv_internal(FLA_Obj A, FLA_Obj p, fla_lu_t *cntl)
Definition: FLA_LU_piv_internal.c:15
FLA_Error FLA_LU_piv_check(FLA_Obj A, FLA_Obj p)
Definition: FLA_LU_piv_check.c:13
void FLA_Abort(void)
Definition: FLA_Error.c:248
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void FLA_Print_message(char *str, char *file, int line)
Definition: FLA_Error.c:234
int FLA_Error
Definition: FLA_type_defs.h:47

References FLA_Abort(), FLA_Check_error_level(), FLA_LU_piv_check(), FLA_LU_piv_internal(), FLA_Print_message(), FLASH_LU_find_zero_on_diagonal(), flash_lu_piv_cntl, FLASH_Obj_depth(), FLASH_Queue_begin(), and FLASH_Queue_end().

Variable Documentation

◆ flash_lu_piv_cntl

fla_lu_t* flash_lu_piv_cntl
extern