libflame  revision_anchor
Functions
FLA_Apply_pivots_internal.c File Reference

(r)

Functions

FLA_Error FLA_Apply_pivots_internal (FLA_Side side, FLA_Trans trans, FLA_Obj p, FLA_Obj A, fla_appiv_t *cntl)
 

Function Documentation

◆ FLA_Apply_pivots_internal()

FLA_Error FLA_Apply_pivots_internal ( FLA_Side  side,
FLA_Trans  trans,
FLA_Obj  p,
FLA_Obj  A,
fla_appiv_t cntl 
)
14 {
15  FLA_Error r_val = FLA_SUCCESS;
16 
17  if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
18  FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM )
19  {
20  if ( FLASH_Queue_get_enabled( ) )
21  {
22  // Enqueue
23  ENQUEUE_FLASH_Apply_pivots_macro( side, trans, *FLASH_OBJ_PTR_AT( p ), A, cntl );
24  }
25  else
26  {
27  // Execute leaf
28  r_val = FLA_Apply_pivots_macro_task( side, trans, *FLASH_OBJ_PTR_AT( p ), A, cntl );
29  }
30  }
31  else
32  {
33  // Parameter combinations
34  if ( trans == FLA_NO_TRANSPOSE )
35  {
36  if ( side == FLA_LEFT )
37  {
38  r_val = FLA_Apply_pivots_ln( p, A, cntl );
39  }
40  else if ( side == FLA_RIGHT )
41  {
42  r_val = FLA_Apply_pivots_rn( p, A, cntl );
43  }
44  }
45  else if ( trans == FLA_TRANSPOSE )
46  {
47  if ( side == FLA_LEFT )
48  {
49  r_val = FLA_Apply_pivots_lt( p, A, cntl );
50  }
51  else if ( side == FLA_RIGHT )
52  {
53  r_val = FLA_Apply_pivots_rt( p, A, cntl );
54  }
55  }
56  }
57 
58  return r_val;
59 }
FLA_Bool FLASH_Queue_get_enabled(void)
Definition: FLASH_Queue.c:171
FLA_Error FLA_Apply_pivots_ln(FLA_Obj p, FLA_Obj A, fla_appiv_t *cntl)
Definition: FLA_Apply_pivots_ln.c:13
FLA_Error FLA_Apply_pivots_rn(FLA_Obj p, FLA_Obj A, fla_appiv_t *cntl)
Definition: FLA_Apply_pivots_rn.c:13
FLA_Error FLA_Apply_pivots_rt(FLA_Obj p, FLA_Obj A, fla_appiv_t *cntl)
Definition: FLA_Apply_pivots_rt.c:13
FLA_Error FLA_Apply_pivots_lt(FLA_Obj p, FLA_Obj A, fla_appiv_t *cntl)
Definition: FLA_Apply_pivots_lt.c:13
FLA_Error FLA_Apply_pivots_macro_task(FLA_Side side, FLA_Trans trans, FLA_Obj p, FLA_Obj A, fla_appiv_t *cntl)
Definition: FLA_Apply_pivots_macro_task.c:15
int FLA_Error
Definition: FLA_type_defs.h:47

References FLA_Apply_pivots_ln(), FLA_Apply_pivots_lt(), FLA_Apply_pivots_macro_task(), FLA_Apply_pivots_rn(), FLA_Apply_pivots_rt(), and FLASH_Queue_get_enabled().

Referenced by FLA_Apply_pivots(), FLA_Apply_pivots_ln_blk_var1(), FLA_Apply_pivots_ln_blk_var2(), FLA_Apply_pivots_ln_task(), FLA_Apply_pivots_macro_task(), FLA_Apply_pivots_task(), FLA_LU_piv_blk_var3(), FLA_LU_piv_blk_var4(), FLA_LU_piv_blk_var5(), and FLASH_Apply_pivots().