libflame revision_anchor
Functions
FLA_Eig_gest_nl_opt_var2.c File Reference

(r)

Functions

FLA_Error FLA_Eig_gest_nl_opt_var2 (FLA_Obj A, FLA_Obj Y, FLA_Obj B)
 
FLA_Error FLA_Eig_gest_nl_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_nl_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_nl_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_nl_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_nl_opc_var2()

FLA_Error FLA_Eig_gest_nl_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 
)
304{
308 int i;
309
310 for ( i = 0; i < m_AB; ++i )
311 {
312 scomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
313 scomplex* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
314 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
315 scomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
316 scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
317
318 scomplex* y21 = buff_y + (i+1)*inc_y;
319
320 scomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
321 scomplex* b21 = buff_B + (i )*cs_B + (i+1)*rs_B;
322
323 int m_ahead = m_AB - i - 1;
324 int m_behind = i;
325
326 /*------------------------------------------------------------*/
327
328 // FLA_Scal_external( beta11, a10t );
330 m_behind,
331 beta11,
332 a10t, cs_A );
333
334 // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE,
335 // FLA_ONE, A20, b21, FLA_ONE, a10t );
338 m_ahead,
339 m_behind,
340 buff_1,
341 A20, rs_A, cs_A,
342 b21, rs_B,
343 buff_1,
344 a10t, cs_A );
345
346 // FLA_Hemv_external( FLA_LOWER_TRIANGULAR,
347 // FLA_ONE, A22, b21, FLA_ZERO, y21_l );
350 m_ahead,
351 buff_1,
352 A22, rs_A, cs_A,
353 b21, rs_B,
354 buff_0,
355 y21, inc_y );
356
357 // FLA_Scal_external( beta11, a21 );
359 m_ahead,
360 beta11,
361 a21, rs_A );
362
363 // FLA_Axpy_external( FLA_ONE_HALF, y21_l, a21 );
365 m_ahead,
366 buff_1h,
367 y21, inc_y,
368 a21, rs_A );
369
370 // FLA_Scal_external( beta11, alpha11 );
371 // FLA_Scal_external( beta11, alpha11 );
374
375 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_ONE, a21, b21, FLA_ONE, alpha11 );
377 m_ahead,
378 buff_1,
379 a21, rs_A,
380 b21, rs_B,
381 buff_1,
382 alpha11 );
383
384 // FLA_Axpy_external( FLA_ONE_HALF, y21_l, a21 );
386 m_ahead,
387 buff_1h,
388 y21, inc_y,
389 a21, rs_A );
390
391 /*------------------------------------------------------------*/
392
393 }
394
395 return FLA_SUCCESS;
396}
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_LOWER_TRIANGULAR
Definition blis_type_defs.h:62
@ BLIS1_TRANSPOSE
Definition blis_type_defs.h:55
@ 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_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_nl_opt_var2().

◆ FLA_Eig_gest_nl_opd_var2()

FLA_Error FLA_Eig_gest_nl_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 
)
204{
205 double* buff_0 = FLA_DOUBLE_PTR( FLA_ZERO );
206 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
208 int i;
209
210 for ( i = 0; i < m_AB; ++i )
211 {
212 double* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
213 double* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
214 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
215 double* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
216 double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
217
218 double* y21 = buff_y + (i+1)*inc_y;
219
220 double* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
221 double* b21 = buff_B + (i )*cs_B + (i+1)*rs_B;
222
223 int m_ahead = m_AB - i - 1;
224 int m_behind = i;
225
226 /*------------------------------------------------------------*/
227
228 // FLA_Scal_external( beta11, a10t );
230 m_behind,
231 beta11,
232 a10t, cs_A );
233
234 // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE,
235 // FLA_ONE, A20, b21, FLA_ONE, a10t );
238 m_ahead,
239 m_behind,
240 buff_1,
241 A20, rs_A, cs_A,
242 b21, rs_B,
243 buff_1,
244 a10t, cs_A );
245
246 // FLA_Hemv_external( FLA_LOWER_TRIANGULAR,
247 // FLA_ONE, A22, b21, FLA_ZERO, y21_l );
250 m_ahead,
251 buff_1,
252 A22, rs_A, cs_A,
253 b21, rs_B,
254 buff_0,
255 y21, inc_y );
256
257 // FLA_Scal_external( beta11, a21 );
259 m_ahead,
260 beta11,
261 a21, rs_A );
262
263 // FLA_Axpy_external( FLA_ONE_HALF, y21_l, a21 );
265 m_ahead,
266 buff_1h,
267 y21, inc_y,
268 a21, rs_A );
269
270 // FLA_Scal_external( beta11, alpha11 );
271 // FLA_Scal_external( beta11, alpha11 );
274
275 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_ONE, a21, b21, FLA_ONE, alpha11 );
277 m_ahead,
278 buff_1,
279 a21, rs_A,
280 b21, rs_B,
281 buff_1,
282 alpha11 );
283
284 // FLA_Axpy_external( FLA_ONE_HALF, y21_l, a21 );
286 m_ahead,
287 buff_1h,
288 y21, inc_y,
289 a21, rs_A );
290
291 /*------------------------------------------------------------*/
292
293 }
294
295 return FLA_SUCCESS;
296}
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_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_nl_opt_var2().

◆ FLA_Eig_gest_nl_ops_var2()

FLA_Error FLA_Eig_gest_nl_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 
)
104{
105 float* buff_0 = FLA_FLOAT_PTR( FLA_ZERO );
106 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
108 int i;
109
110 for ( i = 0; i < m_AB; ++i )
111 {
112 float* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
113 float* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
114 float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
115 float* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
116 float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
117
118 float* y21 = buff_y + (i+1)*inc_y;
119
120 float* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
121 float* b21 = buff_B + (i )*cs_B + (i+1)*rs_B;
122
123 int m_ahead = m_AB - i - 1;
124 int m_behind = i;
125
126 /*------------------------------------------------------------*/
127
128 // FLA_Scal_external( beta11, a10t );
130 m_behind,
131 beta11,
132 a10t, cs_A );
133
134 // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE,
135 // FLA_ONE, A20, b21, FLA_ONE, a10t );
138 m_ahead,
139 m_behind,
140 buff_1,
141 A20, rs_A, cs_A,
142 b21, rs_B,
143 buff_1,
144 a10t, cs_A );
145
146 // FLA_Hemv_external( FLA_LOWER_TRIANGULAR,
147 // FLA_ONE, A22, b21, FLA_ZERO, y21_l );
150 m_ahead,
151 buff_1,
152 A22, rs_A, cs_A,
153 b21, rs_B,
154 buff_0,
155 y21, inc_y );
156
157 // FLA_Scal_external( beta11, a21 );
159 m_ahead,
160 beta11,
161 a21, rs_A );
162
163 // FLA_Axpy_external( FLA_ONE_HALF, y21_l, a21 );
165 m_ahead,
166 buff_1h,
167 y21, inc_y,
168 a21, rs_A );
169
170 // FLA_Scal_external( beta11, alpha11 );
171 // FLA_Scal_external( beta11, alpha11 );
174
175 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_ONE, a21, b21, FLA_ONE, alpha11 );
177 m_ahead,
178 buff_1,
179 a21, rs_A,
180 b21, rs_B,
181 buff_1,
182 alpha11 );
183
184 // FLA_Axpy_external( FLA_ONE_HALF, y21_l, a21 );
186 m_ahead,
187 buff_1h,
188 y21, inc_y,
189 a21, rs_A );
190
191 /*------------------------------------------------------------*/
192
193 }
194
195 return FLA_SUCCESS;
196}
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_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_nl_opt_var2().

◆ FLA_Eig_gest_nl_opt_var2()

FLA_Error FLA_Eig_gest_nl_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 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_nl_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_nl_opt_var2.c:400
FLA_Error FLA_Eig_gest_nl_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_nl_opt_var2.c:200
FLA_Error FLA_Eig_gest_nl_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_nl_opt_var2.c:300
FLA_Error FLA_Eig_gest_nl_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_nl_opt_var2.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_nl_opc_var2(), FLA_Eig_gest_nl_opd_var2(), FLA_Eig_gest_nl_ops_var2(), FLA_Eig_gest_nl_opz_var2(), 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_nl().

◆ FLA_Eig_gest_nl_opz_var2()

FLA_Error FLA_Eig_gest_nl_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 
)
404{
408 int i;
409
410 for ( i = 0; i < m_AB; ++i )
411 {
412 dcomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
413 dcomplex* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
414 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
415 dcomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
416 dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
417
418 dcomplex* y21 = buff_y + (i+1)*inc_y;
419
420 dcomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
421 dcomplex* b21 = buff_B + (i )*cs_B + (i+1)*rs_B;
422
423 int m_ahead = m_AB - i - 1;
424 int m_behind = i;
425
426 /*------------------------------------------------------------*/
427
428 // FLA_Scal_external( beta11, a10t );
430 m_behind,
431 beta11,
432 a10t, cs_A );
433
434 // FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE,
435 // FLA_ONE, A20, b21, FLA_ONE, a10t );
438 m_ahead,
439 m_behind,
440 buff_1,
441 A20, rs_A, cs_A,
442 b21, rs_B,
443 buff_1,
444 a10t, cs_A );
445
446 // FLA_Hemv_external( FLA_LOWER_TRIANGULAR,
447 // FLA_ONE, A22, b21, FLA_ZERO, y21_l );
450 m_ahead,
451 buff_1,
452 A22, rs_A, cs_A,
453 b21, rs_B,
454 buff_0,
455 y21, inc_y );
456
457 // FLA_Scal_external( beta11, a21 );
459 m_ahead,
460 beta11,
461 a21, rs_A );
462
463 // FLA_Axpy_external( FLA_ONE_HALF, y21_l, a21 );
465 m_ahead,
466 buff_1h,
467 y21, inc_y,
468 a21, rs_A );
469
470 // FLA_Scal_external( beta11, alpha11 );
471 // FLA_Scal_external( beta11, alpha11 );
474
475 // FLA_Dot2cs_external( FLA_CONJUGATE, FLA_ONE, a21, b21, FLA_ONE, alpha11 );
477 m_ahead,
478 buff_1,
479 a21, rs_A,
480 b21, rs_B,
481 buff_1,
482 alpha11 );
483
484 // FLA_Axpy_external( FLA_ONE_HALF, y21_l, a21 );
486 m_ahead,
487 buff_1h,
488 y21, inc_y,
489 a21, rs_A );
490
491 /*------------------------------------------------------------*/
492
493 }
494
495 return FLA_SUCCESS;
496}
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_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, FLA_ONE, FLA_ONE_HALF, FLA_ZERO, and i.

Referenced by FLA_Eig_gest_nl_opt_var2().