libflame revision_anchor
FLA_Eig_gest_internal.c File Reference

(r)

Functions

FLA_Error FLA_Eig_gest_internal (FLA_Inv inv, FLA_Uplo uplo, FLA_Obj A, FLA_Obj Y, FLA_Obj B, fla_eig_gest_t *cntl)
 

Variables

fla_eig_gest_t * flash_eig_gest_cntl
 
fla_eig_gest_t * fla_eig_gest_ix_cntl_leaf
 
fla_eig_gest_t * fla_eig_gest_nx_cntl_leaf
 

Function Documentation

◆ FLA_Eig_gest_internal()

FLA_Error FLA_Eig_gest_internal ( FLA_Inv inv,
FLA_Uplo uplo,
FLA_Obj A,
FLA_Obj Y,
FLA_Obj B,
fla_eig_gest_t * cntl )
18{
19 FLA_Error r_val = FLA_SUCCESS;
20
21 if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
22 FLA_Eig_gest_internal_check( inv, uplo, A, Y, B, cntl );
23
24 if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
25 FLA_Obj_elemtype( A ) == FLA_MATRIX &&
26 FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM )
27 {
28 // Recurse
29 r_val = FLA_Eig_gest_internal( inv,
30 uplo,
31 *FLASH_OBJ_PTR_AT( A ),
32 *FLASH_OBJ_PTR_AT( Y ),
33 *FLASH_OBJ_PTR_AT( B ),
35 }
36 else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
37 FLA_Obj_elemtype( A ) == FLA_SCALAR &&
39 {
40 // Enqueue
41 ENQUEUE_FLASH_Eig_gest( inv, uplo, A, Y, B, cntl );
42 }
43 else
44 {
45 if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
46 FLA_Obj_elemtype( A ) == FLA_SCALAR &&
48 {
49 // Execute leaf
50 if ( inv == FLA_INVERSE )
52 else
54 }
55
56 // Parameter combinations
57 if ( inv == FLA_INVERSE )
58 {
59 if ( uplo == FLA_LOWER_TRIANGULAR )
60 {
61 r_val = FLA_Eig_gest_il( A, Y, B, cntl );
62 }
63 else if ( uplo == FLA_UPPER_TRIANGULAR )
64 {
65 r_val = FLA_Eig_gest_iu( A, Y, B, cntl );
66 }
67 }
68 else if ( inv == FLA_NO_INVERSE )
69 {
70 if ( uplo == FLA_LOWER_TRIANGULAR )
71 {
72 r_val = FLA_Eig_gest_nl( A, Y, B, cntl );
73 }
74 else if ( uplo == FLA_UPPER_TRIANGULAR )
75 {
76 r_val = FLA_Eig_gest_nu( A, Y, B, cntl );
77 }
78 }
79 }
80
81 return r_val;
82}
FLA_Bool FLASH_Queue_get_enabled(void)
Definition FLASH_Queue.c:171
FLA_Error FLA_Eig_gest_il(FLA_Obj A, FLA_Obj Y, FLA_Obj B, fla_eig_gest_t *cntl)
Definition FLA_Eig_gest_il.c:13
FLA_Error FLA_Eig_gest_nu(FLA_Obj A, FLA_Obj Y, FLA_Obj B, fla_eig_gest_t *cntl)
Definition FLA_Eig_gest_nu.c:13
FLA_Error FLA_Eig_gest_iu(FLA_Obj A, FLA_Obj Y, FLA_Obj B, fla_eig_gest_t *cntl)
Definition FLA_Eig_gest_iu.c:13
FLA_Error FLA_Eig_gest_nl(FLA_Obj A, FLA_Obj Y, FLA_Obj B, fla_eig_gest_t *cntl)
Definition FLA_Eig_gest_nl.c:13
fla_eig_gest_t * fla_eig_gest_nx_cntl_leaf
Definition FLA_Eig_gest_cntl_init.c:23
fla_eig_gest_t * flash_eig_gest_cntl
Definition FLASH_Eig_gest_cntl_init.c:21
fla_eig_gest_t * fla_eig_gest_ix_cntl_leaf
Definition FLA_Eig_gest_cntl_init.c:22
FLA_Error FLA_Eig_gest_internal(FLA_Inv inv, FLA_Uplo uplo, FLA_Obj A, FLA_Obj Y, FLA_Obj B, fla_eig_gest_t *cntl)
Definition FLA_Eig_gest_internal.c:17
FLA_Error FLA_Eig_gest_internal_check(FLA_Inv inv, FLA_Uplo uplo, FLA_Obj A, FLA_Obj Y, FLA_Obj B, fla_eig_gest_t *cntl)
Definition FLA_Eig_gest_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_Eig_gest_il(), FLA_Eig_gest_internal(), FLA_Eig_gest_internal_check(), FLA_Eig_gest_iu(), fla_eig_gest_ix_cntl_leaf, FLA_Eig_gest_nl(), FLA_Eig_gest_nu(), fla_eig_gest_nx_cntl_leaf, FLA_Obj_elemtype(), flash_eig_gest_cntl, and FLASH_Queue_get_enabled().

Referenced by FLA_Eig_gest(), FLA_Eig_gest_il_blk_var1(), FLA_Eig_gest_il_blk_var2(), FLA_Eig_gest_il_blk_var3(), FLA_Eig_gest_il_blk_var4(), FLA_Eig_gest_il_blk_var5(), FLA_Eig_gest_il_task(), FLA_Eig_gest_internal(), FLA_Eig_gest_iu_blk_var1(), FLA_Eig_gest_iu_blk_var2(), FLA_Eig_gest_iu_blk_var3(), FLA_Eig_gest_iu_blk_var4(), FLA_Eig_gest_iu_blk_var5(), FLA_Eig_gest_iu_task(), FLA_Eig_gest_nl_blk_var1(), FLA_Eig_gest_nl_blk_var2(), FLA_Eig_gest_nl_blk_var4(), FLA_Eig_gest_nl_blk_var5(), FLA_Eig_gest_nl_task(), FLA_Eig_gest_nu_blk_var1(), FLA_Eig_gest_nu_blk_var2(), FLA_Eig_gest_nu_blk_var4(), FLA_Eig_gest_nu_blk_var5(), FLA_Eig_gest_nu_task(), FLA_Eig_gest_task(), and FLASH_Eig_gest().

Variable Documentation

◆ fla_eig_gest_ix_cntl_leaf

fla_eig_gest_t* fla_eig_gest_ix_cntl_leaf
extern

◆ fla_eig_gest_nx_cntl_leaf

fla_eig_gest_t* fla_eig_gest_nx_cntl_leaf
extern

◆ flash_eig_gest_cntl

fla_eig_gest_t* flash_eig_gest_cntl
extern

Referenced by FLA_Eig_gest_internal().