libflame  revision_anchor
Functions
FLA_LU_nopiv_opt_var5.c File Reference

(r)

Functions

FLA_Error FLA_LU_nopiv_opt_var5 (FLA_Obj A)
 
FLA_Error FLA_LU_nopiv_ops_var5 (int m_A, int n_A, float *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_LU_nopiv_opd_var5 (int m_A, int n_A, double *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_LU_nopiv_opc_var5 (int m_A, int n_A, scomplex *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_LU_nopiv_opz_var5 (int m_A, int n_A, dcomplex *buff_A, int rs_A, int cs_A)
 

Function Documentation

◆ FLA_LU_nopiv_opc_var5()

FLA_Error FLA_LU_nopiv_opc_var5 ( int  m_A,
int  n_A,
scomplex buff_A,
int  rs_A,
int  cs_A 
)
172 {
173  scomplex* buff_m1 = FLA_COMPLEX_PTR( FLA_MINUS_ONE );
174  int min_m_n = min( m_A, n_A );
175  int i;
176 
177  for ( i = 0; i < min_m_n; ++i )
178  {
179  scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
180  scomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
181  scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
182  scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
183 
184  int m_ahead = m_A - i - 1;
185  int n_ahead = n_A - i - 1;
186 
187  /*------------------------------------------------------------*/
188 
189  // FLA_Inv_scal_external( alpha11, a21 );
191  m_ahead,
192  alpha11,
193  a21, rs_A );
194 
195  // FLA_Ger_external( FLA_MINUS_ONE, a21, a12t, A22 );
198  m_ahead,
199  n_ahead,
200  buff_m1,
201  a21, rs_A,
202  a12t, cs_A,
203  A22, rs_A, cs_A );
204 
205  /*------------------------------------------------------------*/
206 
207  }
208 
209  return FLA_SUCCESS;
210 }
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
int i
Definition: bl1_axmyv2.c:145
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_NO_CONJUGATE
Definition: blis_type_defs.h:81
Definition: blis_type_defs.h:133

References bl1_cger(), bl1_cinvscalv(), BLIS1_NO_CONJUGATE, FLA_MINUS_ONE, and i.

Referenced by FLA_LU_nopiv_opt_var5().

◆ FLA_LU_nopiv_opd_var5()

FLA_Error FLA_LU_nopiv_opd_var5 ( int  m_A,
int  n_A,
double *  buff_A,
int  rs_A,
int  cs_A 
)
127 {
128  double* buff_m1 = FLA_DOUBLE_PTR( FLA_MINUS_ONE );
129  int min_m_n = min( m_A, n_A );
130  int i;
131 
132  for ( i = 0; i < min_m_n; ++i )
133  {
134  double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
135  double* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
136  double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
137  double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
138 
139  int m_ahead = m_A - i - 1;
140  int n_ahead = n_A - i - 1;
141 
142  /*------------------------------------------------------------*/
143 
144  // FLA_Inv_scal_external( alpha11, a21 );
146  m_ahead,
147  alpha11,
148  a21, rs_A );
149 
150  // FLA_Ger_external( FLA_MINUS_ONE, a21, a12t, A22 );
153  m_ahead,
154  n_ahead,
155  buff_m1,
156  a21, rs_A,
157  a12t, cs_A,
158  A22, rs_A, cs_A );
159 
160  /*------------------------------------------------------------*/
161 
162  }
163 
164  return FLA_SUCCESS;
165 }
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_dger(), bl1_dinvscalv(), BLIS1_NO_CONJUGATE, FLA_MINUS_ONE, and i.

Referenced by FLA_LU_nopiv_opt_var5().

◆ FLA_LU_nopiv_ops_var5()

FLA_Error FLA_LU_nopiv_ops_var5 ( int  m_A,
int  n_A,
float *  buff_A,
int  rs_A,
int  cs_A 
)
82 {
83  float* buff_m1 = FLA_FLOAT_PTR( FLA_MINUS_ONE );
84  int min_m_n = min( m_A, n_A );
85  int i;
86 
87  for ( i = 0; i < min_m_n; ++i )
88  {
89  float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
90  float* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
91  float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
92  float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
93 
94  int m_ahead = m_A - i - 1;
95  int n_ahead = n_A - i - 1;
96 
97  /*------------------------------------------------------------*/
98 
99  // FLA_Inv_scal_external( alpha11, a21 );
101  m_ahead,
102  alpha11,
103  a21, rs_A );
104 
105  // FLA_Ger_external( FLA_MINUS_ONE, a21, a12t, A22 );
108  m_ahead,
109  n_ahead,
110  buff_m1,
111  a21, rs_A,
112  a12t, cs_A,
113  A22, rs_A, cs_A );
114 
115  /*------------------------------------------------------------*/
116 
117  }
118 
119  return FLA_SUCCESS;
120 }
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_sger(), bl1_sinvscalv(), BLIS1_NO_CONJUGATE, FLA_MINUS_ONE, and i.

Referenced by FLA_LU_nopiv_opt_var5().

◆ FLA_LU_nopiv_opt_var5()

FLA_Error FLA_LU_nopiv_opt_var5 ( FLA_Obj  A)
14 {
15  FLA_Datatype datatype;
16  int m_A, n_A;
17  int rs_A, cs_A;
18 
19  datatype = FLA_Obj_datatype( A );
20 
21  m_A = FLA_Obj_length( A );
22  n_A = FLA_Obj_width( A );
23  rs_A = FLA_Obj_row_stride( A );
24  cs_A = FLA_Obj_col_stride( A );
25 
26 
27  switch ( datatype )
28  {
29  case FLA_FLOAT:
30  {
31  float* buff_A = FLA_FLOAT_PTR( A );
32 
34  n_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 
45  n_A,
46  buff_A, rs_A, cs_A );
47 
48  break;
49  }
50 
51  case FLA_COMPLEX:
52  {
53  scomplex* buff_A = FLA_COMPLEX_PTR( A );
54 
56  n_A,
57  buff_A, rs_A, cs_A );
58 
59  break;
60  }
61 
62  case FLA_DOUBLE_COMPLEX:
63  {
64  dcomplex* buff_A = FLA_DOUBLE_COMPLEX_PTR( A );
65 
67  n_A,
68  buff_A, rs_A, cs_A );
69 
70  break;
71  }
72  }
73 
74  return FLA_SUCCESS;
75 }
FLA_Error FLA_LU_nopiv_opd_var5(int m_A, int n_A, double *buff_A, int rs_A, int cs_A)
Definition: FLA_LU_nopiv_opt_var5.c:124
FLA_Error FLA_LU_nopiv_opz_var5(int m_A, int n_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_LU_nopiv_opt_var5.c:214
FLA_Error FLA_LU_nopiv_ops_var5(int m_A, int n_A, float *buff_A, int rs_A, int cs_A)
Definition: FLA_LU_nopiv_opt_var5.c:79
FLA_Error FLA_LU_nopiv_opc_var5(int m_A, int n_A, scomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_LU_nopiv_opt_var5.c:169
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_LU_nopiv_opc_var5(), FLA_LU_nopiv_opd_var5(), FLA_LU_nopiv_ops_var5(), FLA_LU_nopiv_opz_var5(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), and FLA_Obj_width().

Referenced by FLA_LU_nopiv_internal().

◆ FLA_LU_nopiv_opz_var5()

FLA_Error FLA_LU_nopiv_opz_var5 ( int  m_A,
int  n_A,
dcomplex buff_A,
int  rs_A,
int  cs_A 
)
217 {
218  dcomplex* buff_m1 = FLA_DOUBLE_COMPLEX_PTR( FLA_MINUS_ONE );
219  int min_m_n = min( m_A, n_A );
220  int i;
221 
222  for ( i = 0; i < min_m_n; ++i )
223  {
224  dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
225  dcomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
226  dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
227  dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
228 
229  int m_ahead = m_A - i - 1;
230  int n_ahead = n_A - i - 1;
231 
232  /*------------------------------------------------------------*/
233 
234  // FLA_Inv_scal_external( alpha11, a21 );
236  m_ahead,
237  alpha11,
238  a21, rs_A );
239 
240  // FLA_Ger_external( FLA_MINUS_ONE, a21, a12t, A22 );
243  m_ahead,
244  n_ahead,
245  buff_m1,
246  a21, rs_A,
247  a12t, cs_A,
248  A22, rs_A, cs_A );
249 
250  /*------------------------------------------------------------*/
251 
252  }
253 
254  return FLA_SUCCESS;
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_zger(), bl1_zinvscalv(), BLIS1_NO_CONJUGATE, FLA_MINUS_ONE, and i.

Referenced by FLA_LU_nopiv_opt_var5().