libflame revision_anchor
Functions
FLA_Eig_gest_iu_opt_var4.c File Reference

(r)

Functions

FLA_Error FLA_Eig_gest_iu_opt_var4 (FLA_Obj A, FLA_Obj Y, FLA_Obj B)
 
FLA_Error FLA_Eig_gest_iu_ops_var4 (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_iu_opd_var4 (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_iu_opc_var4 (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_iu_opz_var4 (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_iu_opc_var4()

FLA_Error FLA_Eig_gest_iu_opc_var4 ( 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 
)
286{
289 int i;
290
291 for ( i = 0; i < m_AB; ++i )
292 {
293 scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
294 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
295 scomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
296 scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
297 scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
298
299 scomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
300 scomplex* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
301
303
304 int m_ahead = m_AB - i - 1;
305 int m_behind = i;
306
307 /*------------------------------------------------------------*/
308
309 // FLA_Inv_scal_external( beta11, a01 );
311 m_behind,
312 beta11,
313 a01, rs_A );
314
315 // FLA_Ger_external( FLA_MINUS_ONE, a01, b12t, A02 );
318 m_behind,
319 m_ahead,
320 buff_m1,
321 a01, rs_A,
322 b12t, cs_B,
323 A02, rs_A, cs_A );
324
325 // FLA_Inv_scal_external( beta11, alpha11 );
326 // FLA_Inv_scal_external( beta11, alpha11 );
329
330 // FLA_Copy_external( alpha11, psi11 );
331 // FLA_Scal_external( FLA_MINUS_ONE_HALF, psi11 );
333
334 // FLA_Inv_scal_external( beta11, a12t );
336 m_ahead,
337 beta11,
338 a12t, cs_A );
339
340 // FLA_Axpy_external( psi11, b12t, a12t );
342 m_ahead,
343 &psi11,
344 b12t, cs_B,
345 a12t, cs_A );
346
347 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
348 // FLA_MINUS_ONE, a12t, b12t, A22 );
351 m_ahead,
352 buff_m1,
353 a12t, cs_A,
354 b12t, cs_B,
355 A22, rs_A, cs_A );
356
357 // FLA_Axpy_external( psi11, b12t, a12t );
359 m_ahead,
360 &psi11,
361 b12t, cs_B,
362 a12t, cs_A );
363
364 /*------------------------------------------------------------*/
365
366 }
367
368 return FLA_SUCCESS;
369}
FLA_Obj FLA_MINUS_ONE_HALF
Definition FLA_Init.c:21
FLA_Obj FLA_MINUS_ONE
Definition FLA_Init.c:22
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_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_cher2(uplo1_t uplo, conj1_t conj, int m, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *a, int a_rs, int a_cs)
Definition bl1_her2.c:33
void bl1_cinvscalv(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx)
Definition bl1_invscalv.c:52
@ BLIS1_UPPER_TRIANGULAR
Definition blis_type_defs.h:63
@ 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_cger(), bl1_cher2(), bl1_cinvscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_MINUS_ONE_HALF, and i.

Referenced by FLA_Eig_gest_iu_opt_var4().

◆ FLA_Eig_gest_iu_opd_var4()

FLA_Error FLA_Eig_gest_iu_opd_var4 ( 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 
)
195{
198 int i;
199
200 for ( i = 0; i < m_AB; ++i )
201 {
202 double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
203 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
204 double* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
205 double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
206 double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
207
208 double* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
209 double* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
210
211 double psi11;
212
213 int m_ahead = m_AB - i - 1;
214 int m_behind = i;
215
216 /*------------------------------------------------------------*/
217
218 // FLA_Inv_scal_external( beta11, a01 );
220 m_behind,
221 beta11,
222 a01, rs_A );
223
224 // FLA_Ger_external( FLA_MINUS_ONE, a01, b12t, A02 );
227 m_behind,
228 m_ahead,
229 buff_m1,
230 a01, rs_A,
231 b12t, cs_B,
232 A02, rs_A, cs_A );
233
234 // FLA_Inv_scal_external( beta11, alpha11 );
235 // FLA_Inv_scal_external( beta11, alpha11 );
238
239 // FLA_Copy_external( alpha11, psi11 );
240 // FLA_Scal_external( FLA_MINUS_ONE_HALF, psi11 );
242
243 // FLA_Inv_scal_external( beta11, a12t );
245 m_ahead,
246 beta11,
247 a12t, cs_A );
248
249 // FLA_Axpy_external( psi11, b12t, a12t );
251 m_ahead,
252 &psi11,
253 b12t, cs_B,
254 a12t, cs_A );
255
256 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
257 // FLA_MINUS_ONE, a12t, b12t, A22 );
260 m_ahead,
261 buff_m1,
262 a12t, cs_A,
263 b12t, cs_B,
264 A22, rs_A, cs_A );
265
266 // FLA_Axpy_external( psi11, b12t, a12t );
268 m_ahead,
269 &psi11,
270 b12t, cs_B,
271 a12t, cs_A );
272
273 /*------------------------------------------------------------*/
274
275 }
276
277 return FLA_SUCCESS;
278}
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_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_dher2(uplo1_t uplo, conj1_t conj, int m, double *alpha, double *x, int incx, double *y, int incy, double *a, int a_rs, int a_cs)
Definition bl1_her2.c:23
void bl1_dinvscalv(conj1_t conj, int n, double *alpha, double *x, int incx)
Definition bl1_invscalv.c:26

References bl1_daxpyv(), bl1_dger(), bl1_dher2(), bl1_dinvscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_MINUS_ONE_HALF, and i.

Referenced by FLA_Eig_gest_iu_opt_var4().

◆ FLA_Eig_gest_iu_ops_var4()

FLA_Error FLA_Eig_gest_iu_ops_var4 ( 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 
)
104{
107 int i;
108
109 for ( i = 0; i < m_AB; ++i )
110 {
111 float* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
112 float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
113 float* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
114 float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
115 float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
116
117 float* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
118 float* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
119
120 float psi11;
121
122 int m_ahead = m_AB - i - 1;
123 int m_behind = i;
124
125 /*------------------------------------------------------------*/
126
127 // FLA_Inv_scal_external( beta11, a01 );
129 m_behind,
130 beta11,
131 a01, rs_A );
132
133 // FLA_Ger_external( FLA_MINUS_ONE, a01, b12t, A02 );
136 m_behind,
137 m_ahead,
138 buff_m1,
139 a01, rs_A,
140 b12t, cs_B,
141 A02, rs_A, cs_A );
142
143 // FLA_Inv_scal_external( beta11, alpha11 );
144 // FLA_Inv_scal_external( beta11, alpha11 );
147
148 // FLA_Copy_external( alpha11, psi11 );
149 // FLA_Scal_external( FLA_MINUS_ONE_HALF, psi11 );
151
152 // FLA_Inv_scal_external( beta11, a12t );
154 m_ahead,
155 beta11,
156 a12t, cs_A );
157
158 // FLA_Axpy_external( psi11, b12t, a12t );
160 m_ahead,
161 &psi11,
162 b12t, cs_B,
163 a12t, cs_A );
164
165 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
166 // FLA_MINUS_ONE, a12t, b12t, A22 );
169 m_ahead,
170 buff_m1,
171 a12t, cs_A,
172 b12t, cs_B,
173 A22, rs_A, cs_A );
174
175 // FLA_Axpy_external( psi11, b12t, a12t );
177 m_ahead,
178 &psi11,
179 b12t, cs_B,
180 a12t, cs_A );
181
182 /*------------------------------------------------------------*/
183
184 }
185
186 return FLA_SUCCESS;
187}
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_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_sher2(uplo1_t uplo, conj1_t conj, int m, float *alpha, float *x, int incx, float *y, int incy, float *a, int a_rs, int a_cs)
Definition bl1_her2.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_sger(), bl1_sher2(), bl1_sinvscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_MINUS_ONE_HALF, and i.

Referenced by FLA_Eig_gest_iu_opt_var4().

◆ FLA_Eig_gest_iu_opt_var4()

FLA_Error FLA_Eig_gest_iu_opt_var4 ( 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 yL, yR;
21
22 datatype = FLA_Obj_datatype( A );
23
25
28
31
32 FLA_Part_1x2( Y, &yL, &yR, 1, FLA_LEFT );
33
35
36 switch ( datatype )
37 {
38 case FLA_FLOAT:
39 {
40 float* buff_A = FLA_FLOAT_PTR( A );
41 float* buff_y = FLA_FLOAT_PTR( yL );
42 float* buff_B = FLA_FLOAT_PTR( B );
43
47 buff_B, rs_B, cs_B );
48
49 break;
50 }
51
52 case FLA_DOUBLE:
53 {
54 double* buff_A = FLA_DOUBLE_PTR( A );
55 double* buff_y = FLA_DOUBLE_PTR( yL );
56 double* buff_B = FLA_DOUBLE_PTR( B );
57
61 buff_B, rs_B, cs_B );
62
63 break;
64 }
65
66 case FLA_COMPLEX:
67 {
71
75 buff_B, rs_B, cs_B );
76
77 break;
78 }
79
81 {
85
89 buff_B, rs_B, cs_B );
90
91 break;
92 }
93 }
94
95 return FLA_SUCCESS;
96}
FLA_Error FLA_Eig_gest_iu_opc_var4(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_iu_opt_var4.c:282
FLA_Error FLA_Eig_gest_iu_opz_var4(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_iu_opt_var4.c:373
FLA_Error FLA_Eig_gest_iu_opd_var4(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_iu_opt_var4.c:191
FLA_Error FLA_Eig_gest_iu_ops_var4(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_iu_opt_var4.c:100
FLA_Error FLA_Part_1x2(FLA_Obj A, FLA_Obj *A1, FLA_Obj *A2, dim_t nb, FLA_Side side)
Definition FLA_View.c:110
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
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_iu_opc_var4(), FLA_Eig_gest_iu_opd_var4(), FLA_Eig_gest_iu_ops_var4(), FLA_Eig_gest_iu_opz_var4(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Part_1x2(), and i.

Referenced by FLA_Eig_gest_iu().

◆ FLA_Eig_gest_iu_opz_var4()

FLA_Error FLA_Eig_gest_iu_opz_var4 ( 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 
)
377{
380 int i;
381
382 for ( i = 0; i < m_AB; ++i )
383 {
384 dcomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
385 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
386 dcomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
387 dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
388 dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
389
390 dcomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
391 dcomplex* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
392
394
395 int m_ahead = m_AB - i - 1;
396 int m_behind = i;
397
398 /*------------------------------------------------------------*/
399
400 // FLA_Inv_scal_external( beta11, a01 );
402 m_behind,
403 beta11,
404 a01, rs_A );
405
406 // FLA_Ger_external( FLA_MINUS_ONE, a01, b12t, A02 );
409 m_behind,
410 m_ahead,
411 buff_m1,
412 a01, rs_A,
413 b12t, cs_B,
414 A02, rs_A, cs_A );
415
416 // FLA_Inv_scal_external( beta11, alpha11 );
417 // FLA_Inv_scal_external( beta11, alpha11 );
420
421 // FLA_Copy_external( alpha11, psi11 );
422 // FLA_Scal_external( FLA_MINUS_ONE_HALF, psi11 );
424
425 // FLA_Inv_scal_external( beta11, a12t );
427 m_ahead,
428 beta11,
429 a12t, cs_A );
430
431 // FLA_Axpy_external( psi11, b12t, a12t );
433 m_ahead,
434 &psi11,
435 b12t, cs_B,
436 a12t, cs_A );
437
438 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
439 // FLA_MINUS_ONE, a12t, b12t, A22 );
442 m_ahead,
443 buff_m1,
444 a12t, cs_A,
445 b12t, cs_B,
446 A22, rs_A, cs_A );
447
448 // FLA_Axpy_external( psi11, b12t, a12t );
450 m_ahead,
451 &psi11,
452 b12t, cs_B,
453 a12t, cs_A );
454
455 /*------------------------------------------------------------*/
456
457 }
458
459 return FLA_SUCCESS;
460}
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_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_zher2(uplo1_t uplo, conj1_t conj, int m, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *a, int a_rs, int a_cs)
Definition bl1_her2.c:121
void bl1_zinvscalv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx)
Definition bl1_invscalv.c:78

References bl1_zaxpyv(), bl1_zger(), bl1_zher2(), bl1_zinvscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_MINUS_ONE_HALF, and i.

Referenced by FLA_Eig_gest_iu_opt_var4().