libflame  revision_anchor
Functions
FLA_Ttmm_l_opt_var3.c File Reference

(r)

Functions

FLA_Error FLA_Ttmm_l_opt_var3 (FLA_Obj A)
 
FLA_Error FLA_Ttmm_l_ops_var3 (int mn_A, float *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_l_opd_var3 (int mn_A, double *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_l_opc_var3 (int mn_A, scomplex *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_l_opz_var3 (int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
 

Function Documentation

◆ FLA_Ttmm_l_opc_var3()

FLA_Error FLA_Ttmm_l_opc_var3 ( int  mn_A,
scomplex buff_A,
int  rs_A,
int  cs_A 
)

References bl1_cdots(), bl1_ctrmv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NONUNIT_DIAG, FLA_ONE, and i.

Referenced by FLA_Ttmm_l_opt_var3().

168 {
169  scomplex* buff_1 = FLA_COMPLEX_PTR( FLA_ONE );
170  int i;
171 
172  for ( i = 0; i < mn_A; ++i )
173  {
174  scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
175  scomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
176  scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
177 
178  int mn_ahead = mn_A - i - 1;
179 
180  /*------------------------------------------------------------*/
181 
182  // FLA_Absolute_square( alpha11 );
183  bl1_cabsqr( alpha11 );
184 
185  // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a21, a21, FLA_ONE, alpha11 );
187  mn_ahead,
188  buff_1,
189  a21, rs_A,
190  a21, rs_A,
191  buff_1,
192  alpha11 );
193 
194  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a21 );
198  mn_ahead,
199  A22, rs_A, cs_A,
200  a21, rs_A );
201 
202  /*------------------------------------------------------------*/
203 
204  }
205 
206  return FLA_SUCCESS;
207 }
Definition: blis_type_defs.h:57
void bl1_cdots(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *beta, scomplex *rho)
Definition: bl1_dots.c:39
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
Definition: blis_type_defs.h:132
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:74
void bl1_ctrmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx)
Definition: bl1_trmv.c:99
Definition: blis_type_defs.h:62

◆ FLA_Ttmm_l_opd_var3()

FLA_Error FLA_Ttmm_l_opd_var3 ( int  mn_A,
double *  buff_A,
int  rs_A,
int  cs_A 
)

References bl1_ddots(), bl1_dtrmv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NONUNIT_DIAG, FLA_ONE, and i.

Referenced by FLA_Ttmm_l_opt_var3().

123 {
124  double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
125  int i;
126 
127  for ( i = 0; i < mn_A; ++i )
128  {
129  double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
130  double* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
131  double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
132 
133  int mn_ahead = mn_A - i - 1;
134 
135  /*------------------------------------------------------------*/
136 
137  // FLA_Absolute_square( alpha11 );
138  bl1_dabsqr( alpha11 );
139 
140  // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a21, a21, FLA_ONE, alpha11 );
142  mn_ahead,
143  buff_1,
144  a21, rs_A,
145  a21, rs_A,
146  buff_1,
147  alpha11 );
148 
149  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a21 );
153  mn_ahead,
154  A22, rs_A, cs_A,
155  a21, rs_A );
156 
157  /*------------------------------------------------------------*/
158 
159  }
160 
161  return FLA_SUCCESS;
162 }
Definition: blis_type_defs.h:57
void bl1_dtrmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, double *a, int a_rs, int a_cs, double *x, int incx)
Definition: bl1_trmv.c:56
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
void bl1_ddots(conj1_t conj, int n, double *alpha, double *x, int incx, double *y, int incy, double *beta, double *rho)
Definition: bl1_dots.c:26
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:74
Definition: blis_type_defs.h:62

◆ FLA_Ttmm_l_ops_var3()

FLA_Error FLA_Ttmm_l_ops_var3 ( int  mn_A,
float *  buff_A,
int  rs_A,
int  cs_A 
)

References bl1_sdots(), bl1_strmv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NONUNIT_DIAG, FLA_ONE, and i.

Referenced by FLA_Ttmm_l_opt_var3().

78 {
79  float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
80  int i;
81 
82  for ( i = 0; i < mn_A; ++i )
83  {
84  float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
85  float* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
86  float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
87 
88  int mn_ahead = mn_A - i - 1;
89 
90  /*------------------------------------------------------------*/
91 
92  // FLA_Absolute_square( alpha11 );
93  bl1_sabsqr( alpha11 );
94 
95  // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a21, a21, FLA_ONE, alpha11 );
97  mn_ahead,
98  buff_1,
99  a21, rs_A,
100  a21, rs_A,
101  buff_1,
102  alpha11 );
103 
104  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a21 );
108  mn_ahead,
109  A22, rs_A, cs_A,
110  a21, rs_A );
111 
112  /*------------------------------------------------------------*/
113 
114  }
115 
116  return FLA_SUCCESS;
117 }
Definition: blis_type_defs.h:57
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
void bl1_sdots(conj1_t conj, int n, float *alpha, float *x, int incx, float *y, int incy, float *beta, float *rho)
Definition: bl1_dots.c:13
void bl1_strmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, float *a, int a_rs, int a_cs, float *x, int incx)
Definition: bl1_trmv.c:13
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:74
Definition: blis_type_defs.h:62

◆ FLA_Ttmm_l_opt_var3()

FLA_Error FLA_Ttmm_l_opt_var3 ( FLA_Obj  A)

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Ttmm_l_opc_var3(), FLA_Ttmm_l_opd_var3(), FLA_Ttmm_l_ops_var3(), and FLA_Ttmm_l_opz_var3().

Referenced by FLA_Ttmm_l().

16 {
17  FLA_Datatype datatype;
18  int mn_A;
19  int rs_A, cs_A;
20 
21  datatype = FLA_Obj_datatype( A );
22 
23  mn_A = FLA_Obj_length( A );
24  rs_A = FLA_Obj_row_stride( A );
25  cs_A = FLA_Obj_col_stride( A );
26 
27 
28  switch ( datatype )
29  {
30  case FLA_FLOAT:
31  {
32  float* buff_A = FLA_FLOAT_PTR( A );
33 
34  FLA_Ttmm_l_ops_var3( mn_A,
35  buff_A, rs_A, cs_A );
36 
37  break;
38  }
39 
40  case FLA_DOUBLE:
41  {
42  double* buff_A = FLA_DOUBLE_PTR( A );
43 
44  FLA_Ttmm_l_opd_var3( mn_A,
45  buff_A, rs_A, cs_A );
46 
47  break;
48  }
49 
50  case FLA_COMPLEX:
51  {
52  scomplex* buff_A = FLA_COMPLEX_PTR( A );
53 
54  FLA_Ttmm_l_opc_var3( mn_A,
55  buff_A, rs_A, cs_A );
56 
57  break;
58  }
59 
60  case FLA_DOUBLE_COMPLEX:
61  {
62  dcomplex* buff_A = FLA_DOUBLE_COMPLEX_PTR( A );
63 
64  FLA_Ttmm_l_opz_var3( mn_A,
65  buff_A, rs_A, cs_A );
66 
67  break;
68  }
69  }
70 
71  return FLA_SUCCESS;
72 }
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
FLA_Error FLA_Ttmm_l_ops_var3(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition: FLA_Ttmm_l_opt_var3.c:76
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
FLA_Error FLA_Ttmm_l_opc_var3(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_Ttmm_l_opt_var3.c:166
FLA_Error FLA_Ttmm_l_opz_var3(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_Ttmm_l_opt_var3.c:211
Definition: blis_type_defs.h:132
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
FLA_Error FLA_Ttmm_l_opd_var3(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition: FLA_Ttmm_l_opt_var3.c:121
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Ttmm_l_opz_var3()

FLA_Error FLA_Ttmm_l_opz_var3 ( int  mn_A,
dcomplex buff_A,
int  rs_A,
int  cs_A 
)

References bl1_zdots(), bl1_ztrmv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NONUNIT_DIAG, FLA_ONE, and i.

Referenced by FLA_Ttmm_l_opt_var3().

213 {
214  dcomplex* buff_1 = FLA_DOUBLE_COMPLEX_PTR( FLA_ONE );
215  int i;
216 
217  for ( i = 0; i < mn_A; ++i )
218  {
219  dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
220  dcomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
221  dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
222 
223  int mn_ahead = mn_A - i - 1;
224 
225  /*------------------------------------------------------------*/
226 
227  // FLA_Absolute_square( alpha11 );
228  bl1_zabsqr( alpha11 );
229 
230  // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a21, a21, FLA_ONE, alpha11 );
232  mn_ahead,
233  buff_1,
234  a21, rs_A,
235  a21, rs_A,
236  buff_1,
237  alpha11 );
238 
239  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a21 );
243  mn_ahead,
244  A22, rs_A, cs_A,
245  a21, rs_A );
246 
247  /*------------------------------------------------------------*/
248 
249  }
250 
251  return FLA_SUCCESS;
252 }
Definition: blis_type_defs.h:57
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
void bl1_ztrmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx)
Definition: bl1_trmv.c:177
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:74
Definition: blis_type_defs.h:62
void bl1_zdots(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *beta, dcomplex *rho)
Definition: bl1_dots.c:56
Definition: blis_type_defs.h:137