libflame  revision_anchor
Functions
FLASH_FS_incpiv.c File Reference

(r)

Functions

FLA_Error FLASH_FS_incpiv (FLA_Obj A, FLA_Obj p, FLA_Obj L, FLA_Obj b)
 

Function Documentation

◆ FLASH_FS_incpiv()

FLA_Error FLASH_FS_incpiv ( FLA_Obj  A,
FLA_Obj  p,
FLA_Obj  L,
FLA_Obj  b 
)
14 {
15  dim_t nb_alg;
16  FLA_Error r_val;
17  FLA_Bool enable_supermatrix;
18 
19  // Check parameters.
20  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
21  FLA_FS_incpiv_check( A, p, L, b );
22 
23  // *** The current forward substitution 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_FS_incpiv() currently only supports matrices of depth 1",
30  __FILE__, __LINE__ );
31  FLA_Abort();
32  }
33 
34  // Inspect the width of a the top-left element of L to get the algorithmic
35  // blocksize we'll use throughout the LU_incpiv algorithm.
36  nb_alg = FLASH_Obj_scalar_width_tl( L );
37 
38  // Find the status of SuperMatrix.
39  enable_supermatrix = FLASH_Queue_get_enabled();
40 
41  // Temporarily disable SuperMatrix.
43 
44  // Execute tasks.
45  r_val = FLASH_FS_incpiv_aux1( A, p, L, b, nb_alg );
46 
47  // Restore SuperMatrix to its previous status.
48  if ( enable_supermatrix )
50 
51  return r_val;
52 }
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
dim_t FLASH_Obj_scalar_width_tl(FLA_Obj H)
Definition: FLASH_View.c:737
FLA_Error FLA_FS_incpiv_check(FLA_Obj A, FLA_Obj p, FLA_Obj L, FLA_Obj B)
Definition: FLA_FS_incpiv_check.c:13
FLA_Error FLASH_FS_incpiv_aux1(FLA_Obj A, FLA_Obj p, FLA_Obj L, FLA_Obj b, dim_t nb_alg)
Definition: FLASH_FS_incpiv_aux1.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
unsigned long dim_t
Definition: FLA_type_defs.h:71
int FLA_Bool
Definition: FLA_type_defs.h:46

References FLA_Abort(), FLA_Check_error_level(), FLA_FS_incpiv_check(), FLA_Print_message(), FLASH_FS_incpiv_aux1(), FLASH_Obj_depth(), FLASH_Obj_scalar_width_tl(), FLASH_Queue_disable(), FLASH_Queue_enable(), and FLASH_Queue_get_enabled().

Referenced by FLASH_LU_incpiv_solve().