libflame  revision_anchor
Functions
FLA_Apply_HUD_UT_l.h File Reference

(r)

Go to the source code of this file.

Functions

FLA_Error FLA_Apply_HUD_UT_l_unb_var1 (FLA_Obj tau, FLA_Obj w12t, FLA_Obj r12t, FLA_Obj u1, FLA_Obj C2, FLA_Obj v1, FLA_Obj D2)
 
FLA_Error FLA_Apply_HUD_UT_l_opt_var1 (FLA_Obj tau, FLA_Obj w12t, FLA_Obj r12t, FLA_Obj u1, FLA_Obj C2, FLA_Obj v1, FLA_Obj D2)
 
FLA_Error FLA_Apply_HUD_UT_l_ops_var1 (int m_u1_C2, int m_v1_D2, int n_r12t, float *tau, float *w12t, int inc_w12t, float *r12t, int inc_r12t, float *u1, int inc_u1, float *C2, int rs_C2, int cs_C2, float *v1, int inc_v1, float *D2, int rs_D2, int cs_D2)
 
FLA_Error FLA_Apply_HUD_UT_l_opd_var1 (int m_u1_C2, int m_v1_D2, int n_r12t, double *tau, double *w12t, int inc_w12t, double *r12t, int inc_r12t, double *u1, int inc_u1, double *C2, int rs_C2, int cs_C2, double *v1, int inc_v1, double *D2, int rs_D2, int cs_D2)
 
FLA_Error FLA_Apply_HUD_UT_l_opc_var1 (int m_u1_C2, int m_v1_D2, int n_r12t, scomplex *tau, scomplex *w12t, int inc_w12t, scomplex *r12t, int inc_r12t, scomplex *u1, int inc_u1, scomplex *C2, int rs_C2, int cs_C2, scomplex *v1, int inc_v1, scomplex *D2, int rs_D2, int cs_D2)
 
FLA_Error FLA_Apply_HUD_UT_l_opz_var1 (int m_u1_C2, int m_v1_D2, int n_r12t, dcomplex *tau, dcomplex *w12t, int inc_w12t, dcomplex *r12t, int inc_r12t, dcomplex *u1, int inc_u1, dcomplex *C2, int rs_C2, int cs_C2, dcomplex *v1, int inc_v1, dcomplex *D2, int rs_D2, int cs_D2)
 

Function Documentation

◆ FLA_Apply_HUD_UT_l_opc_var1()

FLA_Error FLA_Apply_HUD_UT_l_opc_var1 ( int  m_u1_C2,
int  m_v1_D2,
int  n_r12t,
scomplex tau,
scomplex w12t,
int  inc_w12t,
scomplex r12t,
int  inc_r12t,
scomplex u1,
int  inc_u1,
scomplex C2,
int  rs_C2,
int  cs_C2,
scomplex v1,
int  inc_v1,
scomplex D2,
int  rs_D2,
int  cs_D2 
)
339 {
340  scomplex* one_p = FLA_COMPLEX_PTR( FLA_ONE );
341  scomplex* minus_one_p = FLA_COMPLEX_PTR( FLA_MINUS_ONE );
342 
343  // if ( FLA_Obj_has_zero_dim( r12t ) ) return FLA_SUCCESS;
344  if ( n_r12t == 0 ) return FLA_SUCCESS;
345 
346  // // w12t = r12t;
347  // FLA_Copy_external( r12t, w12t );
349  n_r12t,
350  r12t, inc_r12t,
351  w12t, inc_w12t );
352 
353  // // w12t = w12t + u1' * C2;
354  // // = w12t + C2^T * conj(u1);
355  // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, C2, u1, FLA_ONE, w12t );
358  m_u1_C2,
359  n_r12t,
360  one_p,
361  C2, rs_C2, cs_C2,
362  u1, inc_u1,
363  one_p,
364  w12t, inc_w12t );
365 
366  // // w12t = w12t + v1' * D2;
367  // // = w12t + D2^T * conj(v1);
368  // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, D2, v1, FLA_ONE, w12t );
371  m_v1_D2,
372  n_r12t,
373  one_p,
374  D2, rs_D2, cs_D2,
375  v1, inc_v1,
376  one_p,
377  w12t, inc_w12t );
378 
379  // // w12t = w12t / tau;
380  // FLA_Inv_scalc_external( FLA_NO_CONJUGATE, tau, w12t );
382  n_r12t,
383  tau,
384  w12t, inc_w12t );
385 
386  // // r12t = - w12t + r12t;
387  // FLA_Axpy_external( FLA_MINUS_ONE, w12t, r12t );
389  n_r12t,
390  minus_one_p,
391  w12t, inc_w12t,
392  r12t, inc_r12t );
393 
394  // // C2 = - u1 * w12t + C2;
395  // FLA_Ger_external( FLA_MINUS_ONE, u1, w12t, C2 );
398  m_u1_C2,
399  n_r12t,
400  minus_one_p,
401  u1, inc_u1,
402  w12t, inc_w12t,
403  C2, rs_C2, cs_C2 );
404 
405  // // D2 = v1 * w12t + D2;
406  // FLA_Ger_external( FLA_ONE, v1, w12t, D2 );
409  m_v1_D2,
410  n_r12t,
411  one_p,
412  v1, inc_v1,
413  w12t, inc_w12t,
414  D2, rs_D2, cs_D2 );
415 
416  return FLA_SUCCESS;
417 }
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
void bl1_caxpyv(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy)
Definition: bl1_axpyv.c:29
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
void bl1_cger(conj1_t conjx, conj1_t conjy, int m, int n, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *a, int a_rs, int a_cs)
Definition: bl1_ger.c:111
void bl1_cinvscalv(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx)
Definition: bl1_invscalv.c:52
@ BLIS1_TRANSPOSE
Definition: blis_type_defs.h:55
@ 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_caxpyv(), bl1_ccopyv(), bl1_cgemv(), bl1_cger(), bl1_cinvscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, FLA_MINUS_ONE, and FLA_ONE.

Referenced by FLA_Apply_HUD_UT_l_opt_var1(), and FLA_UDdate_UT_opc_var1().

◆ FLA_Apply_HUD_UT_l_opd_var1()

FLA_Error FLA_Apply_HUD_UT_l_opd_var1 ( int  m_u1_C2,
int  m_v1_D2,
int  n_r12t,
double *  tau,
double *  w12t,
int  inc_w12t,
double *  r12t,
int  inc_r12t,
double *  u1,
int  inc_u1,
double *  C2,
int  rs_C2,
int  cs_C2,
double *  v1,
int  inc_v1,
double *  D2,
int  rs_D2,
int  cs_D2 
)
247 {
248  double* one_p = FLA_DOUBLE_PTR( FLA_ONE );
249  double* minus_one_p = FLA_DOUBLE_PTR( FLA_MINUS_ONE );
250 
251  // if ( FLA_Obj_has_zero_dim( r12t ) ) return FLA_SUCCESS;
252  if ( n_r12t == 0 ) return FLA_SUCCESS;
253 
254  // // w12t = r12t;
255  // FLA_Copy_external( r12t, w12t );
257  n_r12t,
258  r12t, inc_r12t,
259  w12t, inc_w12t );
260 
261  // // w12t = w12t + u1' * C2;
262  // // = w12t + C2^T * conj(u1);
263  // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, C2, u1, FLA_ONE, w12t );
266  m_u1_C2,
267  n_r12t,
268  one_p,
269  C2, rs_C2, cs_C2,
270  u1, inc_u1,
271  one_p,
272  w12t, inc_w12t );
273 
274  // // w12t = w12t + v1' * D2;
275  // // = w12t + D2^T * conj(v1);
276  // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, D2, v1, FLA_ONE, w12t );
279  m_v1_D2,
280  n_r12t,
281  one_p,
282  D2, rs_D2, cs_D2,
283  v1, inc_v1,
284  one_p,
285  w12t, inc_w12t );
286 
287  // // w12t = w12t / tau;
288  // FLA_Inv_scalc_external( FLA_NO_CONJUGATE, tau, w12t );
290  n_r12t,
291  tau,
292  w12t, inc_w12t );
293 
294  // // r12t = - w12t + r12t;
295  // FLA_Axpy_external( FLA_MINUS_ONE, w12t, r12t );
297  n_r12t,
298  minus_one_p,
299  w12t, inc_w12t,
300  r12t, inc_r12t );
301 
302  // // C2 = - u1 * w12t + C2;
303  // FLA_Ger_external( FLA_MINUS_ONE, u1, w12t, C2 );
306  m_u1_C2,
307  n_r12t,
308  minus_one_p,
309  u1, inc_u1,
310  w12t, inc_w12t,
311  C2, rs_C2, cs_C2 );
312 
313  // // D2 = v1 * w12t + D2;
314  // FLA_Ger_external( FLA_ONE, v1, w12t, D2 );
317  m_v1_D2,
318  n_r12t,
319  one_p,
320  v1, inc_v1,
321  w12t, inc_w12t,
322  D2, rs_D2, cs_D2 );
323 
324  return FLA_SUCCESS;
325 }
void bl1_daxpyv(conj1_t conj, int n, double *alpha, double *x, int incx, double *y, int incy)
Definition: bl1_axpyv.c:21
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
void bl1_dger(conj1_t conjx, conj1_t conjy, int m, int n, double *alpha, double *x, int incx, double *y, int incy, double *a, int a_rs, int a_cs)
Definition: bl1_ger.c:62
void bl1_dinvscalv(conj1_t conj, int n, double *alpha, double *x, int incx)
Definition: bl1_invscalv.c:26

References bl1_daxpyv(), bl1_dcopyv(), bl1_dgemv(), bl1_dger(), bl1_dinvscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, FLA_MINUS_ONE, and FLA_ONE.

Referenced by FLA_Apply_HUD_UT_l_opt_var1(), and FLA_UDdate_UT_opd_var1().

◆ FLA_Apply_HUD_UT_l_ops_var1()

FLA_Error FLA_Apply_HUD_UT_l_ops_var1 ( int  m_u1_C2,
int  m_v1_D2,
int  n_r12t,
float *  tau,
float *  w12t,
int  inc_w12t,
float *  r12t,
int  inc_r12t,
float *  u1,
int  inc_u1,
float *  C2,
int  rs_C2,
int  cs_C2,
float *  v1,
int  inc_v1,
float *  D2,
int  rs_D2,
int  cs_D2 
)
155 {
156  float* one_p = FLA_FLOAT_PTR( FLA_ONE );
157  float* minus_one_p = FLA_FLOAT_PTR( FLA_MINUS_ONE );
158 
159  // if ( FLA_Obj_has_zero_dim( r12t ) ) return FLA_SUCCESS;
160  if ( n_r12t == 0 ) return FLA_SUCCESS;
161 
162  // // w12t = r12t;
163  // FLA_Copy_external( r12t, w12t );
165  n_r12t,
166  r12t, inc_r12t,
167  w12t, inc_w12t );
168 
169  // // w12t = w12t + u1' * C2;
170  // // = w12t + C2^T * conj(u1);
171  // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, C2, u1, FLA_ONE, w12t );
174  m_u1_C2,
175  n_r12t,
176  one_p,
177  C2, rs_C2, cs_C2,
178  u1, inc_u1,
179  one_p,
180  w12t, inc_w12t );
181 
182  // // w12t = w12t + v1' * D2;
183  // // = w12t + D2^T * conj(v1);
184  // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, D2, v1, FLA_ONE, w12t );
187  m_v1_D2,
188  n_r12t,
189  one_p,
190  D2, rs_D2, cs_D2,
191  v1, inc_v1,
192  one_p,
193  w12t, inc_w12t );
194 
195  // // w12t = w12t / tau;
196  // FLA_Inv_scalc_external( FLA_NO_CONJUGATE, tau, w12t );
198  n_r12t,
199  tau,
200  w12t, inc_w12t );
201 
202  // // r12t = - w12t + r12t;
203  // FLA_Axpy_external( FLA_MINUS_ONE, w12t, r12t );
205  n_r12t,
206  minus_one_p,
207  w12t, inc_w12t,
208  r12t, inc_r12t );
209 
210  // // C2 = - u1 * w12t + C2;
211  // FLA_Ger_external( FLA_MINUS_ONE, u1, w12t, C2 );
214  m_u1_C2,
215  n_r12t,
216  minus_one_p,
217  u1, inc_u1,
218  w12t, inc_w12t,
219  C2, rs_C2, cs_C2 );
220 
221  // // D2 = v1 * w12t + D2;
222  // FLA_Ger_external( FLA_ONE, v1, w12t, D2 );
225  m_v1_D2,
226  n_r12t,
227  one_p,
228  v1, inc_v1,
229  w12t, inc_w12t,
230  D2, rs_D2, cs_D2 );
231 
232  return FLA_SUCCESS;
233 }
void bl1_saxpyv(conj1_t conj, int n, float *alpha, float *x, int incx, float *y, int incy)
Definition: bl1_axpyv.c:13
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
void bl1_sger(conj1_t conjx, conj1_t conjy, int m, int n, float *alpha, float *x, int incx, float *y, int incy, float *a, int a_rs, int a_cs)
Definition: bl1_ger.c:13
void bl1_sinvscalv(conj1_t conj, int n, float *alpha, float *x, int incx)
Definition: bl1_invscalv.c:13

References bl1_saxpyv(), bl1_scopyv(), bl1_sgemv(), bl1_sger(), bl1_sinvscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, FLA_MINUS_ONE, and FLA_ONE.

Referenced by FLA_Apply_HUD_UT_l_opt_var1(), and FLA_UDdate_UT_ops_var1().

◆ FLA_Apply_HUD_UT_l_opt_var1()

FLA_Error FLA_Apply_HUD_UT_l_opt_var1 ( FLA_Obj  tau,
FLA_Obj  w12t,
FLA_Obj  r12t,
FLA_Obj  u1,
FLA_Obj  C2,
FLA_Obj  v1,
FLA_Obj  D2 
)
17 {
18  FLA_Datatype datatype;
19  int m_u1_C2;
20  int m_v1_D2;
21  int n_r12t;
22  int inc_u1;
23  int inc_v1;
24  int inc_w12t;
25  int inc_r12t;
26  int rs_C2, cs_C2;
27  int rs_D2, cs_D2;
28 
29  if ( FLA_Obj_has_zero_dim( r12t ) ) return FLA_SUCCESS;
30 
31  datatype = FLA_Obj_datatype( C2 );
32 
33  m_u1_C2 = FLA_Obj_length( u1 );
34  m_v1_D2 = FLA_Obj_length( v1 );
35  n_r12t = FLA_Obj_width( r12t );
36  inc_w12t = FLA_Obj_vector_inc( w12t );
37  inc_r12t = FLA_Obj_vector_inc( r12t );
38  inc_u1 = FLA_Obj_vector_inc( u1 );
39  rs_C2 = FLA_Obj_row_stride( C2 );
40  cs_C2 = FLA_Obj_col_stride( C2 );
41  inc_v1 = FLA_Obj_vector_inc( v1 );
42  rs_D2 = FLA_Obj_row_stride( D2 );
43  cs_D2 = FLA_Obj_col_stride( D2 );
44 
45  switch ( datatype )
46  {
47  case FLA_FLOAT:
48  {
49  float* tau_p = ( float* ) FLA_FLOAT_PTR( tau );
50  float* w12t_p = ( float* ) FLA_FLOAT_PTR( w12t );
51  float* r12t_p = ( float* ) FLA_FLOAT_PTR( r12t );
52  float* u1_p = ( float* ) FLA_FLOAT_PTR( u1 );
53  float* C2_p = ( float* ) FLA_FLOAT_PTR( C2 );
54  float* v1_p = ( float* ) FLA_FLOAT_PTR( v1 );
55  float* D2_p = ( float* ) FLA_FLOAT_PTR( D2 );
56 
58  m_v1_D2,
59  n_r12t,
60  tau_p,
61  w12t_p, inc_w12t,
62  r12t_p, inc_r12t,
63  u1_p, inc_u1,
64  C2_p, rs_C2, cs_C2,
65  v1_p, inc_v1,
66  D2_p, rs_D2, cs_D2 );
67  break;
68  }
69 
70  case FLA_DOUBLE:
71  {
72  double* tau_p = ( double* ) FLA_DOUBLE_PTR( tau );
73  double* w12t_p = ( double* ) FLA_DOUBLE_PTR( w12t );
74  double* r12t_p = ( double* ) FLA_DOUBLE_PTR( r12t );
75  double* u1_p = ( double* ) FLA_DOUBLE_PTR( u1 );
76  double* C2_p = ( double* ) FLA_DOUBLE_PTR( C2 );
77  double* v1_p = ( double* ) FLA_DOUBLE_PTR( v1 );
78  double* D2_p = ( double* ) FLA_DOUBLE_PTR( D2 );
79 
81  m_v1_D2,
82  n_r12t,
83  tau_p,
84  w12t_p, inc_w12t,
85  r12t_p, inc_r12t,
86  u1_p, inc_u1,
87  C2_p, rs_C2, cs_C2,
88  v1_p, inc_v1,
89  D2_p, rs_D2, cs_D2 );
90  break;
91  }
92 
93  case FLA_COMPLEX:
94  {
95  scomplex* tau_p = ( scomplex* ) FLA_COMPLEX_PTR( tau );
96  scomplex* w12t_p = ( scomplex* ) FLA_COMPLEX_PTR( w12t );
97  scomplex* r12t_p = ( scomplex* ) FLA_COMPLEX_PTR( r12t );
98  scomplex* u1_p = ( scomplex* ) FLA_COMPLEX_PTR( u1 );
99  scomplex* C2_p = ( scomplex* ) FLA_COMPLEX_PTR( C2 );
100  scomplex* v1_p = ( scomplex* ) FLA_COMPLEX_PTR( v1 );
101  scomplex* D2_p = ( scomplex* ) FLA_COMPLEX_PTR( D2 );
102 
104  m_v1_D2,
105  n_r12t,
106  tau_p,
107  w12t_p, inc_w12t,
108  r12t_p, inc_r12t,
109  u1_p, inc_u1,
110  C2_p, rs_C2, cs_C2,
111  v1_p, inc_v1,
112  D2_p, rs_D2, cs_D2 );
113  break;
114  }
115 
116  case FLA_DOUBLE_COMPLEX:
117  {
118  dcomplex* tau_p = ( dcomplex* ) FLA_DOUBLE_COMPLEX_PTR( tau );
119  dcomplex* w12t_p = ( dcomplex* ) FLA_DOUBLE_COMPLEX_PTR( w12t );
120  dcomplex* r12t_p = ( dcomplex* ) FLA_DOUBLE_COMPLEX_PTR( r12t );
121  dcomplex* u1_p = ( dcomplex* ) FLA_DOUBLE_COMPLEX_PTR( u1 );
122  dcomplex* C2_p = ( dcomplex* ) FLA_DOUBLE_COMPLEX_PTR( C2 );
123  dcomplex* v1_p = ( dcomplex* ) FLA_DOUBLE_COMPLEX_PTR( v1 );
124  dcomplex* D2_p = ( dcomplex* ) FLA_DOUBLE_COMPLEX_PTR( D2 );
125 
127  m_v1_D2,
128  n_r12t,
129  tau_p,
130  w12t_p, inc_w12t,
131  r12t_p, inc_r12t,
132  u1_p, inc_u1,
133  C2_p, rs_C2, cs_C2,
134  v1_p, inc_v1,
135  D2_p, rs_D2, cs_D2 );
136  break;
137  }
138  }
139 
140  return FLA_SUCCESS;
141 }
FLA_Error FLA_Apply_HUD_UT_l_opd_var1(int m_u1_C2, int m_v1_D2, int n_r12t, double *tau, double *w12t, int inc_w12t, double *r12t, int inc_r12t, double *u1, int inc_u1, double *C2, int rs_C2, int cs_C2, double *v1, int inc_v1, double *D2, int rs_D2, int cs_D2)
Definition: FLA_Apply_HUD_UT_l_opt_var1.c:237
FLA_Error FLA_Apply_HUD_UT_l_ops_var1(int m_u1_C2, int m_v1_D2, int n_r12t, float *tau, float *w12t, int inc_w12t, float *r12t, int inc_r12t, float *u1, int inc_u1, float *C2, int rs_C2, int cs_C2, float *v1, int inc_v1, float *D2, int rs_D2, int cs_D2)
Definition: FLA_Apply_HUD_UT_l_opt_var1.c:145
FLA_Error FLA_Apply_HUD_UT_l_opc_var1(int m_u1_C2, int m_v1_D2, int n_r12t, scomplex *tau, scomplex *w12t, int inc_w12t, scomplex *r12t, int inc_r12t, scomplex *u1, int inc_u1, scomplex *C2, int rs_C2, int cs_C2, scomplex *v1, int inc_v1, scomplex *D2, int rs_D2, int cs_D2)
Definition: FLA_Apply_HUD_UT_l_opt_var1.c:329
FLA_Error FLA_Apply_HUD_UT_l_opz_var1(int m_u1_C2, int m_v1_D2, int n_r12t, dcomplex *tau, dcomplex *w12t, int inc_w12t, dcomplex *r12t, int inc_r12t, dcomplex *u1, int inc_u1, dcomplex *C2, int rs_C2, int cs_C2, dcomplex *v1, int inc_v1, dcomplex *D2, int rs_D2, int cs_D2)
Definition: FLA_Apply_HUD_UT_l_opt_var1.c:421
dim_t FLA_Obj_width(FLA_Obj obj)
Definition: FLA_Query.c:123
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
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
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_Apply_HUD_UT_l_opc_var1(), FLA_Apply_HUD_UT_l_opd_var1(), FLA_Apply_HUD_UT_l_ops_var1(), FLA_Apply_HUD_UT_l_opz_var1(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), and FLA_Obj_width().

Referenced by FLA_Apply_HUD_UT_internal().

◆ FLA_Apply_HUD_UT_l_opz_var1()

FLA_Error FLA_Apply_HUD_UT_l_opz_var1 ( int  m_u1_C2,
int  m_v1_D2,
int  n_r12t,
dcomplex tau,
dcomplex w12t,
int  inc_w12t,
dcomplex r12t,
int  inc_r12t,
dcomplex u1,
int  inc_u1,
dcomplex C2,
int  rs_C2,
int  cs_C2,
dcomplex v1,
int  inc_v1,
dcomplex D2,
int  rs_D2,
int  cs_D2 
)
431 {
432  dcomplex* one_p = FLA_DOUBLE_COMPLEX_PTR( FLA_ONE );
433  dcomplex* minus_one_p = FLA_DOUBLE_COMPLEX_PTR( FLA_MINUS_ONE );
434 
435  // if ( FLA_Obj_has_zero_dim( r12t ) ) return FLA_SUCCESS;
436  if ( n_r12t == 0 ) return FLA_SUCCESS;
437 
438  // // w12t = r12t;
439  // FLA_Copy_external( r12t, w12t );
441  n_r12t,
442  r12t, inc_r12t,
443  w12t, inc_w12t );
444 
445  // // w12t = w12t + u1' * C2;
446  // // = w12t + C2^T * conj(u1);
447  // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, C2, u1, FLA_ONE, w12t );
450  m_u1_C2,
451  n_r12t,
452  one_p,
453  C2, rs_C2, cs_C2,
454  u1, inc_u1,
455  one_p,
456  w12t, inc_w12t );
457 
458  // // w12t = w12t + v1' * D2;
459  // // = w12t + D2^T * conj(v1);
460  // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, D2, v1, FLA_ONE, w12t );
463  m_v1_D2,
464  n_r12t,
465  one_p,
466  D2, rs_D2, cs_D2,
467  v1, inc_v1,
468  one_p,
469  w12t, inc_w12t );
470 
471  // // w12t = w12t / tau;
472  // FLA_Inv_scalc_external( FLA_NO_CONJUGATE, tau, w12t );
474  n_r12t,
475  tau,
476  w12t, inc_w12t );
477 
478  // // r12t = - w12t + r12t;
479  // FLA_Axpy_external( FLA_MINUS_ONE, w12t, r12t );
481  n_r12t,
482  minus_one_p,
483  w12t, inc_w12t,
484  r12t, inc_r12t );
485 
486  // // C2 = - u1 * w12t + C2;
487  // FLA_Ger_external( FLA_MINUS_ONE, u1, w12t, C2 );
490  m_u1_C2,
491  n_r12t,
492  minus_one_p,
493  u1, inc_u1,
494  w12t, inc_w12t,
495  C2, rs_C2, cs_C2 );
496 
497  // // D2 = v1 * w12t + D2;
498  // FLA_Ger_external( FLA_ONE, v1, w12t, D2 );
501  m_v1_D2,
502  n_r12t,
503  one_p,
504  v1, inc_v1,
505  w12t, inc_w12t,
506  D2, rs_D2, cs_D2 );
507 
508  return FLA_SUCCESS;
509 }
void bl1_zaxpyv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy)
Definition: bl1_axpyv.c:60
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
void bl1_zger(conj1_t conjx, conj1_t conjy, int m, int n, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *a, int a_rs, int a_cs)
Definition: bl1_ger.c:194
void bl1_zinvscalv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx)
Definition: bl1_invscalv.c:78

References bl1_zaxpyv(), bl1_zcopyv(), bl1_zgemv(), bl1_zger(), bl1_zinvscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, FLA_MINUS_ONE, and FLA_ONE.

Referenced by FLA_Apply_HUD_UT_l_opt_var1(), and FLA_UDdate_UT_opz_var1().

◆ FLA_Apply_HUD_UT_l_unb_var1()

FLA_Error FLA_Apply_HUD_UT_l_unb_var1 ( FLA_Obj  tau,
FLA_Obj  w12t,
FLA_Obj  r12t,
FLA_Obj  u1,
FLA_Obj  C2,
FLA_Obj  v1,
FLA_Obj  D2 
)