libflame revision_anchor
Functions
FLA_Apply_CAQ2_UT.h File Reference

(r)

Go to the source code of this file.

Functions

FLA_Error FLA_Apply_CAQ2_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_apcaq2ut_t *cntl)
 
FLA_Error FLA_Apply_CAQ2_UT_lhfc (FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apcaq2ut_t *cntl)
 

Function Documentation

◆ FLA_Apply_CAQ2_UT_internal()

FLA_Error FLA_Apply_CAQ2_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_apcaq2ut_t cntl 
)
20{
22
25
26 if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
29 {
30 // Recurse
32 trans,
33 direct,
34 storev,
41 }
42 else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
45 {
46 // Enqueue
48 {
50 }
52 {
54 }
55 else if ( FLA_Obj_structure( D ) == FLA_ZERO_MATRIX )
56 {
57 // Don't enqueue any tasks for zero blocks.
58 }
59 else
60 {
62 }
63 }
64 else
65 {
66 if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
69 {
70
71 // Execute leaf.
73 {
75 return FLA_SUCCESS;
76 }
79 else if ( FLA_Obj_structure( D ) == FLA_ZERO_MATRIX )
80 return FLA_SUCCESS;
81 else
83 }
84
85 if ( side == FLA_LEFT )
86 {
87 if ( trans == FLA_NO_TRANSPOSE )
88 {
89 if ( direct == FLA_FORWARD )
90 {
91 if ( storev == FLA_COLUMNWISE )
93 else if ( storev == FLA_ROWWISE )
95 }
96 else if ( direct == FLA_BACKWARD )
97 {
98 if ( storev == FLA_COLUMNWISE )
100 else if ( storev == FLA_ROWWISE )
102 }
103 }
104 else if ( trans == FLA_TRANSPOSE || trans == FLA_CONJ_TRANSPOSE )
105 {
106 if ( direct == FLA_FORWARD )
107 {
108 if ( storev == FLA_COLUMNWISE )
109 r_val = FLA_Apply_CAQ2_UT_lhfc( D, T, W, C, E, cntl );
110 else if ( storev == FLA_ROWWISE )
112 }
113 else if ( direct == FLA_BACKWARD )
114 {
115 if ( storev == FLA_COLUMNWISE )
117 else if ( storev == FLA_ROWWISE )
119 }
120 }
121 }
122 else if ( side == FLA_RIGHT )
123 {
124 if ( trans == FLA_NO_TRANSPOSE )
125 {
126 if ( direct == FLA_FORWARD )
127 {
128 if ( storev == FLA_COLUMNWISE )
130 else if ( storev == FLA_ROWWISE )
132 }
133 else if ( direct == FLA_BACKWARD )
134 {
135 if ( storev == FLA_COLUMNWISE )
137 else if ( storev == FLA_ROWWISE )
139 }
140 }
141 else if ( trans == FLA_TRANSPOSE || trans == FLA_CONJ_TRANSPOSE )
142 {
143 if ( direct == FLA_FORWARD )
144 {
145 if ( storev == FLA_COLUMNWISE )
147 else if ( storev == FLA_ROWWISE )
149 }
150 else if ( direct == FLA_BACKWARD )
151 {
152 if ( storev == FLA_COLUMNWISE )
154 else if ( storev == FLA_ROWWISE )
156 }
157 }
158 }
159 }
160
161 return r_val;
162}
FLA_Bool FLASH_Queue_get_enabled(void)
Definition FLASH_Queue.c:171
FLA_Error FLA_Apply_CAQ2_UT_lhfc(FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apcaq2ut_t *cntl)
Definition FLA_Apply_CAQ2_UT_lhfc.c:15
fla_apcaq2ut_t * flash_apcaq2ut_cntl_leaf
Definition FLASH_Apply_CAQ2_UT_cntl_init.c:13
fla_apcaq2ut_t * fla_apcaq2ut_cntl_leaf
Definition FLA_Apply_CAQ2_UT_cntl_init.c:19
FLA_Error FLA_Apply_CAQ2_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_apcaq2ut_t *cntl)
Definition FLA_Apply_CAQ2_UT_internal.c:17
FLA_Error FLA_Apply_CAQ2_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_apcaq2ut_t *cntl)
Definition FLA_Apply_CAQ2_UT_internal_check.c:13
FLA_Error FLA_Apply_Q2_UT_task(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_task.c:15
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
FLA_Uplo FLA_Obj_structure(FLA_Obj obj)
Definition FLA_Query.c:130
int FLA_Error
Definition FLA_type_defs.h:47
int i
Definition bl1_axmyv2.c:145

References fla_apcaq2ut_cntl_leaf, FLA_Apply_CAQ2_UT_internal(), FLA_Apply_CAQ2_UT_internal_check(), FLA_Apply_CAQ2_UT_lhfc(), FLA_Apply_Q2_UT_task(), FLA_Check_error_level(), FLA_Obj_elemtype(), FLA_Obj_structure(), flash_apcaq2ut_cntl_leaf, FLASH_Queue_get_enabled(), and i.

Referenced by FLA_Apply_CAQ2_UT_internal(), FLA_Apply_CAQ2_UT_lhfc_blk_var2(), FLA_Apply_CAQ2_UT_lhfc_blk_var3(), FLA_Apply_CAQ2_UT_lhfc_task(), FLA_Apply_CAQ2_UT_task(), FLA_Apply_CAQ_UT_inc_lhfc_blk_var1(), and FLA_CAQR_UT_inc_blk_var1().

◆ FLA_Apply_CAQ2_UT_lhfc()

FLA_Error FLA_Apply_CAQ2_UT_lhfc ( FLA_Obj  D,
FLA_Obj  T,
FLA_Obj  W,
FLA_Obj  C,
FLA_Obj  E,
fla_apcaq2ut_t cntl 
)
17{
19
21 {
23 }
24 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 )
25 {
27 }
28 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 )
29 {
31 }
32 else
33 {
35 }
36
37 return r_val;
38}
FLA_Error FLA_Apply_CAQ2_UT_lhfc_blk_var2(FLA_Obj D, FLA_Obj T, FLA_Obj W1, FLA_Obj C, FLA_Obj E, fla_apcaq2ut_t *cntl)
Definition FLA_Apply_CAQ2_UT_lhfc_blk_var2.c:13
FLA_Error FLA_Apply_CAQ2_UT_lhfc_blk_var1(FLA_Obj D, FLA_Obj T, FLA_Obj W1, FLA_Obj C, FLA_Obj E, fla_apcaq2ut_t *cntl)
Definition FLA_Apply_CAQ2_UT_lhfc_blk_var1.c:13
FLA_Error FLA_Apply_CAQ2_UT_lhfc_blk_var3(FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apcaq2ut_t *cntl)
Definition FLA_Apply_CAQ2_UT_lhfc_blk_var3.c:13

References FLA_Apply_CAQ2_UT_lhfc_blk_var1(), FLA_Apply_CAQ2_UT_lhfc_blk_var2(), FLA_Apply_CAQ2_UT_lhfc_blk_var3(), and i.

Referenced by FLA_Apply_CAQ2_UT_internal().