libflame revision_anchor
FLA_Lyap_internal.c File Reference

(r)

Functions

FLA_Error FLA_Lyap_internal (FLA_Trans trans, FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
 

Variables

fla_lyap_t * flash_lyap_cntl
 
fla_lyap_t * fla_lyap_cntl_leaf
 

Function Documentation

◆ FLA_Lyap_internal()

FLA_Error FLA_Lyap_internal ( FLA_Trans trans,
FLA_Obj isgn,
FLA_Obj A,
FLA_Obj C,
FLA_Obj scale,
fla_lyap_t * cntl )
17{
18 FLA_Error r_val = FLA_SUCCESS;
19
20 if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
21 FLA_Lyap_internal_check( trans, isgn, A, C, scale, cntl );
22
23 if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
24 FLA_Obj_elemtype( A ) == FLA_MATRIX &&
25 FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM )
26 {
27 // Recurse
28 r_val = FLA_Lyap_internal( trans,
29 isgn,
30 *FLASH_OBJ_PTR_AT( A ),
31 *FLASH_OBJ_PTR_AT( C ),
32 scale,
34 }
35 else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
36 FLA_Obj_elemtype( A ) == FLA_SCALAR &&
38 {
39 // Enqueue
40 ENQUEUE_FLASH_Lyap( trans, isgn, A, C, scale, cntl );
41 }
42 else
43 {
44 if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
45 FLA_Obj_elemtype( A ) == FLA_SCALAR &&
47 {
48 // Execute leaf
49 cntl = fla_lyap_cntl_leaf;
50 }
51
52 // Parameter combinations
53 if ( trans == FLA_NO_TRANSPOSE )
54 {
55 r_val = FLA_Lyap_n( isgn, A, C, scale, cntl );
56 }
57 else if ( trans == FLA_TRANSPOSE || trans == FLA_CONJ_TRANSPOSE )
58 {
59 r_val = FLA_Lyap_h( isgn, A, C, scale, cntl );
60 }
61 }
62
63 return r_val;
64}
FLA_Bool FLASH_Queue_get_enabled(void)
Definition FLASH_Queue.c:171
FLA_Error FLA_Lyap_n(FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_n.c:13
FLA_Error FLA_Lyap_h(FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_h.c:13
FLA_Error FLA_Lyap_internal(FLA_Trans trans, FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_internal.c:16
fla_lyap_t * fla_lyap_cntl_leaf
Definition FLA_Lyap_cntl_init.c:19
fla_lyap_t * flash_lyap_cntl
Definition FLASH_Lyap_cntl_init.c:21
FLA_Error FLA_Lyap_internal_check(FLA_Trans trans, FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_internal_check.c:13
FLA_Elemtype FLA_Obj_elemtype(FLA_Obj obj)
Definition FLA_Query.c:51
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18
int FLA_Error
Definition FLA_type_defs.h:47

References FLA_Check_error_level(), fla_lyap_cntl_leaf, FLA_Lyap_h(), FLA_Lyap_internal(), FLA_Lyap_internal_check(), FLA_Lyap_n(), FLA_Obj_elemtype(), flash_lyap_cntl, and FLASH_Queue_get_enabled().

Referenced by FLA_Lyap(), FLA_Lyap_h_blk_var1(), FLA_Lyap_h_blk_var2(), FLA_Lyap_h_blk_var3(), FLA_Lyap_h_blk_var4(), FLA_Lyap_h_task(), FLA_Lyap_internal(), FLA_Lyap_n_blk_var1(), FLA_Lyap_n_blk_var2(), FLA_Lyap_n_blk_var3(), FLA_Lyap_n_blk_var4(), FLA_Lyap_n_task(), FLA_Lyap_task(), and FLASH_Lyap().

Variable Documentation

◆ fla_lyap_cntl_leaf

fla_lyap_t* fla_lyap_cntl_leaf
extern

◆ flash_lyap_cntl

fla_lyap_t* flash_lyap_cntl
extern

Referenced by FLA_Lyap_internal().