libflame revision_anchor
FLASH_Apply_pivots.c File Reference

(r)

Functions

FLA_Error FLASH_Apply_pivots (FLA_Side side, FLA_Trans trans, FLA_Obj p, FLA_Obj A)
 

Variables

fla_appiv_t * flash_appiv_cntl
 

Function Documentation

◆ FLASH_Apply_pivots()

FLA_Error FLASH_Apply_pivots ( FLA_Side side,
FLA_Trans trans,
FLA_Obj p,
FLA_Obj A )
17{
18 FLA_Error r_val;
19 FLA_Bool enable_supermatrix;
20
21 // Check parameters.
22
23 // *** The current Apply_pivots 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_Apply_pivots() currently only supports matrices of depth 1",
30 __FILE__, __LINE__ );
31 FLA_Abort();
32 }
33
34 // Find the status of SuperMatrix.
35 enable_supermatrix = FLASH_Queue_get_enabled();
36
37 // Temporarily disable SuperMatrix.
39
40 // Invoke FLA_Apply_pivots_internal() with large control tree.
41 r_val = FLA_Apply_pivots_internal( side, trans, p, A, flash_appiv_cntl );
42
43 // Restore SuperMatrix to its previous status.
44 if ( enable_supermatrix )
46
47 return r_val;
48}
fla_appiv_t * flash_appiv_cntl
Definition FLASH_Apply_pivots_cntl_init.c:15
FLA_Bool FLASH_Queue_get_enabled(void)
Definition FLASH_Queue.c:171
FLA_Error FLASH_Queue_enable(void)
Definition FLASH_Queue.c:117
FLA_Error FLASH_Queue_disable(void)
Definition FLASH_Queue.c:144
dim_t FLASH_Obj_depth(FLA_Obj H)
Definition FLASH_Obj.c:20
FLA_Error FLA_Apply_pivots_internal(FLA_Side side, FLA_Trans trans, FLA_Obj p, FLA_Obj A, fla_appiv_t *cntl)
Definition FLA_Apply_pivots_internal.c:13
void FLA_Abort(void)
Definition FLA_Error.c:248
void FLA_Print_message(char *str, char *file, int line)
Definition FLA_Error.c:234
int FLA_Error
Definition FLA_type_defs.h:47
int FLA_Bool
Definition FLA_type_defs.h:46

References FLA_Abort(), FLA_Apply_pivots_internal(), FLA_Print_message(), flash_appiv_cntl, FLASH_Obj_depth(), FLASH_Queue_disable(), FLASH_Queue_enable(), and FLASH_Queue_get_enabled().

Referenced by FLASH_LU_piv_solve().

Variable Documentation

◆ flash_appiv_cntl