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{
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{
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{
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 );
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 {
54
56 n_A,
57 buff_A, rs_A, cs_A );
58
59 break;
60 }
61
63 {
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(), FLA_Obj_width(), and i.

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