libflame  revision_anchor
Functions
FLA_QR_UT_opt_var1.c File Reference

(r)

Functions

FLA_Error FLA_QR_UT_opt_var1 (FLA_Obj A, FLA_Obj t)
 
FLA_Error FLA_QR_UT_ops_var1 (int m_A, int n_A, float *buff_A, int rs_A, int cs_A, float *buff_t, int inc_t)
 
FLA_Error FLA_QR_UT_opd_var1 (int m_A, int n_A, double *buff_A, int rs_A, int cs_A, double *buff_t, int inc_t)
 
FLA_Error FLA_QR_UT_opc_var1 (int m_A, int n_A, scomplex *buff_A, int rs_A, int cs_A, scomplex *buff_t, int inc_t)
 
FLA_Error FLA_QR_UT_opz_var1 (int m_A, int n_A, dcomplex *buff_A, int rs_A, int cs_A, dcomplex *buff_t, int inc_t)
 

Function Documentation

◆ FLA_QR_UT_opc_var1()

FLA_Error FLA_QR_UT_opc_var1 ( int  m_A,
int  n_A,
scomplex buff_A,
int  rs_A,
int  cs_A,
scomplex buff_t,
int  inc_t 
)

References FLA_Apply_H2_UT_l_opc_var1(), FLA_Househ2_UT_l_opc(), and i.

Referenced by FLA_QR_UT_opt_var1().

190 {
191  int min_m_n = min( m_A, n_A );
192  int i;
193 
194  for ( i = 0; i < min_m_n; ++i )
195  {
196  scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
197  scomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
198  scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
199  scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
200 
201  scomplex* tau1 = buff_t + (i )*inc_t;
202 
203  int m_ahead = m_A - i - 1;
204  int n_ahead = n_A - i - 1;
205 
206  /*------------------------------------------------------------*/
207 
208  // FLA_Househ2_UT( FLA_LEFT,
209  // alpha11,
210  // a21, tau1 );
211  FLA_Househ2_UT_l_opc( m_ahead,
212  alpha11,
213  a21, rs_A,
214  tau1 );
215 
216  // FLA_Apply_H2_UT( FLA_LEFT, tau1, a21, a12t,
217  // A22 );
219  n_ahead,
220  tau1,
221  a21, rs_A,
222  a12t, cs_A,
223  A22, rs_A, cs_A );
224 
225  /*------------------------------------------------------------*/
226 
227  }
228 
229  return FLA_SUCCESS;
230 }
Definition: blis_type_defs.h:132
FLA_Error FLA_Apply_H2_UT_l_opc_var1(int m_u2_A2, int n_a1t, scomplex *tau, scomplex *u2, int inc_u2, scomplex *a1t, int inc_a1t, scomplex *A2, int rs_A2, int cs_A2)
Definition: FLA_Apply_H2_UT_l_opt_var1.c:269
FLA_Error FLA_Househ2_UT_l_opc(int m_x2, scomplex *chi_1, scomplex *x2, int inc_x2, scomplex *tau)
Definition: FLA_Househ2_UT.c:390
int i
Definition: bl1_axmyv2.c:145

◆ FLA_QR_UT_opd_var1()

FLA_Error FLA_QR_UT_opd_var1 ( int  m_A,
int  n_A,
double *  buff_A,
int  rs_A,
int  cs_A,
double *  buff_t,
int  inc_t 
)

References FLA_Apply_H2_UT_l_opd_var1(), FLA_Househ2_UT_l_opd(), and i.

Referenced by FLA_QR_UT_opt_var1().

142 {
143  int min_m_n = min( m_A, n_A );
144  int i;
145 
146  for ( i = 0; i < min_m_n; ++i )
147  {
148  double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
149  double* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
150  double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
151  double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
152 
153  double* tau1 = buff_t + (i )*inc_t;
154 
155  int m_ahead = m_A - i - 1;
156  int n_ahead = n_A - i - 1;
157 
158  /*------------------------------------------------------------*/
159 
160  // FLA_Househ2_UT( FLA_LEFT,
161  // alpha11,
162  // a21, tau1 );
163  FLA_Househ2_UT_l_opd( m_ahead,
164  alpha11,
165  a21, rs_A,
166  tau1 );
167 
168  // FLA_Apply_H2_UT( FLA_LEFT, tau1, a21, a12t,
169  // A22 );
171  n_ahead,
172  tau1,
173  a21, rs_A,
174  a12t, cs_A,
175  A22, rs_A, cs_A );
176 
177  /*------------------------------------------------------------*/
178 
179  }
180 
181  return FLA_SUCCESS;
182 }
FLA_Error FLA_Househ2_UT_l_opd(int m_x2, double *chi_1, double *x2, int inc_x2, double *tau)
Definition: FLA_Househ2_UT.c:274
FLA_Error FLA_Apply_H2_UT_l_opd_var1(int m_u2_A2, int n_a1t, double *tau, double *u2, int inc_u2, double *a1t, int inc_a1t, double *A2, int rs_A2, int cs_A2)
Definition: FLA_Apply_H2_UT_l_opt_var1.c:195
int i
Definition: bl1_axmyv2.c:145

◆ FLA_QR_UT_ops_var1()

FLA_Error FLA_QR_UT_ops_var1 ( int  m_A,
int  n_A,
float *  buff_A,
int  rs_A,
int  cs_A,
float *  buff_t,
int  inc_t 
)

References FLA_Apply_H2_UT_l_ops_var1(), FLA_Househ2_UT_l_ops(), and i.

Referenced by FLA_QR_UT_opt_var1().

94 {
95  int min_m_n = min( m_A, n_A );
96  int i;
97 
98  for ( i = 0; i < min_m_n; ++i )
99  {
100  float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
101  float* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
102  float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
103  float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
104 
105  float* tau1 = buff_t + (i )*inc_t;
106 
107  int m_ahead = m_A - i - 1;
108  int n_ahead = n_A - i - 1;
109 
110  /*------------------------------------------------------------*/
111 
112  // FLA_Househ2_UT( FLA_LEFT,
113  // alpha11,
114  // a21, tau1 );
115  FLA_Househ2_UT_l_ops( m_ahead,
116  alpha11,
117  a21, rs_A,
118  tau1 );
119 
120  // FLA_Apply_H2_UT( FLA_LEFT, tau1, a21, a12t,
121  // A22 );
123  n_ahead,
124  tau1,
125  a21, rs_A,
126  a12t, cs_A,
127  A22, rs_A, cs_A );
128 
129  /*------------------------------------------------------------*/
130 
131  }
132 
133  return FLA_SUCCESS;
134 }
FLA_Error FLA_Apply_H2_UT_l_ops_var1(int m_u2_A2, int n_a1t, float *tau, float *u2, int inc_u2, float *a1t, int inc_a1t, float *A2, int rs_A2, int cs_A2)
Definition: FLA_Apply_H2_UT_l_opt_var1.c:121
FLA_Error FLA_Househ2_UT_l_ops(int m_x2, float *chi_1, float *x2, int inc_x2, float *tau)
Definition: FLA_Househ2_UT.c:160
int i
Definition: bl1_axmyv2.c:145

◆ FLA_QR_UT_opt_var1()

FLA_Error FLA_QR_UT_opt_var1 ( FLA_Obj  A,
FLA_Obj  t 
)

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Obj_width(), FLA_QR_UT_opc_var1(), FLA_QR_UT_opd_var1(), FLA_QR_UT_ops_var1(), and FLA_QR_UT_opz_var1().

Referenced by FLA_QR_UT_internal().

14 {
15  FLA_Datatype datatype;
16  int m_A, n_A;
17  int rs_A, cs_A;
18  int inc_t;
19 
20  datatype = FLA_Obj_datatype( A );
21 
22  m_A = FLA_Obj_length( A );
23  n_A = FLA_Obj_width( A );
24  rs_A = FLA_Obj_row_stride( A );
25  cs_A = FLA_Obj_col_stride( A );
26 
27  inc_t = FLA_Obj_vector_inc( t );
28 
29 
30  switch ( datatype )
31  {
32  case FLA_FLOAT:
33  {
34  float* buff_A = FLA_FLOAT_PTR( A );
35  float* buff_t = FLA_FLOAT_PTR( t );
36 
37  FLA_QR_UT_ops_var1( m_A,
38  n_A,
39  buff_A, rs_A, cs_A,
40  buff_t, inc_t );
41 
42  break;
43  }
44 
45  case FLA_DOUBLE:
46  {
47  double* buff_A = FLA_DOUBLE_PTR( A );
48  double* buff_t = FLA_DOUBLE_PTR( t );
49 
50  FLA_QR_UT_opd_var1( m_A,
51  n_A,
52  buff_A, rs_A, cs_A,
53  buff_t, inc_t );
54 
55  break;
56  }
57 
58  case FLA_COMPLEX:
59  {
60  scomplex* buff_A = FLA_COMPLEX_PTR( A );
61  scomplex* buff_t = FLA_COMPLEX_PTR( t );
62 
63  FLA_QR_UT_opc_var1( m_A,
64  n_A,
65  buff_A, rs_A, cs_A,
66  buff_t, inc_t );
67 
68  break;
69  }
70 
71  case FLA_DOUBLE_COMPLEX:
72  {
73  dcomplex* buff_A = FLA_DOUBLE_COMPLEX_PTR( A );
74  dcomplex* buff_t = FLA_DOUBLE_COMPLEX_PTR( t );
75 
76  FLA_QR_UT_opz_var1( m_A,
77  n_A,
78  buff_A, rs_A, cs_A,
79  buff_t, inc_t );
80 
81  break;
82  }
83  }
84 
85  return FLA_SUCCESS;
86 }
FLA_Error FLA_QR_UT_opz_var1(int m_A, int n_A, dcomplex *buff_A, int rs_A, int cs_A, dcomplex *buff_t, int inc_t)
Definition: FLA_QR_UT_opt_var1.c:234
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
FLA_Error FLA_QR_UT_opd_var1(int m_A, int n_A, double *buff_A, int rs_A, int cs_A, double *buff_t, int inc_t)
Definition: FLA_QR_UT_opt_var1.c:138
Definition: blis_type_defs.h:132
FLA_Error FLA_QR_UT_ops_var1(int m_A, int n_A, float *buff_A, int rs_A, int cs_A, float *buff_t, int inc_t)
Definition: FLA_QR_UT_opt_var1.c:90
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_Error FLA_QR_UT_opc_var1(int m_A, int n_A, scomplex *buff_A, int rs_A, int cs_A, scomplex *buff_t, int inc_t)
Definition: FLA_QR_UT_opt_var1.c:186

◆ FLA_QR_UT_opz_var1()

FLA_Error FLA_QR_UT_opz_var1 ( int  m_A,
int  n_A,
dcomplex buff_A,
int  rs_A,
int  cs_A,
dcomplex buff_t,
int  inc_t 
)

References FLA_Apply_H2_UT_l_opz_var1(), FLA_Househ2_UT_l_opz(), and i.

Referenced by FLA_QR_UT_opt_var1().

238 {
239  int min_m_n = min( m_A, n_A );
240  int i;
241 
242  for ( i = 0; i < min_m_n; ++i )
243  {
244  dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
245  dcomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
246  dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
247  dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
248 
249  dcomplex* tau1 = buff_t + (i )*inc_t;
250 
251  int m_ahead = m_A - i - 1;
252  int n_ahead = n_A - i - 1;
253 
254  /*------------------------------------------------------------*/
255 
256  // FLA_Househ2_UT( FLA_LEFT,
257  // alpha11,
258  // a21, tau1 );
259  FLA_Househ2_UT_l_opz( m_ahead,
260  alpha11,
261  a21, rs_A,
262  tau1 );
263 
264  // FLA_Apply_H2_UT( FLA_LEFT, tau1, a21, a12t,
265  // A22 );
267  n_ahead,
268  tau1,
269  a21, rs_A,
270  a12t, cs_A,
271  A22, rs_A, cs_A );
272 
273  /*------------------------------------------------------------*/
274 
275  }
276 
277  return FLA_SUCCESS;
278 }
FLA_Error FLA_Apply_H2_UT_l_opz_var1(int m_u2_A2, int n_a1t, dcomplex *tau, dcomplex *u2, int inc_u2, dcomplex *a1t, int inc_a1t, dcomplex *A2, int rs_A2, int cs_A2)
Definition: FLA_Apply_H2_UT_l_opt_var1.c:343
int i
Definition: bl1_axmyv2.c:145
FLA_Error FLA_Househ2_UT_l_opz(int m_x2, dcomplex *chi_1, dcomplex *x2, int inc_x2, dcomplex *tau)
Definition: FLA_Househ2_UT.c:521
Definition: blis_type_defs.h:137