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 
)
168{
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 );
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}
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
int i
Definition bl1_axmyv2.c:145
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
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
@ BLIS1_LOWER_TRIANGULAR
Definition blis_type_defs.h:62
@ BLIS1_NONUNIT_DIAG
Definition blis_type_defs.h:74
@ BLIS1_CONJ_TRANSPOSE
Definition blis_type_defs.h:57
@ BLIS1_CONJUGATE
Definition blis_type_defs.h:82
Definition blis_type_defs.h:133

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

◆ FLA_Ttmm_l_opd_var3()

FLA_Error FLA_Ttmm_l_opd_var3 ( int  mn_A,
double buff_A,
int  rs_A,
int  cs_A 
)
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 );
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}
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
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

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

◆ FLA_Ttmm_l_ops_var3()

FLA_Error FLA_Ttmm_l_ops_var3 ( int  mn_A,
float buff_A,
int  rs_A,
int  cs_A 
)
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 );
94
95 // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a21, a21, FLA_ONE, alpha11 );
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}
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

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

◆ FLA_Ttmm_l_opt_var3()

FLA_Error FLA_Ttmm_l_opt_var3 ( FLA_Obj  A)
16{
17 FLA_Datatype datatype;
18 int mn_A;
19 int rs_A, cs_A;
20
21 datatype = FLA_Obj_datatype( A );
22
26
27
28 switch ( datatype )
29 {
30 case FLA_FLOAT:
31 {
32 float* buff_A = FLA_FLOAT_PTR( A );
33
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
45 buff_A, rs_A, cs_A );
46
47 break;
48 }
49
50 case FLA_COMPLEX:
51 {
53
55 buff_A, rs_A, cs_A );
56
57 break;
58 }
59
61 {
63
65 buff_A, rs_A, cs_A );
66
67 break;
68 }
69 }
70
71 return FLA_SUCCESS;
72}
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
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
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_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
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
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_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(), FLA_Ttmm_l_opz_var3(), and i.

Referenced by FLA_Ttmm_l().

◆ FLA_Ttmm_l_opz_var3()

FLA_Error FLA_Ttmm_l_opz_var3 ( int  mn_A,
dcomplex buff_A,
int  rs_A,
int  cs_A 
)
213{
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 );
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}
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
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

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