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 
)

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

222 {
223  scomplex* buff_1 = FLA_COMPLEX_PTR( FLA_ONE );
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 );
254  m_ahead, n_behind,
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 }
Definition: blis_type_defs.h:57
Definition: blis_type_defs.h:81
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
Definition: blis_type_defs.h:132
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
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

◆ 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 
)

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

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_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
Definition: blis_type_defs.h:57
Definition: blis_type_defs.h:81
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
void bl1_dcopyv(conj1_t conj, int m, double *x, int incx, double *y, int incy)
Definition: bl1_copyv.c:42
int i
Definition: bl1_axmyv2.c:145

◆ 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 
)

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

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 }
Definition: blis_type_defs.h:57
Definition: blis_type_defs.h:81
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
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
void bl1_scopyv(conj1_t conj, int m, float *x, int incx, float *y, int incy)
Definition: bl1_copyv.c:35
int i
Definition: bl1_axmyv2.c:145

◆ 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 
)

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(), and FLA_Obj_width().

Referenced by FLA_Accum_T_UT_fc_blk_var2().

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 );
25  rs_A = FLA_Obj_row_stride( A );
26  cs_A = FLA_Obj_col_stride( A );
27 
28  m_t = FLA_Obj_vector_dim( t );
29  inc_t = FLA_Obj_vector_inc( t );
30 
31  rs_T = FLA_Obj_row_stride( T );
32  cs_T = FLA_Obj_col_stride( T );
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,
44  buff_A, rs_A, cs_A,
45  m_t,
46  buff_t, inc_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,
60  buff_A, rs_A, cs_A,
61  m_t,
62  buff_t, inc_t,
63  buff_T, rs_T, cs_T );
64 
65  break;
66  }
67 
68  case FLA_COMPLEX:
69  {
70  scomplex* buff_A = FLA_COMPLEX_PTR( A );
71  scomplex* buff_t = FLA_COMPLEX_PTR( t );
72  scomplex* buff_T = FLA_COMPLEX_PTR( T );
73 
75  n_AT,
76  buff_A, rs_A, cs_A,
77  m_t,
78  buff_t, inc_t,
79  buff_T, rs_T, cs_T );
80 
81  break;
82  }
83 
84  case FLA_DOUBLE_COMPLEX:
85  {
86  dcomplex* buff_A = FLA_DOUBLE_COMPLEX_PTR( A );
87  dcomplex* buff_t = FLA_DOUBLE_COMPLEX_PTR( t );
88  dcomplex* buff_T = FLA_DOUBLE_COMPLEX_PTR( T );
89 
91  n_AT,
92  buff_A, rs_A, cs_A,
93  m_t,
94  buff_t, inc_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_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
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
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
dim_t FLA_Obj_width(FLA_Obj obj)
Definition: FLA_Query.c:123
Definition: blis_type_defs.h:132
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
dim_t FLA_Obj_vector_dim(FLA_Obj obj)
Definition: FLA_Query.c:137
int FLA_Datatype
Definition: FLA_type_defs.h:49
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_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ 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 
)

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

276 {
277  dcomplex* buff_1 = FLA_DOUBLE_COMPLEX_PTR( FLA_ONE );
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 );
308  m_ahead, n_behind,
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 }
Definition: blis_type_defs.h:57
Definition: blis_type_defs.h:81
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
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
int i
Definition: bl1_axmyv2.c:145
void bl1_zcopyv(conj1_t conj, int m, dcomplex *x, int incx, dcomplex *y, int incy)
Definition: bl1_copyv.c:63
Definition: blis_type_defs.h:137