libflame revision_anchor
FLA_Lyap.h File Reference

(r)

Go to the source code of this file.

Functions

FLA_Error FLASH_Lyap (FLA_Trans trans, FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale)
 
FLA_Error FLA_Lyap (FLA_Trans trans, FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale)
 
FLA_Error FLA_Lyap_internal (FLA_Trans trans, FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
 
FLA_Error FLA_Lyap_n (FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
 
FLA_Error FLA_Lyap_h (FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
 

Function Documentation

◆ FLA_Lyap()

FLA_Error FLA_Lyap ( FLA_Trans trans,
FLA_Obj isgn,
FLA_Obj A,
FLA_Obj C,
FLA_Obj scale )
16{
17 FLA_Error r_val;
18
19 // Check parameters.
20 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
21 FLA_Lyap_check( trans, isgn, A, C, scale );
22
23 // Invoke FLA_Lyap_internal() with the appropriate control tree.
24 r_val = FLA_Lyap_internal( trans, isgn, A, C, scale, fla_lyap_cntl );
25
26 return r_val;
27}
fla_lyap_t * fla_lyap_cntl
Definition FLA_Lyap_cntl_init.c:20
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_Error FLA_Lyap_check(FLA_Trans trans, FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale)
Definition FLA_Lyap_check.c:13
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_check(), fla_lyap_cntl, and FLA_Lyap_internal().

◆ FLA_Lyap_h()

FLA_Error FLA_Lyap_h ( FLA_Obj isgn,
FLA_Obj A,
FLA_Obj C,
FLA_Obj scale,
fla_lyap_t * cntl )
14{
15 FLA_Error r_val = FLA_SUCCESS;
16
17 if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT1 )
18 {
19 r_val = FLA_Lyap_h_unb_var1( isgn, A, C );
20 }
21 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT2 )
22 {
23 r_val = FLA_Lyap_h_unb_var2( isgn, A, C );
24 }
25 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT3 )
26 {
27 r_val = FLA_Lyap_h_unb_var3( isgn, A, C );
28 }
29 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT4 )
30 {
31 r_val = FLA_Lyap_h_unb_var4( isgn, A, C );
32 }
33 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT1 )
34 {
35 r_val = FLA_Lyap_h_opt_var1( isgn, A, C );
36 }
37 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT2 )
38 {
39 r_val = FLA_Lyap_h_opt_var2( isgn, A, C );
40 }
41 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT3 )
42 {
43 r_val = FLA_Lyap_h_opt_var3( isgn, A, C );
44 }
45 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT4 )
46 {
47 r_val = FLA_Lyap_h_opt_var4( isgn, A, C );
48 }
49 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 )
50 {
51 r_val = FLA_Lyap_h_blk_var1( isgn, A, C, scale, cntl );
52 }
53 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 )
54 {
55 r_val = FLA_Lyap_h_blk_var2( isgn, A, C, scale, cntl );
56 }
57 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 )
58 {
59 r_val = FLA_Lyap_h_blk_var3( isgn, A, C, scale, cntl );
60 }
61 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 )
62 {
63 r_val = FLA_Lyap_h_blk_var4( isgn, A, C, scale, cntl );
64 }
65 else
66 {
67 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
68 }
69
70 return r_val;
71}
FLA_Error FLA_Lyap_h_opt_var4(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_h_opt_var4.c:13
FLA_Error FLA_Lyap_h_blk_var3(FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_h_blk_var3.c:13
FLA_Error FLA_Lyap_h_opt_var1(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_h_opt_var1.c:13
FLA_Error FLA_Lyap_h_unb_var2(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_h_unb_var2.c:13
FLA_Error FLA_Lyap_h_unb_var4(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_h_unb_var4.c:13
FLA_Error FLA_Lyap_h_blk_var1(FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_h_blk_var1.c:13
FLA_Error FLA_Lyap_h_blk_var4(FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_h_blk_var4.c:13
FLA_Error FLA_Lyap_h_opt_var3(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_h_opt_var3.c:13
FLA_Error FLA_Lyap_h_opt_var2(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_h_opt_var2.c:13
FLA_Error FLA_Lyap_h_unb_var1(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_h_unb_var1.c:13
FLA_Error FLA_Lyap_h_unb_var3(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_h_unb_var3.c:13
FLA_Error FLA_Lyap_h_blk_var2(FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_h_blk_var2.c:13

References FLA_Lyap_h_blk_var1(), FLA_Lyap_h_blk_var2(), FLA_Lyap_h_blk_var3(), FLA_Lyap_h_blk_var4(), FLA_Lyap_h_opt_var1(), FLA_Lyap_h_opt_var2(), FLA_Lyap_h_opt_var3(), FLA_Lyap_h_opt_var4(), FLA_Lyap_h_unb_var1(), FLA_Lyap_h_unb_var2(), FLA_Lyap_h_unb_var3(), and FLA_Lyap_h_unb_var4().

Referenced by FLA_Lyap_internal().

◆ 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

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().

◆ FLA_Lyap_n()

FLA_Error FLA_Lyap_n ( FLA_Obj isgn,
FLA_Obj A,
FLA_Obj C,
FLA_Obj scale,
fla_lyap_t * cntl )
14{
15 FLA_Error r_val = FLA_SUCCESS;
16
17 if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT1 )
18 {
19 r_val = FLA_Lyap_n_unb_var1( isgn, A, C );
20 }
21 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT2 )
22 {
23 r_val = FLA_Lyap_n_unb_var2( isgn, A, C );
24 }
25 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT3 )
26 {
27 r_val = FLA_Lyap_n_unb_var3( isgn, A, C );
28 }
29 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT4 )
30 {
31 r_val = FLA_Lyap_n_unb_var4( isgn, A, C );
32 }
33 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT1 )
34 {
35 r_val = FLA_Lyap_n_opt_var1( isgn, A, C );
36 }
37 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT2 )
38 {
39 r_val = FLA_Lyap_n_opt_var2( isgn, A, C );
40 }
41 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT3 )
42 {
43 r_val = FLA_Lyap_n_opt_var3( isgn, A, C );
44 }
45 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT4 )
46 {
47 r_val = FLA_Lyap_n_opt_var4( isgn, A, C );
48 }
49 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 )
50 {
51 r_val = FLA_Lyap_n_blk_var1( isgn, A, C, scale, cntl );
52 }
53 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 )
54 {
55 r_val = FLA_Lyap_n_blk_var2( isgn, A, C, scale, cntl );
56 }
57 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 )
58 {
59 r_val = FLA_Lyap_n_blk_var3( isgn, A, C, scale, cntl );
60 }
61 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 )
62 {
63 r_val = FLA_Lyap_n_blk_var4( isgn, A, C, scale, cntl );
64 }
65 else
66 {
67 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
68 }
69
70 return r_val;
71}
FLA_Error FLA_Lyap_n_opt_var4(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_n_opt_var4.c:13
FLA_Error FLA_Lyap_n_unb_var1(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_n_unb_var1.c:13
FLA_Error FLA_Lyap_n_opt_var2(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_n_opt_var2.c:13
FLA_Error FLA_Lyap_n_blk_var4(FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_n_blk_var4.c:13
FLA_Error FLA_Lyap_n_blk_var2(FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_n_blk_var2.c:13
FLA_Error FLA_Lyap_n_blk_var3(FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_n_blk_var3.c:13
FLA_Error FLA_Lyap_n_blk_var1(FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t *cntl)
Definition FLA_Lyap_n_blk_var1.c:13
FLA_Error FLA_Lyap_n_opt_var1(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_n_opt_var1.c:13
FLA_Error FLA_Lyap_n_unb_var3(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_n_unb_var3.c:13
FLA_Error FLA_Lyap_n_unb_var2(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_n_unb_var2.c:13
FLA_Error FLA_Lyap_n_unb_var4(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_n_unb_var4.c:13
FLA_Error FLA_Lyap_n_opt_var3(FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
Definition FLA_Lyap_n_opt_var3.c:13

References FLA_Lyap_n_blk_var1(), FLA_Lyap_n_blk_var2(), FLA_Lyap_n_blk_var3(), FLA_Lyap_n_blk_var4(), FLA_Lyap_n_opt_var1(), FLA_Lyap_n_opt_var2(), FLA_Lyap_n_opt_var3(), FLA_Lyap_n_opt_var4(), FLA_Lyap_n_unb_var1(), FLA_Lyap_n_unb_var2(), FLA_Lyap_n_unb_var3(), and FLA_Lyap_n_unb_var4().

Referenced by FLA_Lyap_internal().

◆ FLASH_Lyap()

FLA_Error FLASH_Lyap ( FLA_Trans trans,
FLA_Obj isgn,
FLA_Obj A,
FLA_Obj C,
FLA_Obj scale )
16{
17 FLA_Error r_val;
18
19 // Check parameters.
20 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
21 FLA_Lyap_check( trans, isgn, A, C, scale );
22
23 // Begin a parallel region.
25
26 // Enqueue tasks via a SuperMatrix-aware control tree.
27 r_val = FLA_Lyap_internal( trans, isgn, A, C, scale, flash_lyap_cntl );
28
29 // End the parallel region.
31
32 return r_val;
33}
fla_lyap_t * flash_lyap_cntl
Definition FLASH_Lyap_cntl_init.c:21
void FLASH_Queue_begin(void)
Definition FLASH_Queue.c:59
void FLASH_Queue_end(void)
Definition FLASH_Queue.c:81

References FLA_Check_error_level(), FLA_Lyap_check(), FLA_Lyap_internal(), flash_lyap_cntl, FLASH_Queue_begin(), and FLASH_Queue_end().