libflame revision_anchor
Functions
FLA_Eig_gest_nu_opt_var2.c File Reference

(r)

Functions

FLA_Error FLA_Eig_gest_nu_opt_var2 (FLA_Obj A, FLA_Obj Y, FLA_Obj B)
 
FLA_Error FLA_Eig_gest_nu_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_nu_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_nu_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_nu_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_nu_opc_var2()

FLA_Error FLA_Eig_gest_nu_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 
)
305{
309 int i;
310
311 for ( i = 0; i < m_AB; ++i )
312 {
313 scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
314 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
315 scomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
316 scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
317 scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
318
319 scomplex* y12t = buff_y + (i+1)*inc_y;
320
321 scomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
322 scomplex* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
323
324 int m_ahead = m_AB - i - 1;
325 int m_behind = i;
326
327 /*------------------------------------------------------------*/
328
329 // FLA_Scal_external( beta11, a01 );
331 m_behind,
332 beta11,
333 a01, rs_A );
334
335 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE,
336 // FLA_ONE, A02, b12t, FLA_ONE, a01 );
339 m_behind,
340 m_ahead,
341 buff_1,
342 A02, rs_A, cs_A,
343 b12t, cs_B,
344 buff_1,
345 a01, rs_A );
346
347 // FLA_Hemvc_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
348 // FLA_ONE, A22, b12t, FLA_ZERO, y12t_t );
351 m_ahead,
352 buff_1,
353 A22, rs_A, cs_A,
354 b12t, cs_B,
355 buff_0,
356 y12t, inc_y );
357
358 // FLA_Scal_external( beta11, a12t );
360 m_ahead,
361 beta11,
362 a12t, cs_A );
363
364 // FLA_Axpy_external( FLA_ONE_HALF, y12t_t, a12t );
366 m_ahead,
367 buff_1h,
368 y12t, inc_y,
369 a12t, cs_A );
370
371 // FLA_Scal_external( beta11, alpha11 );
372 // FLA_Scal_external( beta11, alpha11 );
375
376 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_ONE, a12t, b12t, FLA_ONE, alpha11 );
378 m_ahead,
379 buff_1,
380 a12t, cs_A,
381 b12t, cs_B,
382 buff_1,
383 alpha11 );
384
385 // FLA_Axpy_external( FLA_ONE_HALF, y12t_t, a12t );
387 m_ahead,
388 buff_1h,
389 y12t, inc_y,
390 a12t, cs_A );
391
392 /*------------------------------------------------------------*/
393
394 }
395
396 return FLA_SUCCESS;
397}
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_cscalv(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx)
Definition bl1_scalv.c:46
@ BLIS1_UPPER_TRIANGULAR
Definition blis_type_defs.h:63
@ 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_cscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_nu_opt_var2().

◆ FLA_Eig_gest_nu_opd_var2()

FLA_Error FLA_Eig_gest_nu_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 
)
205{
206 double* buff_0 = FLA_DOUBLE_PTR( FLA_ZERO );
207 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
209 int i;
210
211 for ( i = 0; i < m_AB; ++i )
212 {
213 double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
214 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
215 double* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
216 double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
217 double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
218
219 double* y12t = buff_y + (i+1)*inc_y;
220
221 double* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
222 double* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
223
224 int m_ahead = m_AB - i - 1;
225 int m_behind = i;
226
227 /*------------------------------------------------------------*/
228
229 // FLA_Scal_external( beta11, a01 );
231 m_behind,
232 beta11,
233 a01, rs_A );
234
235 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE,
236 // FLA_ONE, A02, b12t, FLA_ONE, a01 );
239 m_behind,
240 m_ahead,
241 buff_1,
242 A02, rs_A, cs_A,
243 b12t, cs_B,
244 buff_1,
245 a01, rs_A );
246
247 // FLA_Hemvc_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
248 // FLA_ONE, A22, b12t, FLA_ZERO, y12t_t );
251 m_ahead,
252 buff_1,
253 A22, rs_A, cs_A,
254 b12t, cs_B,
255 buff_0,
256 y12t, inc_y );
257
258 // FLA_Scal_external( beta11, a12t );
260 m_ahead,
261 beta11,
262 a12t, cs_A );
263
264 // FLA_Axpy_external( FLA_ONE_HALF, y12t_t, a12t );
266 m_ahead,
267 buff_1h,
268 y12t, inc_y,
269 a12t, cs_A );
270
271 // FLA_Scal_external( beta11, alpha11 );
272 // FLA_Scal_external( beta11, alpha11 );
275
276 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_ONE, a12t, b12t, FLA_ONE, alpha11 );
278 m_ahead,
279 buff_1,
280 a12t, cs_A,
281 b12t, cs_B,
282 buff_1,
283 alpha11 );
284
285 // FLA_Axpy_external( FLA_ONE_HALF, y12t_t, a12t );
287 m_ahead,
288 buff_1h,
289 y12t, inc_y,
290 a12t, cs_A );
291
292 /*------------------------------------------------------------*/
293
294 }
295
296 return FLA_SUCCESS;
297}
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_dscalv(conj1_t conj, int n, double *alpha, double *x, int incx)
Definition bl1_scalv.c:24

References bl1_daxpyv(), bl1_ddot2s(), bl1_dgemv(), bl1_dhemv(), bl1_dscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_nu_opt_var2().

◆ FLA_Eig_gest_nu_ops_var2()

FLA_Error FLA_Eig_gest_nu_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_0 = FLA_FLOAT_PTR( FLA_ZERO );
107 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
109 int i;
110
111 for ( i = 0; i < m_AB; ++i )
112 {
113 float* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
114 float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
115 float* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
116 float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
117 float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
118
119 float* y12t = buff_y + (i+1)*inc_y;
120
121 float* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
122 float* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
123
124 int m_ahead = m_AB - i - 1;
125 int m_behind = i;
126
127 /*------------------------------------------------------------*/
128
129 // FLA_Scal_external( beta11, a01 );
131 m_behind,
132 beta11,
133 a01, rs_A );
134
135 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE,
136 // FLA_ONE, A02, b12t, FLA_ONE, a01 );
139 m_behind,
140 m_ahead,
141 buff_1,
142 A02, rs_A, cs_A,
143 b12t, cs_B,
144 buff_1,
145 a01, rs_A );
146
147 // FLA_Hemvc_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
148 // FLA_ONE, A22, b12t, FLA_ZERO, y12t_t );
151 m_ahead,
152 buff_1,
153 A22, rs_A, cs_A,
154 b12t, cs_B,
155 buff_0,
156 y12t, inc_y );
157
158 // FLA_Scal_external( beta11, a12t );
160 m_ahead,
161 beta11,
162 a12t, cs_A );
163
164 // FLA_Axpy_external( FLA_ONE_HALF, y12t_t, a12t );
166 m_ahead,
167 buff_1h,
168 y12t, inc_y,
169 a12t, cs_A );
170
171 // FLA_Scal_external( beta11, alpha11 );
172 // FLA_Scal_external( beta11, alpha11 );
175
176 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_ONE, a12t, b12t, FLA_ONE, alpha11 );
178 m_ahead,
179 buff_1,
180 a12t, cs_A,
181 b12t, cs_B,
182 buff_1,
183 alpha11 );
184
185 // FLA_Axpy_external( FLA_ONE_HALF, y12t_t, a12t );
187 m_ahead,
188 buff_1h,
189 y12t, inc_y,
190 a12t, cs_A );
191
192 /*------------------------------------------------------------*/
193
194 }
195
196 return FLA_SUCCESS;
197}
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_sscalv(conj1_t conj, int n, float *alpha, float *x, int incx)
Definition bl1_scalv.c:13

References bl1_saxpyv(), bl1_sdot2s(), bl1_sgemv(), bl1_shemv(), bl1_sscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_nu_opt_var2().

◆ FLA_Eig_gest_nu_opt_var2()

FLA_Error FLA_Eig_gest_nu_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_nu_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_nu_opt_var2.c:401
FLA_Error FLA_Eig_gest_nu_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_nu_opt_var2.c:101
FLA_Error FLA_Eig_gest_nu_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_nu_opt_var2.c:201
FLA_Error FLA_Eig_gest_nu_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_nu_opt_var2.c:301
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_nu_opc_var2(), FLA_Eig_gest_nu_opd_var2(), FLA_Eig_gest_nu_ops_var2(), FLA_Eig_gest_nu_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_nu().

◆ FLA_Eig_gest_nu_opz_var2()

FLA_Error FLA_Eig_gest_nu_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 
)
405{
409 int i;
410
411 for ( i = 0; i < m_AB; ++i )
412 {
413 dcomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
414 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
415 dcomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
416 dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
417 dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
418
419 dcomplex* y12t = buff_y + (i+1)*inc_y;
420
421 dcomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
422 dcomplex* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
423
424 int m_ahead = m_AB - i - 1;
425 int m_behind = i;
426
427 /*------------------------------------------------------------*/
428
429 // FLA_Scal_external( beta11, a01 );
431 m_behind,
432 beta11,
433 a01, rs_A );
434
435 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE,
436 // FLA_ONE, A02, b12t, FLA_ONE, a01 );
439 m_behind,
440 m_ahead,
441 buff_1,
442 A02, rs_A, cs_A,
443 b12t, cs_B,
444 buff_1,
445 a01, rs_A );
446
447 // FLA_Hemvc_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
448 // FLA_ONE, A22, b12t, FLA_ZERO, y12t_t );
451 m_ahead,
452 buff_1,
453 A22, rs_A, cs_A,
454 b12t, cs_B,
455 buff_0,
456 y12t, inc_y );
457
458 // FLA_Scal_external( beta11, a12t );
460 m_ahead,
461 beta11,
462 a12t, cs_A );
463
464 // FLA_Axpy_external( FLA_ONE_HALF, y12t_t, a12t );
466 m_ahead,
467 buff_1h,
468 y12t, inc_y,
469 a12t, cs_A );
470
471 // FLA_Scal_external( beta11, alpha11 );
472 // FLA_Scal_external( beta11, alpha11 );
475
476 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_ONE, a12t, b12t, FLA_ONE, alpha11 );
478 m_ahead,
479 buff_1,
480 a12t, cs_A,
481 b12t, cs_B,
482 buff_1,
483 alpha11 );
484
485 // FLA_Axpy_external( FLA_ONE_HALF, y12t_t, a12t );
487 m_ahead,
488 buff_1h,
489 y12t, inc_y,
490 a12t, cs_A );
491
492 /*------------------------------------------------------------*/
493
494 }
495
496 return FLA_SUCCESS;
497}
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
bl1_zscals(beta, rho_yz)
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_zscalv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx)
Definition bl1_scalv.c:72

References bl1_zaxpyv(), bl1_zdot2s(), bl1_zgemv(), bl1_zhemv(), bl1_zscals(), bl1_zscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_nu_opt_var2().