libflame revision_anchor
FLA_Apply_Q2_UT.h File Reference

(r)

Go to the source code of this file.

Functions

FLA_Error FLASH_Apply_Q2_UT (FLA_Side side, FLA_Trans trans, FLA_Direct direct, FLA_Store storev, FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E)
 
FLA_Error FLA_Apply_Q2_UT_internal (FLA_Side side, FLA_Trans trans, FLA_Direct direct, FLA_Store storev, FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
 
FLA_Error FLA_Apply_Q2_UT_lhfc (FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
 
FLA_Error FLA_Apply_Q2_UT_lnfc (FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
 

Function Documentation

◆ FLA_Apply_Q2_UT_internal()

FLA_Error FLA_Apply_Q2_UT_internal ( FLA_Side side,
FLA_Trans trans,
FLA_Direct direct,
FLA_Store storev,
FLA_Obj D,
FLA_Obj T,
FLA_Obj W,
FLA_Obj C,
FLA_Obj E,
fla_apq2ut_t * cntl )
20{
21 FLA_Error r_val = FLA_SUCCESS;
22
23 if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
24 FLA_Apply_Q2_UT_internal_check( side, trans, direct, storev, D, T, W, C, E, cntl );
25
26 if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
27 FLA_Obj_elemtype( D ) == FLA_MATRIX &&
28 FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM )
29 {
30 // Recurse
31 r_val = FLA_Apply_Q2_UT_internal( side,
32 trans,
33 direct,
34 storev,
35 *FLASH_OBJ_PTR_AT( D ),
36 *FLASH_OBJ_PTR_AT( T ),
37 *FLASH_OBJ_PTR_AT( W ),
38 *FLASH_OBJ_PTR_AT( C ),
39 *FLASH_OBJ_PTR_AT( E ),
41 }
42 else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
43 FLA_Obj_elemtype( D ) == FLA_SCALAR &&
45 {
46 // Enqueue
47 ENQUEUE_FLASH_Apply_Q2_UT( side, trans, direct, storev, D, T, W, C, E, cntl );
48 }
49 else
50 {
51 if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
52 FLA_Obj_elemtype( D ) == FLA_SCALAR &&
54 {
55 // Execute leaf.
57 }
58
59 if ( side == FLA_LEFT )
60 {
61 if ( trans == FLA_NO_TRANSPOSE )
62 {
63 if ( direct == FLA_FORWARD )
64 {
65 if ( storev == FLA_COLUMNWISE )
66 r_val = FLA_Apply_Q2_UT_lnfc( D, T, W, C, E, cntl );
67 else if ( storev == FLA_ROWWISE )
68 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
69 }
70 else if ( direct == FLA_BACKWARD )
71 {
72 if ( storev == FLA_COLUMNWISE )
73 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
74 else if ( storev == FLA_ROWWISE )
75 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
76 }
77 }
78 else if ( trans == FLA_TRANSPOSE || trans == FLA_CONJ_TRANSPOSE )
79 {
80 if ( direct == FLA_FORWARD )
81 {
82 if ( storev == FLA_COLUMNWISE )
83 r_val = FLA_Apply_Q2_UT_lhfc( D, T, W, C, E, cntl );
84 else if ( storev == FLA_ROWWISE )
85 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
86 }
87 else if ( direct == FLA_BACKWARD )
88 {
89 if ( storev == FLA_COLUMNWISE )
90 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
91 else if ( storev == FLA_ROWWISE )
92 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
93 }
94 }
95 }
96 else if ( side == FLA_RIGHT )
97 {
98 if ( trans == FLA_NO_TRANSPOSE )
99 {
100 if ( direct == FLA_FORWARD )
101 {
102 if ( storev == FLA_COLUMNWISE )
103 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
104 else if ( storev == FLA_ROWWISE )
105 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
106 }
107 else if ( direct == FLA_BACKWARD )
108 {
109 if ( storev == FLA_COLUMNWISE )
110 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
111 else if ( storev == FLA_ROWWISE )
112 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
113 }
114 }
115 else if ( trans == FLA_TRANSPOSE || trans == FLA_CONJ_TRANSPOSE )
116 {
117 if ( direct == FLA_FORWARD )
118 {
119 if ( storev == FLA_COLUMNWISE )
120 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
121 else if ( storev == FLA_ROWWISE )
122 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
123 }
124 else if ( direct == FLA_BACKWARD )
125 {
126 if ( storev == FLA_COLUMNWISE )
127 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
128 else if ( storev == FLA_ROWWISE )
129 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
130 }
131 }
132 }
133 }
134
135 return r_val;
136}
FLA_Bool FLASH_Queue_get_enabled(void)
Definition FLASH_Queue.c:171
FLA_Error FLA_Apply_Q2_UT_lnfc(FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
Definition FLA_Apply_Q2_UT_lnfc.c:15
FLA_Error FLA_Apply_Q2_UT_lhfc(FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
Definition FLA_Apply_Q2_UT_lhfc.c:15
FLA_Error FLA_Apply_Q2_UT_internal(FLA_Side side, FLA_Trans trans, FLA_Direct direct, FLA_Store storev, FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
Definition FLA_Apply_Q2_UT_internal.c:17
fla_apq2ut_t * fla_apq2ut_cntl_leaf
Definition FLA_Apply_Q2_UT_cntl_init.c:18
fla_apq2ut_t * flash_apq2ut_cntl_leaf
Definition FLASH_Apply_Q2_UT_cntl_init.c:13
FLA_Error FLA_Apply_Q2_UT_internal_check(FLA_Side side, FLA_Trans trans, FLA_Direct direct, FLA_Store storev, FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
Definition FLA_Apply_Q2_UT_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_Apply_Q2_UT_internal(), FLA_Apply_Q2_UT_internal_check(), FLA_Apply_Q2_UT_lhfc(), FLA_Apply_Q2_UT_lnfc(), fla_apq2ut_cntl_leaf, FLA_Check_error_level(), FLA_Obj_elemtype(), flash_apq2ut_cntl_leaf, and FLASH_Queue_get_enabled().

Referenced by FLA_Apply_Q2_UT_internal(), FLA_Apply_Q2_UT_lhfc_blk_var2(), FLA_Apply_Q2_UT_lhfc_blk_var3(), FLA_Apply_Q2_UT_lhfc_task(), FLA_Apply_Q2_UT_lnfc_blk_var2(), FLA_Apply_Q2_UT_lnfc_blk_var3(), FLA_Apply_Q2_UT_task(), FLA_Apply_Q_UT_inc_lhfc_blk_var1(), FLA_Apply_Q_UT_inc_lnfc_blk_var1(), FLA_QR_UT_inc_blk_var1(), FLA_QR_UT_inc_blk_var2(), and FLASH_Apply_Q2_UT().

◆ FLA_Apply_Q2_UT_lhfc()

FLA_Error FLA_Apply_Q2_UT_lhfc ( FLA_Obj D,
FLA_Obj T,
FLA_Obj W,
FLA_Obj C,
FLA_Obj E,
fla_apq2ut_t * cntl )
17{
18 FLA_Error r_val = FLA_SUCCESS;
19
20 if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 )
21 {
22 r_val = FLA_Apply_Q2_UT_lhfc_blk_var1( D, T, W, C, E, cntl );
23 }
24 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 )
25 {
26 r_val = FLA_Apply_Q2_UT_lhfc_blk_var2( D, T, W, C, E, cntl );
27 }
28 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 )
29 {
30 r_val = FLA_Apply_Q2_UT_lhfc_blk_var3( D, T, W, C, E, cntl );
31 }
32 else
33 {
34 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
35 }
36
37 return r_val;
38}
FLA_Error FLA_Apply_Q2_UT_lhfc_blk_var1(FLA_Obj D, FLA_Obj T, FLA_Obj W1, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
Definition FLA_Apply_Q2_UT_lhfc_blk_var1.c:13
FLA_Error FLA_Apply_Q2_UT_lhfc_blk_var2(FLA_Obj D, FLA_Obj T, FLA_Obj W1, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
Definition FLA_Apply_Q2_UT_lhfc_blk_var2.c:13
FLA_Error FLA_Apply_Q2_UT_lhfc_blk_var3(FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
Definition FLA_Apply_Q2_UT_lhfc_blk_var3.c:13

References FLA_Apply_Q2_UT_lhfc_blk_var1(), FLA_Apply_Q2_UT_lhfc_blk_var2(), and FLA_Apply_Q2_UT_lhfc_blk_var3().

Referenced by FLA_Apply_Q2_UT_internal().

◆ FLA_Apply_Q2_UT_lnfc()

FLA_Error FLA_Apply_Q2_UT_lnfc ( FLA_Obj D,
FLA_Obj T,
FLA_Obj W,
FLA_Obj C,
FLA_Obj E,
fla_apq2ut_t * cntl )
17{
18 FLA_Error r_val = FLA_SUCCESS;
19
20 if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 )
21 {
22 r_val = FLA_Apply_Q2_UT_lnfc_blk_var1( D, T, W, C, E, cntl );
23 }
24 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 )
25 {
26 r_val = FLA_Apply_Q2_UT_lnfc_blk_var2( D, T, W, C, E, cntl );
27 }
28 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 )
29 {
30 r_val = FLA_Apply_Q2_UT_lnfc_blk_var3( D, T, W, C, E, cntl );
31 }
32 else
33 {
34 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
35 }
36
37 return r_val;
38}
FLA_Error FLA_Apply_Q2_UT_lnfc_blk_var2(FLA_Obj D, FLA_Obj T, FLA_Obj W1, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
Definition FLA_Apply_Q2_UT_lnfc_blk_var2.c:13
FLA_Error FLA_Apply_Q2_UT_lnfc_blk_var3(FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
Definition FLA_Apply_Q2_UT_lnfc_blk_var3.c:13
FLA_Error FLA_Apply_Q2_UT_lnfc_blk_var1(FLA_Obj D, FLA_Obj T, FLA_Obj W1, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
Definition FLA_Apply_Q2_UT_lnfc_blk_var1.c:13

References FLA_Apply_Q2_UT_lnfc_blk_var1(), FLA_Apply_Q2_UT_lnfc_blk_var2(), and FLA_Apply_Q2_UT_lnfc_blk_var3().

Referenced by FLA_Apply_Q2_UT_internal().

◆ FLASH_Apply_Q2_UT()

FLA_Error FLASH_Apply_Q2_UT ( FLA_Side side,
FLA_Trans trans,
FLA_Direct direct,
FLA_Store storev,
FLA_Obj D,
FLA_Obj T,
FLA_Obj W,
FLA_Obj C,
FLA_Obj E )
20{
21 FLA_Error r_val;
22
23 // Check parameters.
24 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
25 FLA_Apply_Q2_UT_check( side, trans, direct, storev, D, T, W, C, E );
26
27 // Begin a parallel region.
29
30 // Invoke FLA_Apply_Q2_UT_internal() with the standard control tree.
31 r_val = FLA_Apply_Q2_UT_internal( side, trans, direct, storev, D, T, W, C, E, flash_apq2ut_cntl );
32
33 // End the parallel region.
35
36 return r_val;
37}
fla_apq2ut_t * flash_apq2ut_cntl
Definition FLASH_Apply_Q2_UT_cntl_init.c:15
void FLASH_Queue_begin(void)
Definition FLASH_Queue.c:59
void FLASH_Queue_end(void)
Definition FLASH_Queue.c:81
FLA_Error FLA_Apply_Q2_UT_internal(FLA_Side side, FLA_Trans trans, FLA_Direct direct, FLA_Store storev, FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apq2ut_t *cntl)
Definition FLA_Apply_Q2_UT_internal.c:17
FLA_Error FLA_Apply_Q2_UT_check(FLA_Side side, FLA_Trans trans, FLA_Direct direct, FLA_Store storev, FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E)
Definition FLA_Apply_Q2_UT_check.c:13