libflame revision_anchor
Functions
FLA_LQ_UT_opt_var2.c File Reference

(r)

Functions

FLA_Error FLA_LQ_UT_opt_var2 (FLA_Obj A, FLA_Obj T)
 
FLA_Error FLA_LQ_UT_ops_var2 (int m_A, int n_A, float *buff_A, int rs_A, int cs_A, float *buff_T, int rs_T, int cs_T)
 
FLA_Error FLA_LQ_UT_opd_var2 (int m_A, int n_A, double *buff_A, int rs_A, int cs_A, double *buff_T, int rs_T, int cs_T)
 
FLA_Error FLA_LQ_UT_opc_var2 (int m_A, int n_A, scomplex *buff_A, int rs_A, int cs_A, scomplex *buff_T, int rs_T, int cs_T)
 
FLA_Error FLA_LQ_UT_opz_var2 (int m_A, int n_A, dcomplex *buff_A, int rs_A, int cs_A, dcomplex *buff_T, int rs_T, int cs_T)
 

Function Documentation

◆ FLA_LQ_UT_opc_var2()

FLA_Error FLA_LQ_UT_opc_var2 ( int  m_A,
int  n_A,
scomplex buff_A,
int  rs_A,
int  cs_A,
scomplex buff_T,
int  rs_T,
int  cs_T 
)
233{
235 int min_m_n = min( m_A, n_A );
236 int i;
237
238 for ( i = 0; i < min_m_n; ++i )
239 {
240 scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
241 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
242 scomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
243 scomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
244 scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
245 scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
246
247 scomplex* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
248 scomplex* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
249
250 int m_ahead = m_A - i - 1;
251 int n_ahead = n_A - i - 1;
252 int m_behind = i;
253
254 /*------------------------------------------------------------*/
255
256 // FLA_Househ2_UT( FLA_RIGHT, alpha11, a12t
257 // tau11 );
259 alpha11,
260 a12t, cs_A,
261 tau11 );
262
263 // FLA_Apply_H2_UT( FLA_RIGHT, tau11, a12t, a21, A22 );
265 n_ahead,
266 tau11,
267 a12t, cs_A,
268 a21, rs_A,
269 A22, rs_A, cs_A );
270
271 // FLA_Copyt_external( FLA_CONJ_NO_TRANSPOSE, a01, t01 );
273 m_behind,
274 a01, rs_A,
275 t01, rs_T );
276
277 // FLA_Gemvc_external( FLA_CONJ_NO_TRANSPOSE, FLA_NO_CONJUGATE,
278 // FLA_ONE, A02, a12t, FLA_ONE, t01 );
281 m_behind,
282 n_ahead,
283 buff_1,
284 A02, rs_A, cs_A,
285 a12t, cs_A,
286 buff_1,
287 t01, rs_T );
288
289 /*------------------------------------------------------------*/
290
291 }
292
293 return FLA_SUCCESS;
294}
FLA_Error FLA_Apply_H2_UT_r_opc_var1(int n_u2h_A2, int m_a1, scomplex *tau, scomplex *u2h, int inc_u2h, scomplex *a1, int inc_a1, scomplex *A2, int rs_A2, int cs_A2)
Definition FLA_Apply_H2_UT_r_opt_var1.c:254
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
FLA_Error FLA_Househ2_UT_r_opc(int m_x2, scomplex *chi_1, scomplex *x2, int inc_x2, scomplex *tau)
Definition FLA_Househ2_UT.c:677
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_NO_TRANSPOSE
Definition blis_type_defs.h:56
@ 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_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, FLA_Apply_H2_UT_r_opc_var1(), FLA_Househ2_UT_r_opc(), FLA_ONE, and i.

Referenced by FLA_LQ_UT_opt_var2().

◆ FLA_LQ_UT_opd_var2()

FLA_Error FLA_LQ_UT_opd_var2 ( int  m_A,
int  n_A,
double buff_A,
int  rs_A,
int  cs_A,
double buff_T,
int  rs_T,
int  cs_T 
)
164{
165 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
166 int min_m_n = min( m_A, n_A );
167 int i;
168
169 for ( i = 0; i < min_m_n; ++i )
170 {
171 double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
172 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
173 double* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
174 double* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
175 double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
176 double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
177
178 double* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
179 double* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
180
181 int m_ahead = m_A - i - 1;
182 int n_ahead = n_A - i - 1;
183 int m_behind = i;
184
185 /*------------------------------------------------------------*/
186
187 // FLA_Househ2_UT( FLA_RIGHT, alpha11, a12t
188 // tau11 );
190 alpha11,
191 a12t, cs_A,
192 tau11 );
193
194 // FLA_Apply_H2_UT( FLA_RIGHT, tau11, a12t, a21, A22 );
196 n_ahead,
197 tau11,
198 a12t, cs_A,
199 a21, rs_A,
200 A22, rs_A, cs_A );
201
202 // FLA_Copyt_external( FLA_CONJ_NO_TRANSPOSE, a01, t01 );
204 m_behind,
205 a01, rs_A,
206 t01, rs_T );
207
208 // FLA_Gemvc_external( FLA_CONJ_NO_TRANSPOSE, FLA_NO_CONJUGATE,
209 // FLA_ONE, A02, a12t, FLA_ONE, t01 );
212 m_behind,
213 n_ahead,
214 buff_1,
215 A02, rs_A, cs_A,
216 a12t, cs_A,
217 buff_1,
218 t01, rs_T );
219
220 /*------------------------------------------------------------*/
221
222 }
223
224 return FLA_SUCCESS;
225}
FLA_Error FLA_Apply_H2_UT_r_opd_var1(int n_u2h_A2, int m_a1, double *tau, double *u2h, int inc_u2h, double *a1, int inc_a1, double *A2, int rs_A2, int cs_A2)
Definition FLA_Apply_H2_UT_r_opt_var1.c:181
FLA_Error FLA_Househ2_UT_r_opd(int m_x2, double *chi_1, double *x2, int inc_x2, double *tau)
Definition FLA_Househ2_UT.c:664
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_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, FLA_Apply_H2_UT_r_opd_var1(), FLA_Househ2_UT_r_opd(), FLA_ONE, and i.

Referenced by FLA_LQ_UT_opt_var2().

◆ FLA_LQ_UT_ops_var2()

FLA_Error FLA_LQ_UT_ops_var2 ( int  m_A,
int  n_A,
float buff_A,
int  rs_A,
int  cs_A,
float buff_T,
int  rs_T,
int  cs_T 
)
95{
96 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
97 int min_m_n = min( m_A, n_A );
98 int i;
99
100 for ( i = 0; i < min_m_n; ++i )
101 {
102 float* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
103 float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
104 float* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
105 float* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
106 float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
107 float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
108
109 float* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
110 float* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
111
112 int m_ahead = m_A - i - 1;
113 int n_ahead = n_A - i - 1;
114 int m_behind = i;
115
116 /*------------------------------------------------------------*/
117
118 // FLA_Househ2_UT( FLA_RIGHT, alpha11, a12t
119 // tau11 );
121 alpha11,
122 a12t, cs_A,
123 tau11 );
124
125 // FLA_Apply_H2_UT( FLA_RIGHT, tau11, a12t, a21, A22 );
127 n_ahead,
128 tau11,
129 a12t, cs_A,
130 a21, rs_A,
131 A22, rs_A, cs_A );
132
133 // FLA_Copyt_external( FLA_CONJ_NO_TRANSPOSE, a01, t01 );
135 m_behind,
136 a01, rs_A,
137 t01, rs_T );
138
139 // FLA_Gemvc_external( FLA_CONJ_NO_TRANSPOSE, FLA_NO_CONJUGATE,
140 // FLA_ONE, A02, a12t, FLA_ONE, t01 );
143 m_behind,
144 n_ahead,
145 buff_1,
146 A02, rs_A, cs_A,
147 a12t, cs_A,
148 buff_1,
149 t01, rs_T );
150
151 /*------------------------------------------------------------*/
152
153 }
154
155 return FLA_SUCCESS;
156}
FLA_Error FLA_Apply_H2_UT_r_ops_var1(int n_u2h_A2, int m_a1, float *tau, float *u2h, int inc_u2h, float *a1, int inc_a1, float *A2, int rs_A2, int cs_A2)
Definition FLA_Apply_H2_UT_r_opt_var1.c:108
FLA_Error FLA_Househ2_UT_r_ops(int m_x2, float *chi_1, float *x2, int inc_x2, float *tau)
Definition FLA_Househ2_UT.c:651
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_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, FLA_Apply_H2_UT_r_ops_var1(), FLA_Househ2_UT_r_ops(), FLA_ONE, and i.

Referenced by FLA_LQ_UT_opt_var2().

◆ FLA_LQ_UT_opt_var2()

FLA_Error FLA_LQ_UT_opt_var2 ( FLA_Obj  A,
FLA_Obj  T 
)
14{
15 FLA_Datatype datatype;
16 int m_A, n_A;
17 int rs_A, cs_A;
18 int rs_T, cs_T;
19
20 datatype = FLA_Obj_datatype( A );
21
22 m_A = FLA_Obj_length( A );
23 n_A = FLA_Obj_width( A );
26
29
30
31 switch ( datatype )
32 {
33 case FLA_FLOAT:
34 {
35 float* buff_A = FLA_FLOAT_PTR( A );
36 float* buff_T = FLA_FLOAT_PTR( T );
37
39 n_A,
41 buff_T, rs_T, cs_T );
42
43 break;
44 }
45
46 case FLA_DOUBLE:
47 {
48 double* buff_A = FLA_DOUBLE_PTR( A );
49 double* buff_T = FLA_DOUBLE_PTR( T );
50
52 n_A,
54 buff_T, rs_T, cs_T );
55
56 break;
57 }
58
59 case FLA_COMPLEX:
60 {
63
65 n_A,
67 buff_T, rs_T, cs_T );
68
69 break;
70 }
71
73 {
76
78 n_A,
80 buff_T, rs_T, cs_T );
81
82 break;
83 }
84 }
85
86 return FLA_SUCCESS;
87}
FLA_Error FLA_LQ_UT_ops_var2(int m_A, int n_A, float *buff_A, int rs_A, int cs_A, float *buff_T, int rs_T, int cs_T)
Definition FLA_LQ_UT_opt_var2.c:91
FLA_Error FLA_LQ_UT_opc_var2(int m_A, int n_A, scomplex *buff_A, int rs_A, int cs_A, scomplex *buff_T, int rs_T, int cs_T)
Definition FLA_LQ_UT_opt_var2.c:229
FLA_Error FLA_LQ_UT_opd_var2(int m_A, int n_A, double *buff_A, int rs_A, int cs_A, double *buff_T, int rs_T, int cs_T)
Definition FLA_LQ_UT_opt_var2.c:160
FLA_Error FLA_LQ_UT_opz_var2(int m_A, int n_A, dcomplex *buff_A, int rs_A, int cs_A, dcomplex *buff_T, int rs_T, int cs_T)
Definition FLA_LQ_UT_opt_var2.c:298
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
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_LQ_UT_opc_var2(), FLA_LQ_UT_opd_var2(), FLA_LQ_UT_ops_var2(), FLA_LQ_UT_opz_var2(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), and i.

Referenced by FLA_LQ_UT_internal().

◆ FLA_LQ_UT_opz_var2()

FLA_Error FLA_LQ_UT_opz_var2 ( int  m_A,
int  n_A,
dcomplex buff_A,
int  rs_A,
int  cs_A,
dcomplex buff_T,
int  rs_T,
int  cs_T 
)
302{
304 int min_m_n = min( m_A, n_A );
305 int i;
306
307 for ( i = 0; i < min_m_n; ++i )
308 {
309 dcomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
310 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
311 dcomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
312 dcomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
313 dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
314 dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
315
316 dcomplex* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
317 dcomplex* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
318
319 int m_ahead = m_A - i - 1;
320 int n_ahead = n_A - i - 1;
321 int m_behind = i;
322
323 /*------------------------------------------------------------*/
324
325 // FLA_Househ2_UT( FLA_RIGHT, alpha11, a12t
326 // tau11 );
328 alpha11,
329 a12t, cs_A,
330 tau11 );
331
332 // FLA_Apply_H2_UT( FLA_RIGHT, tau11, a12t, a21, A22 );
334 n_ahead,
335 tau11,
336 a12t, cs_A,
337 a21, rs_A,
338 A22, rs_A, cs_A );
339
340 // FLA_Copyt_external( FLA_CONJ_NO_TRANSPOSE, a01, t01 );
342 m_behind,
343 a01, rs_A,
344 t01, rs_T );
345
346 // FLA_Gemvc_external( FLA_CONJ_NO_TRANSPOSE, FLA_NO_CONJUGATE,
347 // FLA_ONE, A02, a12t, FLA_ONE, t01 );
350 m_behind,
351 n_ahead,
352 buff_1,
353 A02, rs_A, cs_A,
354 a12t, cs_A,
355 buff_1,
356 t01, rs_T );
357
358 /*------------------------------------------------------------*/
359
360 }
361
362 return FLA_SUCCESS;
363}
FLA_Error FLA_Apply_H2_UT_r_opz_var1(int n_u2h_A2, int m_a1, dcomplex *tau, dcomplex *u2h, int inc_u2h, dcomplex *a1, int inc_a1, dcomplex *A2, int rs_A2, int cs_A2)
Definition FLA_Apply_H2_UT_r_opt_var1.c:327
FLA_Error FLA_Househ2_UT_r_opz(int m_x2, dcomplex *chi_1, dcomplex *x2, int inc_x2, dcomplex *tau)
Definition FLA_Househ2_UT.c:693
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_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, FLA_Apply_H2_UT_r_opz_var1(), FLA_Househ2_UT_r_opz(), FLA_ONE, and i.

Referenced by FLA_LQ_UT_opt_var2().