libflame  revision_anchor
Functions
FLA_Lyap_n_opt_var1.c File Reference

(r)

Functions

FLA_Error FLA_Lyap_n_opt_var1 (FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
 
FLA_Error FLA_Lyap_n_ops_var1 (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_n_opd_var1 (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_n_opc_var1 (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_n_opz_var1 (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_n_opc_var1()

FLA_Error FLA_Lyap_n_opc_var1 ( 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 
)

References bl1_ccopymrt(), bl1_cdot2s(), bl1_chemv(), bl1_cscalm(), bl1_cshiftdiag(), bl1_ctrsv(), BLIS1_CONJ_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Lyap_n_opt_var1().

300 {
301  scomplex* buff_1 = FLA_COMPLEX_PTR( FLA_ONE );
302  scomplex* buff_m1 = FLA_COMPLEX_PTR( FLA_MINUS_ONE );
303  int i;
304 
306  m_AC,
307  m_AC,
308  buff_sgn,
309  buff_C, rs_C, cs_C );
310 
311  for ( i = m_AC - 1; i >= 0; --i )
312  {
313  scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
314  scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
315  scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
316 
317  scomplex* gamma11 = buff_C + (i )*cs_C + (i )*rs_C;
318  scomplex* c12t = buff_C + (i+1)*cs_C + (i )*rs_C;
319  scomplex* C22 = buff_C + (i+1)*cs_C + (i+1)*rs_C;
320 
321  scomplex* W22 = buff_W + (i+1)*cs_W + (i+1)*rs_W;
322 
323  scomplex omega;
324 
325  int m_ahead = m_AC - i - 1;
326 
327  /*------------------------------------------------------------*/
328 
329  // FLA_Hemvc( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE, FLA_MINUS_ONE, C22, a12t, FLA_ONE, c12t );
332  m_ahead,
333  buff_m1,
334  C22, rs_C, cs_C,
335  a12t, cs_A,
336  buff_1,
337  c12t, cs_C );
338 
339  // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_CONJ_NO_TRANSPOSE, A22, W22 );
340  // FLA_Shift_diag( FLA_NO_CONJUGATE, alpha11, W22 );
341  // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_NONUNIT_DIAG, W22, c12t );
344  m_ahead,
345  m_ahead,
346  A22, rs_A, cs_A,
347  W22, rs_W, cs_W );
348 
350  0,
351  m_ahead,
352  m_ahead,
353  alpha11,
354  W22, rs_W, cs_W );
355 
359  m_ahead,
360  W22, rs_W, cs_W,
361  c12t, cs_C );
362 
363  // FLA_Dot2cs( FLA_CONJUGATE, FLA_MINUS_ONE, a12t, c12t, FLA_ONE, gamma11 );
365  m_ahead,
366  buff_m1,
367  a12t, cs_A,
368  c12t, cs_C,
369  buff_1,
370  gamma11 );
371 
372  // FLA_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
373  // FLA_Mult_add( FLA_ONE, alpha11, omega );
374  // FLA_Inv_scal( omega, gamma11 );
375  bl1_ccopyconj( alpha11, &omega );
376  bl1_cadd3( alpha11, &omega, &omega );
377  bl1_cinvscals( &omega, gamma11 );
378 
379  /*------------------------------------------------------------*/
380  }
381 
382  return FLA_SUCCESS;
383 }
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
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
Definition: blis_type_defs.h:81
void bl1_chemv(uplo1_t uplo, conj1_t conj, int m, scomplex *alpha, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx, scomplex *beta, scomplex *y, int incy)
Definition: bl1_hemv.c:35
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
Definition: blis_type_defs.h:56
Definition: blis_type_defs.h:54
Definition: blis_type_defs.h:132
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
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:74
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
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
Definition: blis_type_defs.h:63
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

◆ FLA_Lyap_n_opd_var1()

FLA_Error FLA_Lyap_n_opd_var1 ( 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 
)

References bl1_dcopymrt(), bl1_ddot2s(), bl1_dhemv(), bl1_dscalm(), bl1_dshiftdiag(), bl1_dtrsv(), BLIS1_CONJ_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Lyap_n_opt_var1().

208 {
209  double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
210  double* buff_m1 = FLA_DOUBLE_PTR( FLA_MINUS_ONE );
211  int i;
212 
214  m_AC,
215  m_AC,
216  buff_sgn,
217  buff_C, rs_C, cs_C );
218 
219  for ( i = m_AC - 1; i >= 0; --i )
220  {
221  double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
222  double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
223  double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
224 
225  double* gamma11 = buff_C + (i )*cs_C + (i )*rs_C;
226  double* c12t = buff_C + (i+1)*cs_C + (i )*rs_C;
227  double* C22 = buff_C + (i+1)*cs_C + (i+1)*rs_C;
228 
229  double* W22 = buff_W + (i+1)*cs_W + (i+1)*rs_W;
230 
231  double omega;
232 
233  int m_ahead = m_AC - i - 1;
234 
235  /*------------------------------------------------------------*/
236 
237  // FLA_Hemvc( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE, FLA_MINUS_ONE, C22, a12t, FLA_ONE, c12t );
240  m_ahead,
241  buff_m1,
242  C22, rs_C, cs_C,
243  a12t, cs_A,
244  buff_1,
245  c12t, cs_C );
246 
247  // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_CONJ_NO_TRANSPOSE, A22, W22 );
248  // FLA_Shift_diag( FLA_NO_CONJUGATE, alpha11, W22 );
249  // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_NONUNIT_DIAG, W22, c12t );
252  m_ahead,
253  m_ahead,
254  A22, rs_A, cs_A,
255  W22, rs_W, cs_W );
256 
258  0,
259  m_ahead,
260  m_ahead,
261  alpha11,
262  W22, rs_W, cs_W );
263 
267  m_ahead,
268  W22, rs_W, cs_W,
269  c12t, cs_C );
270 
271  // FLA_Dot2cs( FLA_CONJUGATE, FLA_MINUS_ONE, a12t, c12t, FLA_ONE, gamma11 );
273  m_ahead,
274  buff_m1,
275  a12t, cs_A,
276  c12t, cs_C,
277  buff_1,
278  gamma11 );
279 
280  // FLA_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
281  // FLA_Mult_add( FLA_ONE, alpha11, omega );
282  // FLA_Inv_scal( omega, gamma11 );
283  bl1_dcopyconj( alpha11, &omega );
284  bl1_dadd3( alpha11, &omega, &omega );
285  bl1_dinvscals( &omega, gamma11 );
286 
287  /*------------------------------------------------------------*/
288  }
289 
290  return FLA_SUCCESS;
291 }
void bl1_dhemv(uplo1_t uplo, conj1_t conj, int m, double *alpha, double *a, int a_rs, int a_cs, double *x, int incx, double *beta, double *y, int incy)
Definition: bl1_hemv.c:24
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
Definition: blis_type_defs.h:81
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
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
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
Definition: blis_type_defs.h:56
Definition: blis_type_defs.h:54
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
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:74
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
Definition: blis_type_defs.h:63

◆ FLA_Lyap_n_ops_var1()

FLA_Error FLA_Lyap_n_ops_var1 ( 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 
)

References bl1_scopymrt(), bl1_sdot2s(), bl1_shemv(), bl1_sscalm(), bl1_sshiftdiag(), bl1_strsv(), BLIS1_CONJ_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Lyap_n_opt_var1().

116 {
117  float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
118  float* buff_m1 = FLA_FLOAT_PTR( FLA_MINUS_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 = m_AC - 1; i >= 0; --i )
128  {
129  float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
130  float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
131  float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
132 
133  float* gamma11 = buff_C + (i )*cs_C + (i )*rs_C;
134  float* c12t = buff_C + (i+1)*cs_C + (i )*rs_C;
135  float* C22 = buff_C + (i+1)*cs_C + (i+1)*rs_C;
136 
137  float* W22 = buff_W + (i+1)*cs_W + (i+1)*rs_W;
138 
139  float omega;
140 
141  int m_ahead = m_AC - i - 1;
142 
143  /*------------------------------------------------------------*/
144 
145  // FLA_Hemvc( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE, FLA_MINUS_ONE, C22, a12t, FLA_ONE, c12t );
148  m_ahead,
149  buff_m1,
150  C22, rs_C, cs_C,
151  a12t, cs_A,
152  buff_1,
153  c12t, cs_C );
154 
155  // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_CONJ_NO_TRANSPOSE, A22, W22 );
156  // FLA_Shift_diag( FLA_NO_CONJUGATE, alpha11, W22 );
157  // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_NONUNIT_DIAG, W22, c12t );
160  m_ahead,
161  m_ahead,
162  A22, rs_A, cs_A,
163  W22, rs_W, cs_W );
164 
166  0,
167  m_ahead,
168  m_ahead,
169  alpha11,
170  W22, rs_W, cs_W );
171 
175  m_ahead,
176  W22, rs_W, cs_W,
177  c12t, cs_C );
178 
179  // FLA_Dot2cs( FLA_CONJUGATE, FLA_MINUS_ONE, a12t, c12t, FLA_ONE, gamma11 );
181  m_ahead,
182  buff_m1,
183  a12t, cs_A,
184  c12t, cs_C,
185  buff_1,
186  gamma11 );
187 
188  // FLA_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
189  // FLA_Mult_add( FLA_ONE, alpha11, omega );
190  // FLA_Inv_scal( omega, gamma11 );
191  bl1_scopyconj( alpha11, &omega );
192  bl1_sadd3( alpha11, &omega, &omega );
193  bl1_sinvscals( &omega, gamma11 );
194 
195  /*------------------------------------------------------------*/
196  }
197 
198  return FLA_SUCCESS;
199 }
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
Definition: blis_type_defs.h:81
void bl1_shemv(uplo1_t uplo, conj1_t conj, int m, float *alpha, float *a, int a_rs, int a_cs, float *x, int incx, float *beta, float *y, int incy)
Definition: bl1_hemv.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
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
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
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
Definition: blis_type_defs.h:56
Definition: blis_type_defs.h:54
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
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:74
Definition: blis_type_defs.h:63

◆ FLA_Lyap_n_opt_var1()

FLA_Error FLA_Lyap_n_opt_var1 ( FLA_Obj  isgn,
FLA_Obj  A,
FLA_Obj  C 
)

References FLA_Lyap_n_opc_var1(), FLA_Lyap_n_opd_var1(), FLA_Lyap_n_ops_var1(), FLA_Lyap_n_opz_var1(), FLA_Obj_col_stride(), FLA_Obj_create_conf_to(), FLA_Obj_datatype(), FLA_Obj_free(), FLA_Obj_length(), and FLA_Obj_row_stride().

Referenced by FLA_Lyap_n().

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 
22  FLA_Obj_create_conf_to( FLA_NO_TRANSPOSE, A, &W );
23 
24  datatype = FLA_Obj_datatype( A );
25 
26  m_AC = FLA_Obj_length( A );
27 
28  rs_A = FLA_Obj_row_stride( A );
29  cs_A = FLA_Obj_col_stride( A );
30 
31  rs_W = FLA_Obj_row_stride( W );
32  cs_W = FLA_Obj_col_stride( W );
33 
34  rs_C = FLA_Obj_row_stride( C );
35  cs_C = FLA_Obj_col_stride( C );
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 
46  FLA_Lyap_n_ops_var1( m_AC,
47  buff_sgn,
48  buff_A, rs_A, cs_A,
49  buff_W, rs_W, cs_W,
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 
62  FLA_Lyap_n_opd_var1( m_AC,
63  buff_sgn,
64  buff_A, rs_A, cs_A,
65  buff_W, rs_W, cs_W,
66  buff_C, rs_C, cs_C );
67 
68  break;
69  }
70 
71  case FLA_COMPLEX:
72  {
73  scomplex* buff_A = FLA_COMPLEX_PTR( A );
74  scomplex* buff_W = FLA_COMPLEX_PTR( W );
75  scomplex* buff_C = FLA_COMPLEX_PTR( C );
76  scomplex* buff_sgn = FLA_COMPLEX_PTR( isgn );
77 
78  FLA_Lyap_n_opc_var1( m_AC,
79  buff_sgn,
80  buff_A, rs_A, cs_A,
81  buff_W, rs_W, cs_W,
82  buff_C, rs_C, cs_C );
83 
84  break;
85  }
86 
87  case FLA_DOUBLE_COMPLEX:
88  {
89  dcomplex* buff_A = FLA_DOUBLE_COMPLEX_PTR( A );
90  dcomplex* buff_W = FLA_DOUBLE_COMPLEX_PTR( W );
91  dcomplex* buff_C = FLA_DOUBLE_COMPLEX_PTR( C );
92  dcomplex* buff_sgn = FLA_DOUBLE_COMPLEX_PTR( isgn );
93 
94  FLA_Lyap_n_opz_var1( m_AC,
95  buff_sgn,
96  buff_A, rs_A, cs_A,
97  buff_W, rs_W, cs_W,
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_n_opd_var1(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_n_opt_var1.c:203
FLA_Error FLA_Obj_free(FLA_Obj *obj)
Definition: FLA_Obj.c:588
FLA_Error FLA_Lyap_n_opc_var1(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_n_opt_var1.c:295
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
FLA_Error FLA_Lyap_n_ops_var1(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_n_opt_var1.c:111
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
Definition: FLA_type_defs.h:158
FLA_Error FLA_Obj_create_conf_to(FLA_Trans trans, FLA_Obj old, FLA_Obj *obj)
Definition: FLA_Obj.c:286
Definition: blis_type_defs.h:132
FLA_Error FLA_Lyap_n_opz_var1(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_n_opt_var1.c:387
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Lyap_n_opz_var1()

FLA_Error FLA_Lyap_n_opz_var1 ( 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 
)

References bl1_zcopymrt(), bl1_zdot2s(), bl1_zhemv(), bl1_zscalm(), bl1_zshiftdiag(), bl1_ztrsv(), BLIS1_CONJ_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Lyap_n_opt_var1().

392 {
393  dcomplex* buff_1 = FLA_DOUBLE_COMPLEX_PTR( FLA_ONE );
394  dcomplex* buff_m1 = FLA_DOUBLE_COMPLEX_PTR( FLA_MINUS_ONE );
395  int i;
396 
398  m_AC,
399  m_AC,
400  buff_sgn,
401  buff_C, rs_C, cs_C );
402 
403  for ( i = m_AC - 1; i >= 0; --i )
404  {
405  dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
406  dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
407  dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
408 
409  dcomplex* gamma11 = buff_C + (i )*cs_C + (i )*rs_C;
410  dcomplex* c12t = buff_C + (i+1)*cs_C + (i )*rs_C;
411  dcomplex* C22 = buff_C + (i+1)*cs_C + (i+1)*rs_C;
412 
413  dcomplex* W22 = buff_W + (i+1)*cs_W + (i+1)*rs_W;
414 
415  dcomplex omega;
416 
417  int m_ahead = m_AC - i - 1;
418 
419  /*------------------------------------------------------------*/
420 
421  // FLA_Hemvc( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE, FLA_MINUS_ONE, C22, a12t, FLA_ONE, c12t );
424  m_ahead,
425  buff_m1,
426  C22, rs_C, cs_C,
427  a12t, cs_A,
428  buff_1,
429  c12t, cs_C );
430 
431  // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_CONJ_NO_TRANSPOSE, A22, W22 );
432  // FLA_Shift_diag( FLA_NO_CONJUGATE, alpha11, W22 );
433  // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_NONUNIT_DIAG, W22, c12t );
436  m_ahead,
437  m_ahead,
438  A22, rs_A, cs_A,
439  W22, rs_W, cs_W );
440 
442  0,
443  m_ahead,
444  m_ahead,
445  alpha11,
446  W22, rs_W, cs_W );
447 
451  m_ahead,
452  W22, rs_W, cs_W,
453  c12t, cs_C );
454 
455  // FLA_Dot2cs( FLA_CONJUGATE, FLA_MINUS_ONE, a12t, c12t, FLA_ONE, gamma11 );
457  m_ahead,
458  buff_m1,
459  a12t, cs_A,
460  c12t, cs_C,
461  buff_1,
462  gamma11 );
463 
464  // FLA_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
465  // FLA_Mult_add( FLA_ONE, alpha11, omega );
466  // FLA_Inv_scal( omega, gamma11 );
467  bl1_zcopyconj( alpha11, &omega );
468  bl1_zadd3( alpha11, &omega, &omega );
469  bl1_zinvscals( &omega, gamma11 );
470 
471  /*------------------------------------------------------------*/
472  }
473 
474  return FLA_SUCCESS;
475 }
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
Definition: blis_type_defs.h:81
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_zscalm(conj1_t conj, int m, int n, dcomplex *alpha, dcomplex *a, int a_rs, int a_cs)
Definition: bl1_scalm.c:273
Definition: blis_type_defs.h:82
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
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
Definition: blis_type_defs.h:56
Definition: blis_type_defs.h:54
int i
Definition: bl1_axmyv2.c:145
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
Definition: blis_type_defs.h:74
void bl1_zhemv(uplo1_t uplo, conj1_t conj, int m, dcomplex *alpha, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx, dcomplex *beta, dcomplex *y, int incy)
Definition: bl1_hemv.c:134
Definition: blis_type_defs.h:63
Definition: blis_type_defs.h:137
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