libflame revision_anchor
Functions
FLA_Lyap_h_opt_var2.c File Reference

(r)

Functions

FLA_Error FLA_Lyap_h_opt_var2 (FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
 
FLA_Error FLA_Lyap_h_ops_var2 (int m_AC, float *buff_sgn, float *buff_A, int rs_A, int cs_A, float *buff_W, int rs_W, int cs_W, float *buff_C, int rs_C, int cs_C)
 
FLA_Error FLA_Lyap_h_opd_var2 (int m_AC, double *buff_sgn, double *buff_A, int rs_A, int cs_A, double *buff_W, int rs_W, int cs_W, double *buff_C, int rs_C, int cs_C)
 
FLA_Error FLA_Lyap_h_opc_var2 (int m_AC, scomplex *buff_sgn, scomplex *buff_A, int rs_A, int cs_A, scomplex *buff_W, int rs_W, int cs_W, scomplex *buff_C, int rs_C, int cs_C)
 
FLA_Error FLA_Lyap_h_opz_var2 (int m_AC, dcomplex *buff_sgn, dcomplex *buff_A, int rs_A, int cs_A, dcomplex *buff_W, int rs_W, int cs_W, dcomplex *buff_C, int rs_C, int cs_C)
 

Function Documentation

◆ FLA_Lyap_h_opc_var2()

FLA_Error FLA_Lyap_h_opc_var2 ( int  m_AC,
scomplex buff_sgn,
scomplex buff_A,
int  rs_A,
int  cs_A,
scomplex buff_W,
int  rs_W,
int  cs_W,
scomplex buff_C,
int  rs_C,
int  cs_C 
)
346{
349 int i;
350
352 m_AC,
353 m_AC,
354 buff_sgn,
355 buff_C, rs_C, cs_C );
356
357 for ( i = 0; i < m_AC; ++i )
358 {
359 scomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
360 scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
361 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
362 scomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
363 scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
364
365 scomplex* c01 = buff_C + (i )*cs_C + (0 )*rs_C;
366 scomplex* gamma11 = buff_C + (i )*cs_C + (i )*rs_C;
367 scomplex* C02 = buff_C + (i+1)*cs_C + (0 )*rs_C;
368 scomplex* c12t = buff_C + (i+1)*cs_C + (i )*rs_C;
369
370 scomplex* W00 = buff_W + (0 )*cs_W + (0 )*rs_W;
371
373
374 int m_behind = i;
375 int m_ahead = m_AC - i - 1;
376
377 /*------------------------------------------------------------*/
378
379 // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, A00, W00 );
380 // FLA_Shift_diag( FLA_CONJUGATE, alpha11, W00 );
381 // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, W00, c01 );
384 m_behind,
385 m_behind,
386 A00, rs_A, cs_A,
387 W00, rs_W, cs_W );
388
390 0,
391 m_behind,
392 m_behind,
393 alpha11,
394 W00, rs_W, cs_W );
395
399 m_behind,
400 W00, rs_W, cs_W,
401 c01, rs_C );
402
403 // FLA_Dot2cs( FLA_CONJUGATE, FLA_MINUS_ONE, a01, c01, FLA_ONE, gamma11 );
405 m_behind,
406 buff_m1,
407 a01, rs_A,
408 c01, rs_C,
409 buff_1,
410 gamma11 );
411
412 // FLA_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
413 // FLA_Mult_add( FLA_ONE, alpha11, omega );
414 // FLA_Inv_scal( omega, gamma11 );
418
419 // FLA_Ger( FLA_MINUS_ONE, c01, a12t, C02 );
422 m_behind,
423 m_ahead,
424 buff_m1,
425 c01, rs_C,
426 a12t, cs_A,
427 C02, rs_C, cs_C );
428
429 // FLA_Axpys( FLA_MINUS_ONE, gamma11, a12t, FLA_ONE, c12t );
430 // FLA_Gemvc( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_MINUS_ONE, A02, c01, FLA_ONE, c12t );
432 buff_m1,
433 gamma11,
434 a12t, cs_A,
435 buff_1,
436 c12t, cs_C );
437
440 m_behind,
441 m_ahead,
442 buff_m1,
443 A02, rs_A, cs_A,
444 c01, rs_C,
445 buff_1,
446 c12t, cs_C );
447
448 /*------------------------------------------------------------*/
449 }
450
451 return FLA_SUCCESS;
452}
FLA_Obj FLA_MINUS_ONE
Definition FLA_Init.c:22
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
int i
Definition bl1_axmyv2.c:145
void bl1_caxpysv(int n, scomplex *alpha0, scomplex *alpha1, scomplex *x, int incx, scomplex *beta, scomplex *y, int incy)
Definition bl1_axpysv.c:51
void bl1_ccopymrt(uplo1_t uplo, trans1_t trans, int m, int n, scomplex *a, int a_rs, int a_cs, scomplex *b, int b_rs, int b_cs)
Definition bl1_copymrt.c:223
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_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_cscalm(conj1_t conj, int m, int n, scomplex *alpha, scomplex *a, int a_rs, int a_cs)
Definition bl1_scalm.c:169
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
void bl1_cshiftdiag(conj1_t conj, int offset, int m, int n, scomplex *sigma, scomplex *a, int a_rs, int a_cs)
Definition bl1_shiftdiag.c:97
@ 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_CONJ_TRANSPOSE
Definition blis_type_defs.h:57
@ 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_caxpysv(), bl1_ccopymrt(), bl1_cdot2s(), bl1_cgemv(), bl1_cger(), bl1_cscalm(), bl1_cshiftdiag(), bl1_ctrsv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Lyap_h_opt_var2().

◆ FLA_Lyap_h_opd_var2()

FLA_Error FLA_Lyap_h_opd_var2 ( int  m_AC,
double buff_sgn,
double buff_A,
int  rs_A,
int  cs_A,
double buff_W,
int  rs_W,
int  cs_W,
double buff_C,
int  rs_C,
int  cs_C 
)
231{
232 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
234 int i;
235
237 m_AC,
238 m_AC,
239 buff_sgn,
240 buff_C, rs_C, cs_C );
241
242 for ( i = 0; i < m_AC; ++i )
243 {
244 double* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
245 double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
246 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
247 double* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
248 double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
249
250 double* c01 = buff_C + (i )*cs_C + (0 )*rs_C;
251 double* gamma11 = buff_C + (i )*cs_C + (i )*rs_C;
252 double* C02 = buff_C + (i+1)*cs_C + (0 )*rs_C;
253 double* c12t = buff_C + (i+1)*cs_C + (i )*rs_C;
254
255 double* W00 = buff_W + (0 )*cs_W + (0 )*rs_W;
256
257 double omega;
258
259 int m_behind = i;
260 int m_ahead = m_AC - i - 1;
261
262 /*------------------------------------------------------------*/
263
264 // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, A00, W00 );
265 // FLA_Shift_diag( FLA_CONJUGATE, alpha11, W00 );
266 // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, W00, c01 );
269 m_behind,
270 m_behind,
271 A00, rs_A, cs_A,
272 W00, rs_W, cs_W );
273
275 0,
276 m_behind,
277 m_behind,
278 alpha11,
279 W00, rs_W, cs_W );
280
284 m_behind,
285 W00, rs_W, cs_W,
286 c01, rs_C );
287
288 // FLA_Dot2cs( FLA_CONJUGATE, FLA_MINUS_ONE, a01, c01, FLA_ONE, gamma11 );
290 m_behind,
291 buff_m1,
292 a01, rs_A,
293 c01, rs_C,
294 buff_1,
295 gamma11 );
296
297 // FLA_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
298 // FLA_Mult_add( FLA_ONE, alpha11, omega );
299 // FLA_Inv_scal( omega, gamma11 );
303
304 // FLA_Ger( FLA_MINUS_ONE, c01, a12t, C02 );
307 m_behind,
308 m_ahead,
309 buff_m1,
310 c01, rs_C,
311 a12t, cs_A,
312 C02, rs_C, cs_C );
313
314 // FLA_Axpys( FLA_MINUS_ONE, gamma11, a12t, FLA_ONE, c12t );
315 // FLA_Gemvc( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_MINUS_ONE, A02, c01, FLA_ONE, c12t );
317 buff_m1,
318 gamma11,
319 a12t, cs_A,
320 buff_1,
321 c12t, cs_C );
322
325 m_behind,
326 m_ahead,
327 buff_m1,
328 A02, rs_A, cs_A,
329 c01, rs_C,
330 buff_1,
331 c12t, cs_C );
332
333 /*------------------------------------------------------------*/
334 }
335
336 return FLA_SUCCESS;
337}
void bl1_daxpysv(int n, double *alpha0, double *alpha1, double *x, int incx, double *beta, double *y, int incy)
Definition bl1_axpysv.c:32
void bl1_dcopymrt(uplo1_t uplo, trans1_t trans, int m, int n, double *a, int a_rs, int a_cs, double *b, int b_rs, int b_cs)
Definition bl1_copymrt.c:118
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_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_dscalm(conj1_t conj, int m, int n, double *alpha, double *a, int a_rs, int a_cs)
Definition bl1_scalm.c:65
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
void bl1_dshiftdiag(conj1_t conj, int offset, int m, int n, double *sigma, double *a, int a_rs, int a_cs)
Definition bl1_shiftdiag.c:34

References bl1_daxpysv(), bl1_dcopymrt(), bl1_ddot2s(), bl1_dgemv(), bl1_dger(), bl1_dscalm(), bl1_dshiftdiag(), bl1_dtrsv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Lyap_h_opt_var2().

◆ FLA_Lyap_h_ops_var2()

FLA_Error FLA_Lyap_h_ops_var2 ( int  m_AC,
float buff_sgn,
float buff_A,
int  rs_A,
int  cs_A,
float buff_W,
int  rs_W,
int  cs_W,
float buff_C,
int  rs_C,
int  cs_C 
)
116{
117 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
119 int i;
120
122 m_AC,
123 m_AC,
124 buff_sgn,
125 buff_C, rs_C, cs_C );
126
127 for ( i = 0; i < m_AC; ++i )
128 {
129 float* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
130 float* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
131 float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
132 float* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
133 float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
134
135 float* c01 = buff_C + (i )*cs_C + (0 )*rs_C;
136 float* gamma11 = buff_C + (i )*cs_C + (i )*rs_C;
137 float* C02 = buff_C + (i+1)*cs_C + (0 )*rs_C;
138 float* c12t = buff_C + (i+1)*cs_C + (i )*rs_C;
139
140 float* W00 = buff_W + (0 )*cs_W + (0 )*rs_W;
141
142 float omega;
143
144 int m_behind = i;
145 int m_ahead = m_AC - i - 1;
146
147 /*------------------------------------------------------------*/
148
149 // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, A00, W00 );
150 // FLA_Shift_diag( FLA_CONJUGATE, alpha11, W00 );
151 // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, W00, c01 );
154 m_behind,
155 m_behind,
156 A00, rs_A, cs_A,
157 W00, rs_W, cs_W );
158
160 0,
161 m_behind,
162 m_behind,
163 alpha11,
164 W00, rs_W, cs_W );
165
169 m_behind,
170 W00, rs_W, cs_W,
171 c01, rs_C );
172
173 // FLA_Dot2cs( FLA_CONJUGATE, FLA_MINUS_ONE, a01, c01, FLA_ONE, gamma11 );
175 m_behind,
176 buff_m1,
177 a01, rs_A,
178 c01, rs_C,
179 buff_1,
180 gamma11 );
181
182 // FLA_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
183 // FLA_Mult_add( FLA_ONE, alpha11, omega );
184 // FLA_Inv_scal( omega, gamma11 );
188
189 // FLA_Ger( FLA_MINUS_ONE, c01, a12t, C02 );
192 m_behind,
193 m_ahead,
194 buff_m1,
195 c01, rs_C,
196 a12t, cs_A,
197 C02, rs_C, cs_C );
198
199 // FLA_Axpys( FLA_MINUS_ONE, gamma11, a12t, FLA_ONE, c12t );
200 // FLA_Gemvc( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_MINUS_ONE, A02, c01, FLA_ONE, c12t );
202 buff_m1,
203 gamma11,
204 a12t, cs_A,
205 buff_1,
206 c12t, cs_C );
207
210 m_behind,
211 m_ahead,
212 buff_m1,
213 A02, rs_A, cs_A,
214 c01, rs_C,
215 buff_1,
216 c12t, cs_C );
217
218 /*------------------------------------------------------------*/
219 }
220
221 return FLA_SUCCESS;
222}
void bl1_saxpysv(int n, float *alpha0, float *alpha1, float *x, int incx, float *beta, float *y, int incy)
Definition bl1_axpysv.c:13
void bl1_scopymrt(uplo1_t uplo, trans1_t trans, int m, int n, float *a, int a_rs, int a_cs, float *b, int b_rs, int b_cs)
Definition bl1_copymrt.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_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_sscalm(conj1_t conj, int m, int n, float *alpha, float *a, int a_rs, int a_cs)
Definition bl1_scalm.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
void bl1_sshiftdiag(conj1_t conj, int offset, int m, int n, float *sigma, float *a, int a_rs, int a_cs)
Definition bl1_shiftdiag.c:13

References bl1_saxpysv(), bl1_scopymrt(), bl1_sdot2s(), bl1_sgemv(), bl1_sger(), bl1_sscalm(), bl1_sshiftdiag(), bl1_strsv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Lyap_h_opt_var2().

◆ FLA_Lyap_h_opt_var2()

FLA_Error FLA_Lyap_h_opt_var2 ( FLA_Obj  isgn,
FLA_Obj  A,
FLA_Obj  C 
)
14{
15 FLA_Datatype datatype;
16 int m_AC;
17 int rs_A, cs_A;
18 int rs_W, cs_W;
19 int rs_C, cs_C;
20 FLA_Obj W;
21
23
24 datatype = FLA_Obj_datatype( A );
25
27
30
33
36
37 switch ( datatype )
38 {
39 case FLA_FLOAT:
40 {
41 float* buff_A = FLA_FLOAT_PTR( A );
42 float* buff_W = FLA_FLOAT_PTR( W );
43 float* buff_C = FLA_FLOAT_PTR( C );
44 float* buff_sgn = FLA_FLOAT_PTR( isgn );
45
50 buff_C, rs_C, cs_C );
51
52 break;
53 }
54
55 case FLA_DOUBLE:
56 {
57 double* buff_A = FLA_DOUBLE_PTR( A );
58 double* buff_W = FLA_DOUBLE_PTR( W );
59 double* buff_C = FLA_DOUBLE_PTR( C );
60 double* buff_sgn = FLA_DOUBLE_PTR( isgn );
61
66 buff_C, rs_C, cs_C );
67
68 break;
69 }
70
71 case FLA_COMPLEX:
72 {
77
82 buff_C, rs_C, cs_C );
83
84 break;
85 }
86
88 {
93
98 buff_C, rs_C, cs_C );
99
100 break;
101 }
102 }
103
104 FLA_Obj_free( &W );
105
106 return FLA_SUCCESS;
107}
FLA_Error FLA_Lyap_h_opz_var2(int m_AC, dcomplex *buff_sgn, dcomplex *buff_A, int rs_A, int cs_A, dcomplex *buff_W, int rs_W, int cs_W, dcomplex *buff_C, int rs_C, int cs_C)
Definition FLA_Lyap_h_opt_var2.c:456
FLA_Error FLA_Lyap_h_opd_var2(int m_AC, double *buff_sgn, double *buff_A, int rs_A, int cs_A, double *buff_W, int rs_W, int cs_W, double *buff_C, int rs_C, int cs_C)
Definition FLA_Lyap_h_opt_var2.c:226
FLA_Error FLA_Lyap_h_ops_var2(int m_AC, float *buff_sgn, float *buff_A, int rs_A, int cs_A, float *buff_W, int rs_W, int cs_W, float *buff_C, int rs_C, int cs_C)
Definition FLA_Lyap_h_opt_var2.c:111
FLA_Error FLA_Lyap_h_opc_var2(int m_AC, scomplex *buff_sgn, scomplex *buff_A, int rs_A, int cs_A, scomplex *buff_W, int rs_W, int cs_W, scomplex *buff_C, int rs_C, int cs_C)
Definition FLA_Lyap_h_opt_var2.c:341
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
FLA_Error FLA_Obj_create_conf_to(FLA_Trans trans, FLA_Obj old, FLA_Obj *obj)
Definition FLA_Obj.c:286
FLA_Error FLA_Obj_free(FLA_Obj *obj)
Definition FLA_Obj.c:588
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_Lyap_h_opc_var2(), FLA_Lyap_h_opd_var2(), FLA_Lyap_h_ops_var2(), FLA_Lyap_h_opz_var2(), FLA_Obj_col_stride(), FLA_Obj_create_conf_to(), FLA_Obj_datatype(), FLA_Obj_free(), FLA_Obj_length(), FLA_Obj_row_stride(), and i.

Referenced by FLA_Lyap_h().

◆ FLA_Lyap_h_opz_var2()

FLA_Error FLA_Lyap_h_opz_var2 ( int  m_AC,
dcomplex buff_sgn,
dcomplex buff_A,
int  rs_A,
int  cs_A,
dcomplex buff_W,
int  rs_W,
int  cs_W,
dcomplex buff_C,
int  rs_C,
int  cs_C 
)
461{
464 int i;
465
467 m_AC,
468 m_AC,
469 buff_sgn,
470 buff_C, rs_C, cs_C );
471
472 for ( i = 0; i < m_AC; ++i )
473 {
474 dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
475 dcomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
476 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
477 dcomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
478 dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
479
480 dcomplex* c01 = buff_C + (i )*cs_C + (0 )*rs_C;
481 dcomplex* gamma11 = buff_C + (i )*cs_C + (i )*rs_C;
482 dcomplex* C02 = buff_C + (i+1)*cs_C + (0 )*rs_C;
483 dcomplex* c12t = buff_C + (i+1)*cs_C + (i )*rs_C;
484
485 dcomplex* W00 = buff_W + (0 )*cs_W + (0 )*rs_W;
486
488
489 int m_behind = i;
490 int m_ahead = m_AC - i - 1;
491
492 /*------------------------------------------------------------*/
493
494 // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, A00, W00 );
495 // FLA_Shift_diag( FLA_CONJUGATE, alpha11, W00 );
496 // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, W00, c01 );
499 m_behind,
500 m_behind,
501 A00, rs_A, cs_A,
502 W00, rs_W, cs_W );
503
505 0,
506 m_behind,
507 m_behind,
508 alpha11,
509 W00, rs_W, cs_W );
510
514 m_behind,
515 W00, rs_W, cs_W,
516 c01, rs_C );
517
518 // FLA_Dot2cs( FLA_CONJUGATE, FLA_MINUS_ONE, a01, c01, FLA_ONE, gamma11 );
520 m_behind,
521 buff_m1,
522 a01, rs_A,
523 c01, rs_C,
524 buff_1,
525 gamma11 );
526
527 // FLA_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
528 // FLA_Mult_add( FLA_ONE, alpha11, omega );
529 // FLA_Inv_scal( omega, gamma11 );
533
534 // FLA_Ger( FLA_MINUS_ONE, c01, a12t, C02 );
537 m_behind,
538 m_ahead,
539 buff_m1,
540 c01, rs_C,
541 a12t, cs_A,
542 C02, rs_C, cs_C );
543
544 // FLA_Axpys( FLA_MINUS_ONE, gamma11, a12t, FLA_ONE, c12t );
545 // FLA_Gemvc( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_MINUS_ONE, A02, c01, FLA_ONE, c12t );
547 buff_m1,
548 gamma11,
549 a12t, cs_A,
550 buff_1,
551 c12t, cs_C );
552
555 m_behind,
556 m_ahead,
557 buff_m1,
558 A02, rs_A, cs_A,
559 c01, rs_C,
560 buff_1,
561 c12t, cs_C );
562
563 /*------------------------------------------------------------*/
564 }
565
566 return FLA_SUCCESS;
567}
void bl1_zaxpysv(int n, dcomplex *alpha0, dcomplex *alpha1, dcomplex *x, int incx, dcomplex *beta, dcomplex *y, int incy)
Definition bl1_axpysv.c:71
void bl1_zcopymrt(uplo1_t uplo, trans1_t trans, int m, int n, dcomplex *a, int a_rs, int a_cs, dcomplex *b, int b_rs, int b_cs)
Definition bl1_copymrt.c:328
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
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_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_zscalm(conj1_t conj, int m, int n, dcomplex *alpha, dcomplex *a, int a_rs, int a_cs)
Definition bl1_scalm.c:273
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
void bl1_zshiftdiag(conj1_t conj, int offset, int m, int n, dcomplex *sigma, dcomplex *a, int a_rs, int a_cs)
Definition bl1_shiftdiag.c:122

References bl1_zaxpysv(), bl1_zcopymrt(), bl1_zdot2s(), bl1_zgemv(), bl1_zger(), bl1_zscalm(), bl1_zshiftdiag(), bl1_ztrsv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Lyap_h_opt_var2().