libflame revision_anchor
Functions
FLA_Eig_gest_nl_opt_var5.c File Reference

(r)

Functions

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

FLA_Error FLA_Eig_gest_nl_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 
)
269{
272 int i;
273
274 for ( i = 0; i < m_AB; ++i )
275 {
276 scomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
277 scomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
278 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
279
280 scomplex* B00 = buff_B + (0 )*cs_B + (0 )*rs_B;
281 scomplex* b10t = buff_B + (0 )*cs_B + (i )*rs_B;
282 scomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
283
285
286 int m_behind = i;
287
288 /*------------------------------------------------------------*/
289
290 // FLA_Copy_external( alpha11, psi11 );
291 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
293
294 // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG,
295 // B00, a10t );
299 m_behind,
300 B00, rs_B, cs_B,
301 a10t, cs_A );
302
303 // FLA_Axpy_external( psi11, b10t, a10t );
305 m_behind,
306 &psi11,
307 b10t, cs_B,
308 a10t, cs_A );
309
310 // FLA_Her2c_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
311 // FLA_ONE, a10t, b10t, A00 );
314 m_behind,
315 buff_1,
316 a10t, cs_A,
317 b10t, cs_B,
318 A00, rs_A, cs_A );
319
320 // FLA_Axpy_external( psi11, b10t, a10t );
322 m_behind,
323 &psi11,
324 b10t, cs_B,
325 a10t, cs_A );
326
327 // FLA_Scal_external( beta11, a10t );
329 m_behind,
330 beta11,
331 a10t, cs_A );
332
333 // FLA_Scal_external( beta11, alpha11 );
334 // FLA_Scal_external( beta11, alpha11 );
337
338 /*------------------------------------------------------------*/
339
340 }
341
342 return FLA_SUCCESS;
343}
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_LOWER_TRIANGULAR
Definition blis_type_defs.h:62
@ 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_cscalv(), bl1_ctrmv(), BLIS1_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nl_opt_var5().

◆ FLA_Eig_gest_nl_opd_var5()

FLA_Error FLA_Eig_gest_nl_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 
)
187{
188 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
190 int i;
191
192 for ( i = 0; i < m_AB; ++i )
193 {
194 double* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
195 double* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
196 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
197
198 double* B00 = buff_B + (0 )*cs_B + (0 )*rs_B;
199 double* b10t = buff_B + (0 )*cs_B + (i )*rs_B;
200 double* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
201
202 double psi11;
203
204 int m_behind = i;
205
206 /*------------------------------------------------------------*/
207
208 // FLA_Copy_external( alpha11, psi11 );
209 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
211
212 // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG,
213 // B00, a10t );
217 m_behind,
218 B00, rs_B, cs_B,
219 a10t, cs_A );
220
221 // FLA_Axpy_external( psi11, b10t, a10t );
223 m_behind,
224 &psi11,
225 b10t, cs_B,
226 a10t, cs_A );
227
228 // FLA_Her2c_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
229 // FLA_ONE, a10t, b10t, A00 );
232 m_behind,
233 buff_1,
234 a10t, cs_A,
235 b10t, cs_B,
236 A00, rs_A, cs_A );
237
238 // FLA_Axpy_external( psi11, b10t, a10t );
240 m_behind,
241 &psi11,
242 b10t, cs_B,
243 a10t, cs_A );
244
245 // FLA_Scal_external( beta11, a10t );
247 m_behind,
248 beta11,
249 a10t, cs_A );
250
251 // FLA_Scal_external( beta11, alpha11 );
252 // FLA_Scal_external( beta11, alpha11 );
255
256 /*------------------------------------------------------------*/
257
258 }
259
260 return FLA_SUCCESS;
261}
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_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nl_opt_var5().

◆ FLA_Eig_gest_nl_ops_var5()

FLA_Error FLA_Eig_gest_nl_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 
)
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* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
115
116 float* B00 = buff_B + (0 )*cs_B + (0 )*rs_B;
117 float* b10t = buff_B + (0 )*cs_B + (i )*rs_B;
118 float* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
119
120 float psi11;
121
122 int m_behind = i;
123
124 /*------------------------------------------------------------*/
125
126 // FLA_Copy_external( alpha11, psi11 );
127 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
129
130 // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG,
131 // B00, a10t );
135 m_behind,
136 B00, rs_B, cs_B,
137 a10t, cs_A );
138
139 // FLA_Axpy_external( psi11, b10t, a10t );
141 m_behind,
142 &psi11,
143 b10t, cs_B,
144 a10t, cs_A );
145
146 // FLA_Her2c_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
147 // FLA_ONE, a10t, b10t, A00 );
150 m_behind,
151 buff_1,
152 a10t, cs_A,
153 b10t, cs_B,
154 A00, rs_A, cs_A );
155
156 // FLA_Axpy_external( psi11, b10t, a10t );
158 m_behind,
159 &psi11,
160 b10t, cs_B,
161 a10t, cs_A );
162
163 // FLA_Scal_external( beta11, a10t );
165 m_behind,
166 beta11,
167 a10t, cs_A );
168
169 // FLA_Scal_external( beta11, alpha11 );
170 // FLA_Scal_external( beta11, alpha11 );
173
174 /*------------------------------------------------------------*/
175
176 }
177
178 return FLA_SUCCESS;
179}
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_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nl_opt_var5().

◆ FLA_Eig_gest_nl_opt_var5()

FLA_Error FLA_Eig_gest_nl_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 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_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_nl_opt_var5.c:265
FLA_Error FLA_Eig_gest_nl_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_nl_opt_var5.c:183
FLA_Error FLA_Eig_gest_nl_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_nl_opt_var5.c:101
FLA_Error FLA_Eig_gest_nl_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_nl_opt_var5.c:347
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_var5(), FLA_Eig_gest_nl_opd_var5(), FLA_Eig_gest_nl_ops_var5(), FLA_Eig_gest_nl_opz_var5(), 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_var5()

FLA_Error FLA_Eig_gest_nl_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 
)
351{
354 int i;
355
356 for ( i = 0; i < m_AB; ++i )
357 {
358 dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
359 dcomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
360 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
361
362 dcomplex* B00 = buff_B + (0 )*cs_B + (0 )*rs_B;
363 dcomplex* b10t = buff_B + (0 )*cs_B + (i )*rs_B;
364 dcomplex* beta11 = buff_B + (i )*cs_B + (i )*rs_B;
365
367
368 int m_behind = i;
369
370 /*------------------------------------------------------------*/
371
372 // FLA_Copy_external( alpha11, psi11 );
373 // FLA_Scal_external( FLA_ONE_HALF, psi11 );
375
376 // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG,
377 // B00, a10t );
381 m_behind,
382 B00, rs_B, cs_B,
383 a10t, cs_A );
384
385 // FLA_Axpy_external( psi11, b10t, a10t );
387 m_behind,
388 &psi11,
389 b10t, cs_B,
390 a10t, cs_A );
391
392 // FLA_Her2c_external( FLA_LOWER_TRIANGULAR, FLA_CONJUGATE,
393 // FLA_ONE, a10t, b10t, A00 );
396 m_behind,
397 buff_1,
398 a10t, cs_A,
399 b10t, cs_B,
400 A00, rs_A, cs_A );
401
402 // FLA_Axpy_external( psi11, b10t, a10t );
404 m_behind,
405 &psi11,
406 b10t, cs_B,
407 a10t, cs_A );
408
409 // FLA_Scal_external( beta11, a10t );
411 m_behind,
412 beta11,
413 a10t, cs_A );
414
415 // FLA_Scal_external( beta11, alpha11 );
416 // FLA_Scal_external( beta11, alpha11 );
419
420 /*------------------------------------------------------------*/
421
422 }
423
424 return FLA_SUCCESS;
425}
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_CONJUGATE, BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, FLA_ONE, FLA_ONE_HALF, and i.

Referenced by FLA_Eig_gest_nl_opt_var5().