libflame revision_anchor
Functions
FLA_Eig_gest_il_opt_var2.c File Reference

(r)

Functions

FLA_Error FLA_Eig_gest_il_opt_var2 (FLA_Obj A, FLA_Obj Y, FLA_Obj B)
 
FLA_Error FLA_Eig_gest_il_ops_var2 (int m_AB, float *buff_A, int rs_A, int cs_A, float *buff_y, int inc_y, float *buff_B, int rs_B, int cs_B)
 
FLA_Error FLA_Eig_gest_il_opd_var2 (int m_AB, double *buff_A, int rs_A, int cs_A, double *buff_y, int inc_y, double *buff_B, int rs_B, int cs_B)
 
FLA_Error FLA_Eig_gest_il_opc_var2 (int m_AB, scomplex *buff_A, int rs_A, int cs_A, scomplex *buff_y, int inc_y, scomplex *buff_B, int rs_B, int cs_B)
 
FLA_Error FLA_Eig_gest_il_opz_var2 (int m_AB, dcomplex *buff_A, int rs_A, int cs_A, dcomplex *buff_y, int inc_y, dcomplex *buff_B, int rs_B, int cs_B)
 

Function Documentation

◆ FLA_Eig_gest_il_opc_var2()

FLA_Error FLA_Eig_gest_il_opc_var2 ( int  m_AB,
scomplex buff_A,
int  rs_A,
int  cs_A,
scomplex buff_y,
int  inc_y,
scomplex buff_B,
int  rs_B,
int  cs_B 
)
307{
312 int i;
313
314 for ( i = 0; i < m_AB; ++i )
315 {
316 scomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
317 scomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
318 scomplex* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
319 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
320 scomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
321
322 scomplex* y10t = buff_y + (0 )*inc_y;
323
324 scomplex* b10t = buff_B + (0 )*cs_B + (i )*rs_B;
325 scomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
326
327 int m_ahead = m_AB - i - 1;
328 int m_behind = i;
329
330 /*------------------------------------------------------------*/
331
332 // FLA_Hemvc_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
333 // FLA_ONE_HALF, A00, b10t, FLA_ZERO, y10t_t );
336 m_behind,
337 buff_1h,
338 A00, rs_A, cs_A,
339 b10t, cs_B,
340 buff_0,
341 y10t, inc_y );
342
343 // FLA_Axpy_external( FLA_MINUS_ONE, y10t_t, a10t );
345 m_behind,
346 buff_m1,
347 y10t, inc_y,
348 a10t, cs_A );
349
350 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_MINUS_ONE, a10t, b10t, FLA_ONE, alpha11 );
352 m_behind,
353 buff_m1,
354 a10t, cs_A,
355 b10t, cs_B,
356 buff_1,
357 alpha11 );
358
359 // FLA_Inv_scal_external( beta11, alpha11 );
360 // FLA_Inv_scal_external( beta11, alpha11 );
363
364 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE,
365 // FLA_MINUS_ONE, A20, b10t, FLA_ONE, a21 );
368 m_ahead,
369 m_behind,
370 buff_m1,
371 A20, rs_A, cs_A,
372 b10t, cs_B,
373 buff_1,
374 a21, rs_A );
375
376 // FLA_Inv_scal_external( beta11, a21 );
378 m_ahead,
379 beta11,
380 a21, rs_A );
381
382 // FLA_Axpy_external( FLA_MINUS_ONE, y10t_t, a10t );
384 m_behind,
385 buff_m1,
386 y10t, inc_y,
387 a10t, cs_A );
388
389 // FLA_Inv_scal_external( beta11, a10t );
391 m_behind,
392 beta11,
393 a10t, cs_A );
394
395 /*------------------------------------------------------------*/
396
397 }
398
399 return FLA_SUCCESS;
400}
FLA_Obj FLA_MINUS_ONE
Definition FLA_Init.c:22
FLA_Obj FLA_ONE_HALF
Definition FLA_Init.c:19
FLA_Obj FLA_ZERO
Definition FLA_Init.c:20
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
int i
Definition bl1_axmyv2.c:145
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_cdot2s(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *beta, scomplex *rho)
Definition bl1_dot2s.c:39
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_chemv(uplo1_t uplo, conj1_t conj, int m, scomplex *alpha, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx, scomplex *beta, scomplex *y, int incy)
Definition bl1_hemv.c:35
void bl1_cinvscalv(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx)
Definition bl1_invscalv.c:52
@ BLIS1_LOWER_TRIANGULAR
Definition blis_type_defs.h:62
@ BLIS1_NO_TRANSPOSE
Definition blis_type_defs.h:54
@ 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_cdot2s(), bl1_cgemv(), bl1_chemv(), bl1_cinvscalv(), BLIS1_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, FLA_MINUS_ONE, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_il_opt_var2().

◆ FLA_Eig_gest_il_opd_var2()

FLA_Error FLA_Eig_gest_il_opd_var2 ( int  m_AB,
double buff_A,
int  rs_A,
int  cs_A,
double buff_y,
int  inc_y,
double buff_B,
int  rs_B,
int  cs_B 
)
206{
207 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
209 double* buff_0 = FLA_DOUBLE_PTR( FLA_ZERO );
211 int i;
212
213 for ( i = 0; i < m_AB; ++i )
214 {
215 double* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
216 double* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
217 double* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
218 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
219 double* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
220
221 double* y10t = buff_y + (0 )*inc_y;
222
223 double* b10t = buff_B + (0 )*cs_B + (i )*rs_B;
224 double* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
225
226 int m_ahead = m_AB - i - 1;
227 int m_behind = i;
228
229 /*------------------------------------------------------------*/
230
231 // FLA_Hemvc_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
232 // FLA_ONE_HALF, A00, b10t, FLA_ZERO, y10t_t );
235 m_behind,
236 buff_1h,
237 A00, rs_A, cs_A,
238 b10t, cs_B,
239 buff_0,
240 y10t, inc_y );
241
242 // FLA_Axpy_external( FLA_MINUS_ONE, y10t_t, a10t );
244 m_behind,
245 buff_m1,
246 y10t, inc_y,
247 a10t, cs_A );
248
249 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_MINUS_ONE, a10t, b10t, FLA_ONE, alpha11 );
251 m_behind,
252 buff_m1,
253 a10t, cs_A,
254 b10t, cs_B,
255 buff_1,
256 alpha11 );
257
258 // FLA_Inv_scal_external( beta11, alpha11 );
259 // FLA_Inv_scal_external( beta11, alpha11 );
262
263 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE,
264 // FLA_MINUS_ONE, A20, b10t, FLA_ONE, a21 );
267 m_ahead,
268 m_behind,
269 buff_m1,
270 A20, rs_A, cs_A,
271 b10t, cs_B,
272 buff_1,
273 a21, rs_A );
274
275 // FLA_Inv_scal_external( beta11, a21 );
277 m_ahead,
278 beta11,
279 a21, rs_A );
280
281 // FLA_Axpy_external( FLA_MINUS_ONE, y10t_t, a10t );
283 m_behind,
284 buff_m1,
285 y10t, inc_y,
286 a10t, cs_A );
287
288 // FLA_Inv_scal_external( beta11, a10t );
290 m_behind,
291 beta11,
292 a10t, cs_A );
293
294 /*------------------------------------------------------------*/
295
296 }
297
298 return FLA_SUCCESS;
299}
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_ddot2s(conj1_t conj, int n, double *alpha, double *x, int incx, double *y, int incy, double *beta, double *rho)
Definition bl1_dot2s.c:26
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_dhemv(uplo1_t uplo, conj1_t conj, int m, double *alpha, double *a, int a_rs, int a_cs, double *x, int incx, double *beta, double *y, int incy)
Definition bl1_hemv.c:24
void bl1_dinvscalv(conj1_t conj, int n, double *alpha, double *x, int incx)
Definition bl1_invscalv.c:26

References bl1_daxpyv(), bl1_ddot2s(), bl1_dgemv(), bl1_dhemv(), bl1_dinvscalv(), BLIS1_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, FLA_MINUS_ONE, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_il_opt_var2().

◆ FLA_Eig_gest_il_ops_var2()

FLA_Error FLA_Eig_gest_il_ops_var2 ( int  m_AB,
float buff_A,
int  rs_A,
int  cs_A,
float buff_y,
int  inc_y,
float buff_B,
int  rs_B,
int  cs_B 
)
105{
106 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
108 float* buff_0 = FLA_FLOAT_PTR( FLA_ZERO );
110 int i;
111
112 for ( i = 0; i < m_AB; ++i )
113 {
114 float* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
115 float* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
116 float* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
117 float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
118 float* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
119
120 float* y10t = buff_y + (0 )*inc_y;
121
122 float* b10t = buff_B + (0 )*cs_B + (i )*rs_B;
123 float* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
124
125 int m_ahead = m_AB - i - 1;
126 int m_behind = i;
127
128 /*------------------------------------------------------------*/
129
130 // FLA_Hemvc_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
131 // FLA_ONE_HALF, A00, b10t, FLA_ZERO, y10t_t );
134 m_behind,
135 buff_1h,
136 A00, rs_A, cs_A,
137 b10t, cs_B,
138 buff_0,
139 y10t, inc_y );
140
141 // FLA_Axpy_external( FLA_MINUS_ONE, y10t_t, a10t );
143 m_behind,
144 buff_m1,
145 y10t, inc_y,
146 a10t, cs_A );
147
148 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_MINUS_ONE, a10t, b10t, FLA_ONE, alpha11 );
150 m_behind,
151 buff_m1,
152 a10t, cs_A,
153 b10t, cs_B,
154 buff_1,
155 alpha11 );
156
157 // FLA_Inv_scal_external( beta11, alpha11 );
158 // FLA_Inv_scal_external( beta11, alpha11 );
161
162 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE,
163 // FLA_MINUS_ONE, A20, b10t, FLA_ONE, a21 );
166 m_ahead,
167 m_behind,
168 buff_m1,
169 A20, rs_A, cs_A,
170 b10t, cs_B,
171 buff_1,
172 a21, rs_A );
173
174 // FLA_Inv_scal_external( beta11, a21 );
176 m_ahead,
177 beta11,
178 a21, rs_A );
179
180 // FLA_Axpy_external( FLA_MINUS_ONE, y10t_t, a10t );
182 m_behind,
183 buff_m1,
184 y10t, inc_y,
185 a10t, cs_A );
186
187 // FLA_Inv_scal_external( beta11, a10t );
189 m_behind,
190 beta11,
191 a10t, cs_A );
192
193 /*------------------------------------------------------------*/
194
195 }
196
197 return FLA_SUCCESS;
198}
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_sdot2s(conj1_t conj, int n, float *alpha, float *x, int incx, float *y, int incy, float *beta, float *rho)
Definition bl1_dot2s.c:13
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_shemv(uplo1_t uplo, conj1_t conj, int m, float *alpha, float *a, int a_rs, int a_cs, float *x, int incx, float *beta, float *y, int incy)
Definition bl1_hemv.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_sdot2s(), bl1_sgemv(), bl1_shemv(), bl1_sinvscalv(), BLIS1_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, FLA_MINUS_ONE, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_il_opt_var2().

◆ FLA_Eig_gest_il_opt_var2()

FLA_Error FLA_Eig_gest_il_opt_var2 ( FLA_Obj  A,
FLA_Obj  Y,
FLA_Obj  B 
)
14{
15 FLA_Datatype datatype;
16 int m_AB;
17 int rs_A, cs_A;
18 int rs_B, cs_B;
19 int inc_y;
20 FLA_Obj yT, yB;
21
22 datatype = FLA_Obj_datatype( A );
23
25
28
31
32 FLA_Part_2x1( Y, &yT,
33 &yB, 1, FLA_TOP );
34
36
37 switch ( datatype )
38 {
39 case FLA_FLOAT:
40 {
41 float* buff_A = FLA_FLOAT_PTR( A );
42 float* buff_y = FLA_FLOAT_PTR( yT );
43 float* buff_B = FLA_FLOAT_PTR( B );
44
48 buff_B, rs_B, cs_B );
49
50 break;
51 }
52
53 case FLA_DOUBLE:
54 {
55 double* buff_A = FLA_DOUBLE_PTR( A );
56 double* buff_y = FLA_DOUBLE_PTR( yT );
57 double* buff_B = FLA_DOUBLE_PTR( B );
58
62 buff_B, rs_B, cs_B );
63
64 break;
65 }
66
67 case FLA_COMPLEX:
68 {
72
76 buff_B, rs_B, cs_B );
77
78 break;
79 }
80
82 {
86
90 buff_B, rs_B, cs_B );
91
92 break;
93 }
94 }
95
96 return FLA_SUCCESS;
97}
FLA_Error FLA_Eig_gest_il_opc_var2(int m_AB, scomplex *buff_A, int rs_A, int cs_A, scomplex *buff_y, int inc_y, scomplex *buff_B, int rs_B, int cs_B)
Definition FLA_Eig_gest_il_opt_var2.c:303
FLA_Error FLA_Eig_gest_il_opz_var2(int m_AB, dcomplex *buff_A, int rs_A, int cs_A, dcomplex *buff_y, int inc_y, dcomplex *buff_B, int rs_B, int cs_B)
Definition FLA_Eig_gest_il_opt_var2.c:404
FLA_Error FLA_Eig_gest_il_opd_var2(int m_AB, double *buff_A, int rs_A, int cs_A, double *buff_y, int inc_y, double *buff_B, int rs_B, int cs_B)
Definition FLA_Eig_gest_il_opt_var2.c:202
FLA_Error FLA_Eig_gest_il_ops_var2(int m_AB, float *buff_A, int rs_A, int cs_A, float *buff_y, int inc_y, float *buff_B, int rs_B, int cs_B)
Definition FLA_Eig_gest_il_opt_var2.c:101
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition FLA_Query.c:167
FLA_Error FLA_Part_2x1(FLA_Obj A, FLA_Obj *A1, FLA_Obj *A2, dim_t mb, FLA_Side side)
Definition FLA_View.c:76
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 FLA_type_defs.h:159
Definition blis_type_defs.h:138

References FLA_Eig_gest_il_opc_var2(), FLA_Eig_gest_il_opd_var2(), FLA_Eig_gest_il_ops_var2(), FLA_Eig_gest_il_opz_var2(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Part_2x1(), and i.

Referenced by FLA_Eig_gest_il().

◆ FLA_Eig_gest_il_opz_var2()

FLA_Error FLA_Eig_gest_il_opz_var2 ( int  m_AB,
dcomplex buff_A,
int  rs_A,
int  cs_A,
dcomplex buff_y,
int  inc_y,
dcomplex buff_B,
int  rs_B,
int  cs_B 
)
408{
413 int i;
414
415 for ( i = 0; i < m_AB; ++i )
416 {
417 dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
418 dcomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
419 dcomplex* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
420 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
421 dcomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
422
423 dcomplex* y10t = buff_y + (0 )*inc_y;
424
425 dcomplex* b10t = buff_B + (0 )*cs_B + (i )*rs_B;
426 dcomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
427
428 int m_ahead = m_AB - i - 1;
429 int m_behind = i;
430
431 /*------------------------------------------------------------*/
432
433 // FLA_Hemvc_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
434 // FLA_ONE_HALF, A00, b10t, FLA_ZERO, y10t_t );
437 m_behind,
438 buff_1h,
439 A00, rs_A, cs_A,
440 b10t, cs_B,
441 buff_0,
442 y10t, inc_y );
443
444 // FLA_Axpy_external( FLA_MINUS_ONE, y10t_t, a10t );
446 m_behind,
447 buff_m1,
448 y10t, inc_y,
449 a10t, cs_A );
450
451 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_MINUS_ONE, a10t, b10t, FLA_ONE, alpha11 );
453 m_behind,
454 buff_m1,
455 a10t, cs_A,
456 b10t, cs_B,
457 buff_1,
458 alpha11 );
459
460 // FLA_Inv_scal_external( beta11, alpha11 );
461 // FLA_Inv_scal_external( beta11, alpha11 );
464
465 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE,
466 // FLA_MINUS_ONE, A20, b10t, FLA_ONE, a21 );
469 m_ahead,
470 m_behind,
471 buff_m1,
472 A20, rs_A, cs_A,
473 b10t, cs_B,
474 buff_1,
475 a21, rs_A );
476
477 // FLA_Inv_scal_external( beta11, a21 );
479 m_ahead,
480 beta11,
481 a21, rs_A );
482
483 // FLA_Axpy_external( FLA_MINUS_ONE, y10t_t, a10t );
485 m_behind,
486 buff_m1,
487 y10t, inc_y,
488 a10t, cs_A );
489
490 // FLA_Inv_scal_external( beta11, a10t );
492 m_behind,
493 beta11,
494 a10t, cs_A );
495
496 /*------------------------------------------------------------*/
497
498 }
499
500 return FLA_SUCCESS;
501}
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_zdot2s(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *beta, dcomplex *rho)
Definition bl1_dot2s.c:70
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_zhemv(uplo1_t uplo, conj1_t conj, int m, dcomplex *alpha, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx, dcomplex *beta, dcomplex *y, int incy)
Definition bl1_hemv.c:134
void bl1_zinvscalv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx)
Definition bl1_invscalv.c:78

References bl1_zaxpyv(), bl1_zdot2s(), bl1_zgemv(), bl1_zhemv(), bl1_zinvscalv(), BLIS1_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, FLA_MINUS_ONE, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_il_opt_var2().