libflame revision_anchor
Functions
FLA_Eig_gest_iu_opt_var5.c File Reference

(r)

Functions

FLA_Error FLA_Eig_gest_iu_opt_var5 (FLA_Obj A, FLA_Obj Y, FLA_Obj B)
 
FLA_Error FLA_Eig_gest_iu_ops_var5 (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_var5 (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_var5 (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_var5 (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_var5()

FLA_Error FLA_Eig_gest_iu_opc_var5 ( 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 
)
268{
271 int i;
272
273 for ( i = 0; i < m_AB; ++i )
274 {
275 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
276 scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
277 scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
278
279 scomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
280 scomplex* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
281 scomplex* B22 = buff_B + (i+1)*cs_B + (i+1)*rs_B;
282
284
285 int m_ahead = m_AB - i - 1;
286
287 /*------------------------------------------------------------*/
288
289 // FLA_Inv_scal_external( beta11, alpha11 );
290 // FLA_Inv_scal_external( beta11, alpha11 );
293
294 // FLA_Copy_external( alpha11, psi11 );
295 // FLA_Scal_external( FLA_MINUS_ONE_HALF, psi11 );
297
298 // FLA_Inv_scal_external( beta11, a12t );
300 m_ahead,
301 beta11,
302 a12t, cs_A );
303
304 // FLA_Axpy_external( psi11, b12t, a12t );
306 m_ahead,
307 &psi11,
308 b12t, cs_B,
309 a12t, cs_A );
310
311 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
312 // FLA_MINUS_ONE, a12t, b12t, A22 );
315 m_ahead,
316 buff_m1,
317 a12t, cs_A,
318 b12t, cs_B,
319 A22, rs_A, cs_A );
320
321 // FLA_Axpy_external( psi11, b12t, a12t );
323 m_ahead,
324 &psi11,
325 b12t, cs_B,
326 a12t, cs_A );
327
328 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG,
329 // B22, a12t );
333 m_ahead,
334 B22, rs_B, cs_B,
335 a12t, cs_A );
336
337 /*------------------------------------------------------------*/
338
339 }
340
341 return FLA_SUCCESS;
342}
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_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
void bl1_ctrsv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx)
Definition bl1_trsv.c:99
@ BLIS1_UPPER_TRIANGULAR
Definition blis_type_defs.h:63
@ BLIS1_NONUNIT_DIAG
Definition blis_type_defs.h:74
@ 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_cher2(), bl1_cinvscalv(), bl1_ctrsv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_MINUS_ONE_HALF, and i.

Referenced by FLA_Eig_gest_iu_opt_var5().

◆ FLA_Eig_gest_iu_opd_var5()

FLA_Error FLA_Eig_gest_iu_opd_var5 ( 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 
)
186{
189 int i;
190
191 for ( i = 0; i < m_AB; ++i )
192 {
193 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
194 double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
195 double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
196
197 double* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
198 double* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
199 double* B22 = buff_B + (i+1)*cs_B + (i+1)*rs_B;
200
201 double psi11;
202
203 int m_ahead = m_AB - i - 1;
204
205 /*------------------------------------------------------------*/
206
207 // FLA_Inv_scal_external( beta11, alpha11 );
208 // FLA_Inv_scal_external( beta11, alpha11 );
211
212 // FLA_Copy_external( alpha11, psi11 );
213 // FLA_Scal_external( FLA_MINUS_ONE_HALF, psi11 );
215
216 // FLA_Inv_scal_external( beta11, a12t );
218 m_ahead,
219 beta11,
220 a12t, cs_A );
221
222 // FLA_Axpy_external( psi11, b12t, a12t );
224 m_ahead,
225 &psi11,
226 b12t, cs_B,
227 a12t, cs_A );
228
229 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
230 // FLA_MINUS_ONE, a12t, b12t, A22 );
233 m_ahead,
234 buff_m1,
235 a12t, cs_A,
236 b12t, cs_B,
237 A22, rs_A, cs_A );
238
239 // FLA_Axpy_external( psi11, b12t, a12t );
241 m_ahead,
242 &psi11,
243 b12t, cs_B,
244 a12t, cs_A );
245
246 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG,
247 // B22, a12t );
251 m_ahead,
252 B22, rs_B, cs_B,
253 a12t, cs_A );
254
255 /*------------------------------------------------------------*/
256
257 }
258
259 return FLA_SUCCESS;
260}
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_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
void bl1_dtrsv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, double *a, int a_rs, int a_cs, double *x, int incx)
Definition bl1_trsv.c:56

References bl1_daxpyv(), bl1_dher2(), bl1_dinvscalv(), bl1_dtrsv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_MINUS_ONE_HALF, and i.

Referenced by FLA_Eig_gest_iu_opt_var5().

◆ FLA_Eig_gest_iu_ops_var5()

FLA_Error FLA_Eig_gest_iu_ops_var5 ( 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* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
112 float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
113 float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
114
115 float* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
116 float* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
117 float* B22 = buff_B + (i+1)*cs_B + (i+1)*rs_B;
118
119 float psi11;
120
121 int m_ahead = m_AB - i - 1;
122
123 /*------------------------------------------------------------*/
124
125 // FLA_Inv_scal_external( beta11, alpha11 );
126 // FLA_Inv_scal_external( beta11, alpha11 );
129
130 // FLA_Copy_external( alpha11, psi11 );
131 // FLA_Scal_external( FLA_MINUS_ONE_HALF, psi11 );
133
134 // FLA_Inv_scal_external( beta11, a12t );
136 m_ahead,
137 beta11,
138 a12t, cs_A );
139
140 // FLA_Axpy_external( psi11, b12t, a12t );
142 m_ahead,
143 &psi11,
144 b12t, cs_B,
145 a12t, cs_A );
146
147 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
148 // FLA_MINUS_ONE, a12t, b12t, A22 );
151 m_ahead,
152 buff_m1,
153 a12t, cs_A,
154 b12t, cs_B,
155 A22, rs_A, cs_A );
156
157 // FLA_Axpy_external( psi11, b12t, a12t );
159 m_ahead,
160 &psi11,
161 b12t, cs_B,
162 a12t, cs_A );
163
164 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG,
165 // B22, a12t );
169 m_ahead,
170 B22, rs_B, cs_B,
171 a12t, cs_A );
172
173 /*------------------------------------------------------------*/
174
175 }
176
177 return FLA_SUCCESS;
178}
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_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
void bl1_strsv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, float *a, int a_rs, int a_cs, float *x, int incx)
Definition bl1_trsv.c:13

References bl1_saxpyv(), bl1_sher2(), bl1_sinvscalv(), bl1_strsv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_MINUS_ONE_HALF, and i.

Referenced by FLA_Eig_gest_iu_opt_var5().

◆ FLA_Eig_gest_iu_opt_var5()

FLA_Error FLA_Eig_gest_iu_opt_var5 ( 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_opz_var5(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_var5.c:346
FLA_Error FLA_Eig_gest_iu_opd_var5(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_var5.c:182
FLA_Error FLA_Eig_gest_iu_ops_var5(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_var5.c:100
FLA_Error FLA_Eig_gest_iu_opc_var5(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_var5.c:264
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_var5(), FLA_Eig_gest_iu_opd_var5(), FLA_Eig_gest_iu_ops_var5(), FLA_Eig_gest_iu_opz_var5(), 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_var5()

FLA_Error FLA_Eig_gest_iu_opz_var5 ( 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 
)
350{
353 int i;
354
355 for ( i = 0; i < m_AB; ++i )
356 {
357 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
358 dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
359 dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
360
361 dcomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
362 dcomplex* b12t = buff_B + (i+1)*cs_B + (i )*rs_B;
363 dcomplex* B22 = buff_B + (i+1)*cs_B + (i+1)*rs_B;
364
366
367 int m_ahead = m_AB - i - 1;
368
369 /*------------------------------------------------------------*/
370
371 // FLA_Inv_scal_external( beta11, alpha11 );
372 // FLA_Inv_scal_external( beta11, alpha11 );
375
376 // FLA_Copy_external( alpha11, psi11 );
377 // FLA_Scal_external( FLA_MINUS_ONE_HALF, psi11 );
379
380 // FLA_Inv_scal_external( beta11, a12t );
382 m_ahead,
383 beta11,
384 a12t, cs_A );
385
386 // FLA_Axpy_external( psi11, b12t, a12t );
388 m_ahead,
389 &psi11,
390 b12t, cs_B,
391 a12t, cs_A );
392
393 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE,
394 // FLA_MINUS_ONE, a12t, b12t, A22 );
397 m_ahead,
398 buff_m1,
399 a12t, cs_A,
400 b12t, cs_B,
401 A22, rs_A, cs_A );
402
403 // FLA_Axpy_external( psi11, b12t, a12t );
405 m_ahead,
406 &psi11,
407 b12t, cs_B,
408 a12t, cs_A );
409
410 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG,
411 // B22, a12t );
415 m_ahead,
416 B22, rs_B, cs_B,
417 a12t, cs_A );
418
419 /*------------------------------------------------------------*/
420
421 }
422
423 return FLA_SUCCESS;
424}
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_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
void bl1_ztrsv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx)
Definition bl1_trsv.c:177

References bl1_zaxpyv(), bl1_zher2(), bl1_zinvscalv(), bl1_ztrsv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_MINUS_ONE_HALF, and i.

Referenced by FLA_Eig_gest_iu_opt_var5().