libflame  revision_anchor
Functions | Variables
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_tflash_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

fla_appiv_t* flash_appiv_cntl
extern