libflame revision_anchor
Functions
FLA_Accum_T_UT_fc_opt_var1.c File Reference

(r)

Functions

FLA_Error FLA_Accum_T_UT_fc_opt_var1 (FLA_Obj A, FLA_Obj t, FLA_Obj T)
 
FLA_Error FLA_Accum_T_UT_fc_ops_var1 (int m_A, int n_AT, float *buff_A, int rs_A, int cs_A, int m_t, float *buff_t, int inc_t, float *buff_T, int rs_T, int cs_T)
 
FLA_Error FLA_Accum_T_UT_fc_opd_var1 (int m_A, int n_AT, double *buff_A, int rs_A, int cs_A, int m_t, double *buff_t, int inc_t, double *buff_T, int rs_T, int cs_T)
 
FLA_Error FLA_Accum_T_UT_fc_opc_var1 (int m_A, int n_AT, scomplex *buff_A, int rs_A, int cs_A, int m_t, scomplex *buff_t, int inc_t, scomplex *buff_T, int rs_T, int cs_T)
 
FLA_Error FLA_Accum_T_UT_fc_opz_var1 (int m_A, int n_AT, dcomplex *buff_A, int rs_A, int cs_A, int m_t, dcomplex *buff_t, int inc_t, dcomplex *buff_T, int rs_T, int cs_T)
 

Function Documentation

◆ FLA_Accum_T_UT_fc_opc_var1()

FLA_Error FLA_Accum_T_UT_fc_opc_var1 ( int  m_A,
int  n_AT,
scomplex buff_A,
int  rs_A,
int  cs_A,
int  m_t,
scomplex buff_t,
int  inc_t,
scomplex buff_T,
int  rs_T,
int  cs_T 
)
222{
224 int i;
225
226 for ( i = 0; i < m_t; ++i )
227 {
228 scomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
229 scomplex* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
230 scomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
231
232 scomplex* tau1 = buff_t + (i )*inc_t;
233
234 scomplex* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
235 scomplex* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
236
237 int m_ahead = m_A - i - 1;
238 int n_behind = i;
239
240 /*------------------------------------------------------------*/
241
242 // FLA_Copy_external( tau1, tau11 );
243 *tau11 = *tau1;
244
245 // FLA_Copyt_external( FLA_CONJ_TRANSPOSE, a10t, t01 );
247 n_behind,
248 a10t, cs_A,
249 t01, rs_T );
250
251 // FLA_Gemv_external( FLA_CONJ_TRANSPOSE, FLA_ONE, A20, a21, FLA_ONE, t01 );
255 buff_1,
256 A20, rs_A, cs_A,
257 a21, rs_A,
258 buff_1,
259 t01, rs_T );
260
261 /*------------------------------------------------------------*/
262
263 }
264
265 return FLA_SUCCESS;
266}
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
int i
Definition bl1_axmyv2.c:145
void bl1_ccopyv(conj1_t conj, int m, scomplex *x, int incx, scomplex *y, int incy)
Definition bl1_copyv.c:49
void bl1_cgemv(trans1_t transa, conj1_t conjx, int m, int n, scomplex *alpha, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx, scomplex *beta, scomplex *y, int incy)
Definition bl1_gemv.c:125
@ BLIS1_CONJ_TRANSPOSE
Definition blis_type_defs.h:57
@ BLIS1_CONJUGATE
Definition blis_type_defs.h:82
@ BLIS1_NO_CONJUGATE
Definition blis_type_defs.h:81
Definition blis_type_defs.h:133

References bl1_ccopyv(), bl1_cgemv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, FLA_ONE, and i.

Referenced by FLA_Accum_T_UT_fc_opt_var1().

◆ FLA_Accum_T_UT_fc_opd_var1()

FLA_Error FLA_Accum_T_UT_fc_opd_var1 ( int  m_A,
int  n_AT,
double buff_A,
int  rs_A,
int  cs_A,
int  m_t,
double buff_t,
int  inc_t,
double buff_T,
int  rs_T,
int  cs_T 
)
167{
168 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
169 int i;
170
171 for ( i = 0; i < m_t; ++i )
172 {
173 double* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
174 double* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
175 double* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
176
177 double* tau1 = buff_t + (i )*inc_t;
178
179 double* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
180 double* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
181
182 int m_ahead = m_A - i - 1;
183 int n_behind = i;
184
185 /*------------------------------------------------------------*/
186
187 // FLA_Copy_external( tau1, tau11 );
188 *tau11 = *tau1;
189
190 // FLA_Copyt_external( FLA_CONJ_TRANSPOSE, a10t, t01 );
192 n_behind,
193 a10t, cs_A,
194 t01, rs_T );
195
196 // FLA_Gemv_external( FLA_CONJ_TRANSPOSE, FLA_ONE, A20, a21, FLA_ONE, t01 );
199 m_ahead,
200 n_behind,
201 buff_1,
202 A20, rs_A, cs_A,
203 a21, rs_A,
204 buff_1,
205 t01, rs_T );
206
207 /*------------------------------------------------------------*/
208
209 }
210
211 return FLA_SUCCESS;
212}
void bl1_dcopyv(conj1_t conj, int m, double *x, int incx, double *y, int incy)
Definition bl1_copyv.c:42
void bl1_dgemv(trans1_t transa, conj1_t conjx, int m, int n, double *alpha, double *a, int a_rs, int a_cs, double *x, int incx, double *beta, double *y, int incy)
Definition bl1_gemv.c:69

References bl1_dcopyv(), bl1_dgemv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, FLA_ONE, and i.

Referenced by FLA_Accum_T_UT_fc_opt_var1().

◆ FLA_Accum_T_UT_fc_ops_var1()

FLA_Error FLA_Accum_T_UT_fc_ops_var1 ( int  m_A,
int  n_AT,
float buff_A,
int  rs_A,
int  cs_A,
int  m_t,
float buff_t,
int  inc_t,
float buff_T,
int  rs_T,
int  cs_T 
)
112{
113 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
114 int i;
115
116 for ( i = 0; i < m_t; ++i )
117 {
118 float* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
119 float* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
120 float* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
121
122 float* tau1 = buff_t + (i )*inc_t;
123
124 float* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
125 float* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
126
127 int m_ahead = m_A - i - 1;
128 int n_behind = i;
129
130 /*------------------------------------------------------------*/
131
132 // FLA_Copy_external( tau1, tau11 );
133 *tau11 = *tau1;
134
135 // FLA_Copyt_external( FLA_CONJ_TRANSPOSE, a10t, t01 );
137 n_behind,
138 a10t, cs_A,
139 t01, rs_T );
140
141 // FLA_Gemv_external( FLA_CONJ_TRANSPOSE, FLA_ONE, A20, a21, FLA_ONE, t01 );
144 m_ahead,
145 n_behind,
146 buff_1,
147 A20, rs_A, cs_A,
148 a21, rs_A,
149 buff_1,
150 t01, rs_T );
151
152 /*------------------------------------------------------------*/
153
154 }
155
156 return FLA_SUCCESS;
157}
void bl1_scopyv(conj1_t conj, int m, float *x, int incx, float *y, int incy)
Definition bl1_copyv.c:35
void bl1_sgemv(trans1_t transa, conj1_t conjx, int m, int n, float *alpha, float *a, int a_rs, int a_cs, float *x, int incx, float *beta, float *y, int incy)
Definition bl1_gemv.c:13

References bl1_scopyv(), bl1_sgemv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, FLA_ONE, and i.

Referenced by FLA_Accum_T_UT_fc_opt_var1().

◆ FLA_Accum_T_UT_fc_opt_var1()

FLA_Error FLA_Accum_T_UT_fc_opt_var1 ( FLA_Obj  A,
FLA_Obj  t,
FLA_Obj  T 
)
14{
15 FLA_Datatype datatype;
16 int m_A, n_AT;
17 int rs_A, cs_A;
18 int m_t, inc_t;
19 int rs_T, cs_T;
20
21 datatype = FLA_Obj_datatype( A );
22
23 m_A = FLA_Obj_length( A );
24 n_AT = FLA_Obj_width( A );
27
30
33
34 switch ( datatype )
35 {
36 case FLA_FLOAT:
37 {
38 float* buff_A = FLA_FLOAT_PTR( A );
39 float* buff_t = FLA_FLOAT_PTR( t );
40 float* buff_T = FLA_FLOAT_PTR( T );
41
43 n_AT,
45 m_t,
47 buff_T, rs_T, cs_T );
48
49 break;
50 }
51
52 case FLA_DOUBLE:
53 {
54 double* buff_A = FLA_DOUBLE_PTR( A );
55 double* buff_t = FLA_DOUBLE_PTR( t );
56 double* buff_T = FLA_DOUBLE_PTR( T );
57
59 n_AT,
61 m_t,
63 buff_T, rs_T, cs_T );
64
65 break;
66 }
67
68 case FLA_COMPLEX:
69 {
73
75 n_AT,
77 m_t,
79 buff_T, rs_T, cs_T );
80
81 break;
82 }
83
85 {
89
91 n_AT,
93 m_t,
95 buff_T, rs_T, cs_T );
96
97 break;
98 }
99 }
100
101 return FLA_SUCCESS;
102}
FLA_Error FLA_Accum_T_UT_fc_opc_var1(int m_A, int n_AT, scomplex *buff_A, int rs_A, int cs_A, int m_t, scomplex *buff_t, int inc_t, scomplex *buff_T, int rs_T, int cs_T)
Definition FLA_Accum_T_UT_fc_opt_var1.c:216
FLA_Error FLA_Accum_T_UT_fc_ops_var1(int m_A, int n_AT, float *buff_A, int rs_A, int cs_A, int m_t, float *buff_t, int inc_t, float *buff_T, int rs_T, int cs_T)
Definition FLA_Accum_T_UT_fc_opt_var1.c:106
FLA_Error FLA_Accum_T_UT_fc_opd_var1(int m_A, int n_AT, double *buff_A, int rs_A, int cs_A, int m_t, double *buff_t, int inc_t, double *buff_T, int rs_T, int cs_T)
Definition FLA_Accum_T_UT_fc_opt_var1.c:161
FLA_Error FLA_Accum_T_UT_fc_opz_var1(int m_A, int n_AT, dcomplex *buff_A, int rs_A, int cs_A, int m_t, dcomplex *buff_t, int inc_t, dcomplex *buff_T, int rs_T, int cs_T)
Definition FLA_Accum_T_UT_fc_opt_var1.c:270
dim_t FLA_Obj_width(FLA_Obj obj)
Definition FLA_Query.c:123
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition FLA_Query.c:167
dim_t FLA_Obj_length(FLA_Obj obj)
Definition FLA_Query.c:116
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition FLA_Query.c:145
dim_t FLA_Obj_vector_dim(FLA_Obj obj)
Definition FLA_Query.c:137
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition FLA_Query.c:13
int FLA_Datatype
Definition FLA_type_defs.h:49
Definition blis_type_defs.h:138

References FLA_Accum_T_UT_fc_opc_var1(), FLA_Accum_T_UT_fc_opd_var1(), FLA_Accum_T_UT_fc_ops_var1(), FLA_Accum_T_UT_fc_opz_var1(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), FLA_Obj_width(), and i.

Referenced by FLA_Accum_T_UT_fc_blk_var2().

◆ FLA_Accum_T_UT_fc_opz_var1()

FLA_Error FLA_Accum_T_UT_fc_opz_var1 ( int  m_A,
int  n_AT,
dcomplex buff_A,
int  rs_A,
int  cs_A,
int  m_t,
dcomplex buff_t,
int  inc_t,
dcomplex buff_T,
int  rs_T,
int  cs_T 
)
276{
278 int i;
279
280 for ( i = 0; i < m_t; ++i )
281 {
282 dcomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
283 dcomplex* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
284 dcomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
285
286 dcomplex* tau1 = buff_t + (i )*inc_t;
287
288 dcomplex* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
289 dcomplex* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
290
291 int m_ahead = m_A - i - 1;
292 int n_behind = i;
293
294 /*------------------------------------------------------------*/
295
296 // FLA_Copy_external( tau1, tau11 );
297 *tau11 = *tau1;
298
299 // FLA_Copyt_external( FLA_CONJ_TRANSPOSE, a10t, t01 );
301 n_behind,
302 a10t, cs_A,
303 t01, rs_T );
304
305 // FLA_Gemv_external( FLA_CONJ_TRANSPOSE, FLA_ONE, A20, a21, FLA_ONE, t01 );
309 buff_1,
310 A20, rs_A, cs_A,
311 a21, rs_A,
312 buff_1,
313 t01, rs_T );
314
315 /*------------------------------------------------------------*/
316
317 }
318
319 return FLA_SUCCESS;
320}
void bl1_zcopyv(conj1_t conj, int m, dcomplex *x, int incx, dcomplex *y, int incy)
Definition bl1_copyv.c:63
void bl1_zgemv(trans1_t transa, conj1_t conjx, int m, int n, dcomplex *alpha, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx, dcomplex *beta, dcomplex *y, int incy)
Definition bl1_gemv.c:255

References bl1_zcopyv(), bl1_zgemv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, FLA_ONE, and i.

Referenced by FLA_Accum_T_UT_fc_opt_var1().