libflame revision_anchor
Functions
FLA_Eig_gest_nu_opt_var4.c File Reference

(r)

Functions

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

FLA_Error FLA_Eig_gest_nu_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* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
294 scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
295 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
296 scomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
297 scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
298
299 scomplex* b01 = buff_B + (i )*cs_B + (0 )*rs_B;
300 scomplex* beta11 = buff_B + (i )*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_Copy_external( alpha11, psi11 );
310 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
312
313 // FLA_Axpy_external( psi11, b01, a01 );
315 m_behind,
316 &psi11,
317 b01, rs_B,
318 a01, rs_A );
319
320 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_NO_CONJUGATE,
321 // FLA_ONE, a01, b01, A00 );
324 m_behind,
325 buff_1,
326 a01, rs_A,
327 b01, rs_B,
328 A00, rs_A, cs_A );
329
330 // FLA_Axpy_external( psi11, b01, a01 );
332 m_behind,
333 &psi11,
334 b01, rs_B,
335 a01, rs_A );
336
337 // FLA_Scal_external( beta11, a01 );
339 m_behind,
340 beta11,
341 a01, rs_A );
342
343 // FLA_Scal_external( beta11, alpha11 );
346
347 // FLA_Ger_external( FLA_ONE, b01, a12t, A02 );
350 m_behind,
351 m_ahead,
352 buff_1,
353 b01, rs_B,
354 a12t, cs_A,
355 A02, rs_A, cs_A );
356
357 // FLA_Scal_external( beta11, a12t );
359 m_ahead,
360 beta11,
361 a12t, cs_A );
362
363 /*------------------------------------------------------------*/
364
365 }
366
367 return FLA_SUCCESS;
368}
FLA_Obj FLA_ONE_HALF
Definition FLA_Init.c:19
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_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_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_CONJUGATE
Definition blis_type_defs.h:81
Definition blis_type_defs.h:133

References bl1_caxpyv(), bl1_cger(), bl1_cher2(), bl1_cscalv(), BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nu_opt_var4().

◆ FLA_Eig_gest_nu_opd_var4()

FLA_Error FLA_Eig_gest_nu_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 
)
196{
197 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
199 int i;
200
201 for ( i = 0; i < m_AB; ++i )
202 {
203 double* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
204 double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
205 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
206 double* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
207 double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
208
209 double* b01 = buff_B + (i )*cs_B + (0 )*rs_B;
210 double* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
211
212 double psi11;
213
214 int m_ahead = m_AB - i - 1;
215 int m_behind = i;
216
217 /*------------------------------------------------------------*/
218
219 // FLA_Copy_external( alpha11, psi11 );
220 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
222
223 // FLA_Axpy_external( psi11, b01, a01 );
225 m_behind,
226 &psi11,
227 b01, rs_B,
228 a01, rs_A );
229
230 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_NO_CONJUGATE,
231 // FLA_ONE, a01, b01, A00 );
234 m_behind,
235 buff_1,
236 a01, rs_A,
237 b01, rs_B,
238 A00, rs_A, cs_A );
239
240 // FLA_Axpy_external( psi11, b01, a01 );
242 m_behind,
243 &psi11,
244 b01, rs_B,
245 a01, rs_A );
246
247 // FLA_Scal_external( beta11, a01 );
249 m_behind,
250 beta11,
251 a01, rs_A );
252
253 // FLA_Scal_external( beta11, alpha11 );
256
257 // FLA_Ger_external( FLA_ONE, b01, a12t, A02 );
260 m_behind,
261 m_ahead,
262 buff_1,
263 b01, rs_B,
264 a12t, cs_A,
265 A02, rs_A, cs_A );
266
267 // FLA_Scal_external( beta11, a12t );
269 m_ahead,
270 beta11,
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_dscalv(conj1_t conj, int n, double *alpha, double *x, int incx)
Definition bl1_scalv.c:24

References bl1_daxpyv(), bl1_dger(), bl1_dher2(), bl1_dscalv(), BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nu_opt_var4().

◆ FLA_Eig_gest_nu_ops_var4()

FLA_Error FLA_Eig_gest_nu_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 
)
106{
107 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
109 int i;
110
111 for ( i = 0; i < m_AB; ++i )
112 {
113 float* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
114 float* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
115 float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
116 float* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
117 float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
118
119 float* b01 = buff_B + (i )*cs_B + (0 )*rs_B;
120 float* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
121
122 float psi11;
123
124 int m_ahead = m_AB - i - 1;
125 int m_behind = i;
126
127 /*------------------------------------------------------------*/
128
129 // FLA_Copy_external( alpha11, psi11 );
130 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
132
133 // FLA_Axpy_external( psi11, b01, a01 );
135 m_behind,
136 &psi11,
137 b01, rs_B,
138 a01, rs_A );
139
140 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_NO_CONJUGATE,
141 // FLA_ONE, a01, b01, A00 );
144 m_behind,
145 buff_1,
146 a01, rs_A,
147 b01, rs_B,
148 A00, rs_A, cs_A );
149
150 // FLA_Axpy_external( psi11, b01, a01 );
152 m_behind,
153 &psi11,
154 b01, rs_B,
155 a01, rs_A );
156
157 // FLA_Scal_external( beta11, a01 );
159 m_behind,
160 beta11,
161 a01, rs_A );
162
163 // FLA_Scal_external( beta11, alpha11 );
166
167 // FLA_Ger_external( FLA_ONE, b01, a12t, A02 );
170 m_behind,
171 m_ahead,
172 buff_1,
173 b01, rs_B,
174 a12t, cs_A,
175 A02, rs_A, cs_A );
176
177 // FLA_Scal_external( beta11, a12t );
179 m_ahead,
180 beta11,
181 a12t, cs_A );
182
183 /*------------------------------------------------------------*/
184
185 }
186
187 return FLA_SUCCESS;
188}
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_sscalv(conj1_t conj, int n, float *alpha, float *x, int incx)
Definition bl1_scalv.c:13

References bl1_saxpyv(), bl1_sger(), bl1_sher2(), bl1_sscalv(), BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nu_opt_var4().

◆ FLA_Eig_gest_nu_opt_var4()

FLA_Error FLA_Eig_gest_nu_opt_var4 ( FLA_Obj  A,
FLA_Obj  Y,
FLA_Obj  B 
)
16{
17 FLA_Datatype datatype;
18 int m_AB;
19 int rs_A, cs_A;
20 int rs_B, cs_B;
21 int inc_y;
22 FLA_Obj yL, yR;
23
24 datatype = FLA_Obj_datatype( A );
25
27
30
33
34 FLA_Part_1x2( Y, &yL, &yR, 1, FLA_LEFT );
35
37
38 switch ( datatype )
39 {
40 case FLA_FLOAT:
41 {
42 float* buff_A = FLA_FLOAT_PTR( A );
43 float* buff_y = FLA_FLOAT_PTR( yL );
44 float* buff_B = FLA_FLOAT_PTR( B );
45
49 buff_B, rs_B, cs_B );
50
51 break;
52 }
53
54 case FLA_DOUBLE:
55 {
56 double* buff_A = FLA_DOUBLE_PTR( A );
57 double* buff_y = FLA_DOUBLE_PTR( yL );
58 double* buff_B = FLA_DOUBLE_PTR( B );
59
63 buff_B, rs_B, cs_B );
64
65 break;
66 }
67
68 case FLA_COMPLEX:
69 {
73
77 buff_B, rs_B, cs_B );
78
79 break;
80 }
81
83 {
87
91 buff_B, rs_B, cs_B );
92
93 break;
94 }
95 }
96
97 return FLA_SUCCESS;
98}
FLA_Error FLA_Eig_gest_nu_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_nu_opt_var4.c:372
FLA_Error FLA_Eig_gest_nu_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_nu_opt_var4.c:192
FLA_Error FLA_Eig_gest_nu_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_nu_opt_var4.c:282
FLA_Error FLA_Eig_gest_nu_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_nu_opt_var4.c:102
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_nu_opc_var4(), FLA_Eig_gest_nu_opd_var4(), FLA_Eig_gest_nu_ops_var4(), FLA_Eig_gest_nu_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_nu().

◆ FLA_Eig_gest_nu_opz_var4()

FLA_Error FLA_Eig_gest_nu_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 
)
376{
379 int i;
380
381 for ( i = 0; i < m_AB; ++i )
382 {
383 dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
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
389 dcomplex* b01 = buff_B + (i )*cs_B + (0 )*rs_B;
390 dcomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
391
393
394 int m_ahead = m_AB - i - 1;
395 int m_behind = i;
396
397 /*------------------------------------------------------------*/
398
399 // FLA_Copy_external( alpha11, psi11 );
400 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
402
403 // FLA_Axpy_external( psi11, b01, a01 );
405 m_behind,
406 &psi11,
407 b01, rs_B,
408 a01, rs_A );
409
410 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_NO_CONJUGATE,
411 // FLA_ONE, a01, b01, A00 );
414 m_behind,
415 buff_1,
416 a01, rs_A,
417 b01, rs_B,
418 A00, rs_A, cs_A );
419
420 // FLA_Axpy_external( psi11, b01, a01 );
422 m_behind,
423 &psi11,
424 b01, rs_B,
425 a01, rs_A );
426
427 // FLA_Scal_external( beta11, a01 );
429 m_behind,
430 beta11,
431 a01, rs_A );
432
433 // FLA_Scal_external( beta11, alpha11 );
436
437 // FLA_Ger_external( FLA_ONE, b01, a12t, A02 );
440 m_behind,
441 m_ahead,
442 buff_1,
443 b01, rs_B,
444 a12t, cs_A,
445 A02, rs_A, cs_A );
446
447 // FLA_Scal_external( beta11, a12t );
449 m_ahead,
450 beta11,
451 a12t, cs_A );
452
453 /*------------------------------------------------------------*/
454
455 }
456
457 return FLA_SUCCESS;
458}
void bl1_zaxpyv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy)
Definition bl1_axpyv.c:60
bl1_zscals(beta, rho_yz)
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_zscalv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx)
Definition bl1_scalv.c:72

References bl1_zaxpyv(), bl1_zger(), bl1_zher2(), bl1_zscals(), bl1_zscalv(), BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nu_opt_var4().