164{
166 int m_A;
167 int rs_A, cs_A;
168 int inc_d;
169 int inc_e;
171
173
175
178
180
181 if ( m_A != 1 )
183 else
184 inc_e = 0;
185
186 switch ( datatype )
187 {
188 case FLA_FLOAT:
189 {
190 float* buff_A = FLA_FLOAT_PTR( A );
191 float* buff_d = FLA_FLOAT_PTR( d );
192 float* buff_e = ( m_A != 1 ? FLA_FLOAT_PTR( e ) : NULL );
193
194 for (
i = 0;
i < m_A; ++
i )
195 {
196 float* alpha11 = buff_A + (
i )*cs_A + (
i )*rs_A;
197 float* a21_t = buff_A + (
i )*cs_A + (
i+1)*rs_A;
198 float* delta1 = buff_d + (
i )*inc_d;
199 float* epsilon1 = buff_e + (
i )*inc_e;
200
201 int m_ahead = m_A -
i - 1;
202
203
204 *delta1 = *alpha11;
205
206
207 if ( m_ahead > 0 )
208 *epsilon1 = *a21_t;
209 }
210
211 break;
212 }
213
214 case FLA_DOUBLE:
215 {
216 double* buff_A = FLA_DOUBLE_PTR( A );
217 double* buff_d = FLA_DOUBLE_PTR( d );
218 double* buff_e = ( m_A != 1 ? FLA_DOUBLE_PTR( e ) : NULL );
219
220 for (
i = 0;
i < m_A; ++
i )
221 {
222 double* alpha11 = buff_A + (
i )*cs_A + (
i )*rs_A;
223 double* a21_t = buff_A + (
i )*cs_A + (
i+1)*rs_A;
224 double* delta1 = buff_d + (
i )*inc_d;
225 double* epsilon1 = buff_e + (
i )*inc_e;
226
227 int m_ahead = m_A -
i - 1;
228
229
230 *delta1 = *alpha11;
231
232
233 if ( m_ahead > 0 )
234 *epsilon1 = *a21_t;
235 }
236
237 break;
238 }
239
240 case FLA_COMPLEX:
241 {
242 scomplex* buff_A = FLA_COMPLEX_PTR( A );
243 float* buff_d = FLA_FLOAT_PTR( d );
244 float* buff_e = ( m_A != 1 ? FLA_FLOAT_PTR( e ) : NULL );
245
246 for (
i = 0;
i < m_A; ++
i )
247 {
248 scomplex* alpha11 = buff_A + (
i )*cs_A + (
i )*rs_A;
249 scomplex* a21_t = buff_A + (
i )*cs_A + (
i+1)*rs_A;
250 float* delta1 = buff_d + (
i )*inc_d;
251 float* epsilon1 = buff_e + (
i )*inc_e;
252
253 int m_ahead = m_A -
i - 1;
254
255
256 *delta1 = alpha11->
real;
257
258
259 if ( m_ahead > 0 )
260 *epsilon1 = a21_t->
real;
261 }
262
263 break;
264 }
265
266 case FLA_DOUBLE_COMPLEX:
267 {
268 dcomplex* buff_A = FLA_DOUBLE_COMPLEX_PTR( A );
269 double* buff_d = FLA_DOUBLE_PTR( d );
270 double* buff_e = ( m_A != 1 ? FLA_DOUBLE_PTR( e ) : NULL );
271
272 for (
i = 0;
i < m_A; ++
i )
273 {
274 dcomplex* alpha11 = buff_A + (
i )*cs_A + (
i )*rs_A;
275 dcomplex* a21_t = buff_A + (
i )*cs_A + (
i+1)*rs_A;
276 double* delta1 = buff_d + (
i )*inc_d;
277 double* epsilon1 = buff_e + (
i )*inc_e;
278
279 int m_ahead = m_A -
i - 1;
280
281
282 *delta1 = alpha11->
real;
283
284
285 if ( m_ahead > 0 )
286 *epsilon1 = a21_t->
real;
287 }
288
289 break;
290 }
291 }
292
293 return FLA_SUCCESS;
294}
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition FLA_Query.c:167
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
int i
Definition bl1_axmyv2.c:145
Definition blis_type_defs.h:138
double real
Definition blis_type_defs.h:139
Definition blis_type_defs.h:133
float real
Definition blis_type_defs.h:134