libflame revision_anchor
Functions
FLA_Eig_gest_nu_opt_var5.c File Reference

(r)

Functions

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

FLA_Error FLA_Eig_gest_nu_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 
)
270{
273 int i;
274
275 for ( i = 0; i < m_AB; ++i )
276 {
277 scomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
278 scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
279 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
280
281 scomplex* B00 = buff_B + (0 )*cs_B + (0 )*rs_B;
282 scomplex* b01 = buff_B + (i )*cs_B + (0 )*rs_B;
283 scomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
284
286
287 int m_behind = i;
288
289 /*------------------------------------------------------------*/
290
291 // FLA_Copy_external( alpha11, psi11 );
292 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
294
295 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_NONUNIT_DIAG,
296 // B00, a01 );
300 m_behind,
301 B00, rs_B, cs_B,
302 a01, rs_A );
303
304 // FLA_Axpy_external( psi11, b01, a01 );
306 m_behind,
307 &psi11,
308 b01, rs_B,
309 a01, rs_A );
310
311 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_NO_CONJUGATE,
312 // FLA_ONE, a01, b01, A00 );
315 m_behind,
316 buff_1,
317 a01, rs_A,
318 b01, rs_B,
319 A00, rs_A, cs_A );
320
321 // FLA_Axpy_external( psi11, b01, a01 );
323 m_behind,
324 &psi11,
325 b01, rs_B,
326 a01, rs_A );
327
328 // FLA_Scal_external( beta11, a01 );
330 m_behind,
331 beta11,
332 a01, rs_A );
333
334 // FLA_Scal_external( beta11, alpha11 );
335 // FLA_Scal_external( beta11, alpha11 );
338
339 /*------------------------------------------------------------*/
340
341 }
342
343 return FLA_SUCCESS;
344}
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_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
void bl1_ctrmv(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_trmv.c:99
@ BLIS1_UPPER_TRIANGULAR
Definition blis_type_defs.h:63
@ BLIS1_NONUNIT_DIAG
Definition blis_type_defs.h:74
@ BLIS1_NO_TRANSPOSE
Definition blis_type_defs.h:54
@ BLIS1_NO_CONJUGATE
Definition blis_type_defs.h:81
Definition blis_type_defs.h:133

References bl1_caxpyv(), bl1_cher2(), bl1_cscalv(), bl1_ctrmv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nu_opt_var5().

◆ FLA_Eig_gest_nu_opd_var5()

FLA_Error FLA_Eig_gest_nu_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 
)
188{
189 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
191 int i;
192
193 for ( i = 0; i < m_AB; ++i )
194 {
195 double* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
196 double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
197 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
198
199 double* B00 = buff_B + (0 )*cs_B + (0 )*rs_B;
200 double* b01 = buff_B + (i )*cs_B + (0 )*rs_B;
201 double* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
202
203 double psi11;
204
205 int m_behind = i;
206
207 /*------------------------------------------------------------*/
208
209 // FLA_Copy_external( alpha11, psi11 );
210 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
212
213 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_NONUNIT_DIAG,
214 // B00, a01 );
218 m_behind,
219 B00, rs_B, cs_B,
220 a01, rs_A );
221
222 // FLA_Axpy_external( psi11, b01, a01 );
224 m_behind,
225 &psi11,
226 b01, rs_B,
227 a01, rs_A );
228
229 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_NO_CONJUGATE,
230 // FLA_ONE, a01, b01, A00 );
233 m_behind,
234 buff_1,
235 a01, rs_A,
236 b01, rs_B,
237 A00, rs_A, cs_A );
238
239 // FLA_Axpy_external( psi11, b01, a01 );
241 m_behind,
242 &psi11,
243 b01, rs_B,
244 a01, rs_A );
245
246 // FLA_Scal_external( beta11, a01 );
248 m_behind,
249 beta11,
250 a01, rs_A );
251
252 // FLA_Scal_external( beta11, alpha11 );
253 // FLA_Scal_external( beta11, alpha11 );
256
257 /*------------------------------------------------------------*/
258
259 }
260
261 return FLA_SUCCESS;
262}
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_dscalv(conj1_t conj, int n, double *alpha, double *x, int incx)
Definition bl1_scalv.c:24
void bl1_dtrmv(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_trmv.c:56

References bl1_daxpyv(), bl1_dher2(), bl1_dscalv(), bl1_dtrmv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nu_opt_var5().

◆ FLA_Eig_gest_nu_ops_var5()

FLA_Error FLA_Eig_gest_nu_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 
)
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
117 float* B00 = buff_B + (0 )*cs_B + (0 )*rs_B;
118 float* b01 = buff_B + (i )*cs_B + (0 )*rs_B;
119 float* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
120
121 float psi11;
122
123 int m_behind = i;
124
125 /*------------------------------------------------------------*/
126
127 // FLA_Copy_external( alpha11, psi11 );
128 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
130
131 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_NONUNIT_DIAG,
132 // B00, a01 );
136 m_behind,
137 B00, rs_B, cs_B,
138 a01, rs_A );
139
140 // FLA_Axpy_external( psi11, b01, a01 );
142 m_behind,
143 &psi11,
144 b01, rs_B,
145 a01, rs_A );
146
147 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_NO_CONJUGATE,
148 // FLA_ONE, a01, b01, A00 );
151 m_behind,
152 buff_1,
153 a01, rs_A,
154 b01, rs_B,
155 A00, rs_A, cs_A );
156
157 // FLA_Axpy_external( psi11, b01, a01 );
159 m_behind,
160 &psi11,
161 b01, rs_B,
162 a01, rs_A );
163
164 // FLA_Scal_external( beta11, a01 );
166 m_behind,
167 beta11,
168 a01, rs_A );
169
170 // FLA_Scal_external( beta11, alpha11 );
171 // FLA_Scal_external( beta11, alpha11 );
174
175 /*------------------------------------------------------------*/
176
177 }
178
179 return FLA_SUCCESS;
180}
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_sscalv(conj1_t conj, int n, float *alpha, float *x, int incx)
Definition bl1_scalv.c:13
void bl1_strmv(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_trmv.c:13

References bl1_saxpyv(), bl1_sher2(), bl1_sscalv(), bl1_strmv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nu_opt_var5().

◆ FLA_Eig_gest_nu_opt_var5()

FLA_Error FLA_Eig_gest_nu_opt_var5 ( 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_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_nu_opt_var5.c:348
FLA_Error FLA_Eig_gest_nu_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_nu_opt_var5.c:184
FLA_Error FLA_Eig_gest_nu_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_nu_opt_var5.c:102
FLA_Error FLA_Eig_gest_nu_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_nu_opt_var5.c:266
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_var5(), FLA_Eig_gest_nu_opd_var5(), FLA_Eig_gest_nu_ops_var5(), FLA_Eig_gest_nu_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_nu().

◆ FLA_Eig_gest_nu_opz_var5()

FLA_Error FLA_Eig_gest_nu_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 
)
352{
355 int i;
356
357 for ( i = 0; i < m_AB; ++i )
358 {
359 dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
360 dcomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
361 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
362
363 dcomplex* B00 = buff_B + (0 )*cs_B + (0 )*rs_B;
364 dcomplex* b01 = buff_B + (i )*cs_B + (0 )*rs_B;
365 dcomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
366
368
369 int m_behind = i;
370
371 /*------------------------------------------------------------*/
372
373 // FLA_Copy_external( alpha11, psi11 );
374 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
376
377 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_NONUNIT_DIAG,
378 // B00, a01 );
382 m_behind,
383 B00, rs_B, cs_B,
384 a01, rs_A );
385
386 // FLA_Axpy_external( psi11, b01, a01 );
388 m_behind,
389 &psi11,
390 b01, rs_B,
391 a01, rs_A );
392
393 // FLA_Her2c_external( FLA_UPPER_TRIANGULAR, FLA_NO_CONJUGATE,
394 // FLA_ONE, a01, b01, A00 );
397 m_behind,
398 buff_1,
399 a01, rs_A,
400 b01, rs_B,
401 A00, rs_A, cs_A );
402
403 // FLA_Axpy_external( psi11, b01, a01 );
405 m_behind,
406 &psi11,
407 b01, rs_B,
408 a01, rs_A );
409
410 // FLA_Scal_external( beta11, a01 );
412 m_behind,
413 beta11,
414 a01, rs_A );
415
416 // FLA_Scal_external( beta11, alpha11 );
417 // FLA_Scal_external( beta11, alpha11 );
420
421 /*------------------------------------------------------------*/
422
423 }
424
425 return FLA_SUCCESS;
426}
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_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
void bl1_ztrmv(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_trmv.c:177

References bl1_zaxpyv(), bl1_zher2(), bl1_zscals(), bl1_zscalv(), bl1_ztrmv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nu_opt_var5().