libflame revision_anchor
Functions
FLA_Eig_gest_nl_opt_var4.c File Reference

(r)

Functions

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

FLA_Error FLA_Eig_gest_nl_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 
)
287{
290 int i;
291
292 for ( i = 0; i < m_AB; ++i )
293 {
294 scomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
295 scomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
296 scomplex* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
297 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
298 scomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
299
300 scomplex* b10t = buff_B + (0 )*cs_B + (i )*rs_B;
301 scomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
302
304
305 int m_ahead = m_AB - i - 1;
306 int m_behind = i;
307
308 /*------------------------------------------------------------*/
309
310 // FLA_Copy_external( alpha11, psi11 );
311 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
313
314 // FLA_Axpy_external( psi11, b10t, a10t );
316 m_behind,
317 &psi11,
318 b10t, cs_B,
319 a10t, cs_A );
320
321 // FLA_Her2c_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
322 // FLA_ONE, a10t, b10t, A00 );
325 m_behind,
326 buff_1,
327 a10t, cs_A,
328 b10t, cs_B,
329 A00, rs_A, cs_A );
330
331 // FLA_Axpy_external( psi11, b10t, a10t );
333 m_behind,
334 &psi11,
335 b10t, cs_B,
336 a10t, cs_A );
337
338 // FLA_Scal_external( beta11, a10t );
340 m_behind,
341 beta11,
342 a10t, cs_A );
343
344 // FLA_Scal_external( beta11, alpha11 );
345 // FLA_Scal_external( beta11, alpha11 );
348
349 // FLA_Ger_external( FLA_ONE, a21, b10t, A20 );
352 m_ahead,
353 m_behind,
354 buff_1,
355 a21, rs_A,
356 b10t, cs_B,
357 A20, rs_A, cs_A );
358
359 // FLA_Scal_external( beta11, a21 );
361 m_ahead,
362 beta11,
363 a21, rs_A );
364
365 /*------------------------------------------------------------*/
366
367 }
368
369 return FLA_SUCCESS;
370}
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_LOWER_TRIANGULAR
Definition blis_type_defs.h:62
@ 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_cscalv(), BLIS1_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nl_opt_var4().

◆ FLA_Eig_gest_nl_opd_var4()

FLA_Error FLA_Eig_gest_nl_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* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
205 double* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
206 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
207 double* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
208
209 double* b10t = buff_B + (0 )*cs_B + (i )*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, b10t, a10t );
225 m_behind,
226 &psi11,
227 b10t, cs_B,
228 a10t, cs_A );
229
230 // FLA_Her2c_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
231 // FLA_ONE, a10t, b10t, A00 );
234 m_behind,
235 buff_1,
236 a10t, cs_A,
237 b10t, cs_B,
238 A00, rs_A, cs_A );
239
240 // FLA_Axpy_external( psi11, b10t, a10t );
242 m_behind,
243 &psi11,
244 b10t, cs_B,
245 a10t, cs_A );
246
247 // FLA_Scal_external( beta11, a10t );
249 m_behind,
250 beta11,
251 a10t, cs_A );
252
253 // FLA_Scal_external( beta11, alpha11 );
254 // FLA_Scal_external( beta11, alpha11 );
257
258 // FLA_Ger_external( FLA_ONE, a21, b10t, A20 );
261 m_ahead,
262 m_behind,
263 buff_1,
264 a21, rs_A,
265 b10t, cs_B,
266 A20, rs_A, cs_A );
267
268 // FLA_Scal_external( beta11, a21 );
270 m_ahead,
271 beta11,
272 a21, rs_A );
273
274 /*------------------------------------------------------------*/
275
276 }
277
278 return FLA_SUCCESS;
279}
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_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nl_opt_var4().

◆ FLA_Eig_gest_nl_ops_var4()

FLA_Error FLA_Eig_gest_nl_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 
)
105{
106 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
108 int i;
109
110 for ( i = 0; i < m_AB; ++i )
111 {
112 float* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
113 float* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
114 float* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
115 float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
116 float* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
117
118 float* b10t = buff_B + (0 )*cs_B + (i )*rs_B;
119 float* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
120
121 float psi11;
122
123 int m_ahead = m_AB - i - 1;
124 int m_behind = i;
125
126 /*------------------------------------------------------------*/
127
128 // FLA_Copy_external( alpha11, psi11 );
129 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
131
132 // FLA_Axpy_external( psi11, b10t, a10t );
134 m_behind,
135 &psi11,
136 b10t, cs_B,
137 a10t, cs_A );
138
139 // FLA_Her2c_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
140 // FLA_ONE, a10t, b10t, A00 );
143 m_behind,
144 buff_1,
145 a10t, cs_A,
146 b10t, cs_B,
147 A00, rs_A, cs_A );
148
149 // FLA_Axpy_external( psi11, b10t, a10t );
151 m_behind,
152 &psi11,
153 b10t, cs_B,
154 a10t, cs_A );
155
156 // FLA_Scal_external( beta11, a10t );
158 m_behind,
159 beta11,
160 a10t, cs_A );
161
162 // FLA_Scal_external( beta11, alpha11 );
163 // FLA_Scal_external( beta11, alpha11 );
166
167 // FLA_Ger_external( FLA_ONE, a21, b10t, A20 );
170 m_ahead,
171 m_behind,
172 buff_1,
173 a21, rs_A,
174 b10t, cs_B,
175 A20, rs_A, cs_A );
176
177 // FLA_Scal_external( beta11, a21 );
179 m_ahead,
180 beta11,
181 a21, rs_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_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nl_opt_var4().

◆ FLA_Eig_gest_nl_opt_var4()

FLA_Error FLA_Eig_gest_nl_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 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_nl_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_nl_opt_var4.c:374
FLA_Error FLA_Eig_gest_nl_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_nl_opt_var4.c:101
FLA_Error FLA_Eig_gest_nl_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_nl_opt_var4.c:283
FLA_Error FLA_Eig_gest_nl_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_nl_opt_var4.c:192
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_nl_opc_var4(), FLA_Eig_gest_nl_opd_var4(), FLA_Eig_gest_nl_ops_var4(), FLA_Eig_gest_nl_opz_var4(), 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_nl().

◆ FLA_Eig_gest_nl_opz_var4()

FLA_Error FLA_Eig_gest_nl_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 
)
378{
381 int i;
382
383 for ( i = 0; i < m_AB; ++i )
384 {
385 dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
386 dcomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
387 dcomplex* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
388 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
389 dcomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
390
391 dcomplex* b10t = buff_B + (0 )*cs_B + (i )*rs_B;
392 dcomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
393
395
396 int m_ahead = m_AB - i - 1;
397 int m_behind = i;
398
399 /*------------------------------------------------------------*/
400
401 // FLA_Copy_external( alpha11, psi11 );
402 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
404
405 // FLA_Axpy_external( psi11, b10t, a10t );
407 m_behind,
408 &psi11,
409 b10t, cs_B,
410 a10t, cs_A );
411
412 // FLA_Her2c_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
413 // FLA_ONE, a10t, b10t, A00 );
416 m_behind,
417 buff_1,
418 a10t, cs_A,
419 b10t, cs_B,
420 A00, rs_A, cs_A );
421
422 // FLA_Axpy_external( psi11, b10t, a10t );
424 m_behind,
425 &psi11,
426 b10t, cs_B,
427 a10t, cs_A );
428
429 // FLA_Scal_external( beta11, a10t );
431 m_behind,
432 beta11,
433 a10t, cs_A );
434
435 // FLA_Scal_external( beta11, alpha11 );
436 // FLA_Scal_external( beta11, alpha11 );
439
440 // FLA_Ger_external( FLA_ONE, a21, b10t, A20 );
443 m_ahead,
444 m_behind,
445 buff_1,
446 a21, rs_A,
447 b10t, cs_B,
448 A20, rs_A, cs_A );
449
450 // FLA_Scal_external( beta11, a21 );
452 m_ahead,
453 beta11,
454 a21, rs_A );
455
456 /*------------------------------------------------------------*/
457
458 }
459
460 return FLA_SUCCESS;
461}
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_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nl_opt_var4().