libflame revision_anchor
FLASH_LU_piv.c File Reference

(r)

Functions

FLA_Error FLASH_LU_piv (FLA_Obj A, FLA_Obj p)
 

Variables

fla_lu_t * flash_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 )
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