libflame  revision_anchor
Functions
FLA_Lyap_h_opt_var4.c File Reference

(r)

Functions

FLA_Error FLA_Lyap_h_opt_var4 (FLA_Obj isgn, FLA_Obj A, FLA_Obj C)
 
FLA_Error FLA_Lyap_h_ops_var4 (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_var4 (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_var4 (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_var4 (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_var4()

FLA_Error FLA_Lyap_h_opc_var4 ( 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_caxpysv(), bl1_ccopymrt(), bl1_cher2(), bl1_cscalm(), bl1_cshiftdiag(), bl1_ctrsv(), 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_var4().

296 {
297  scomplex* buff_1 = FLA_COMPLEX_PTR( FLA_ONE );
298  scomplex* buff_m1 = FLA_COMPLEX_PTR( FLA_MINUS_ONE );
299  int i;
300 
302  m_AC,
303  m_AC,
304  buff_sgn,
305  buff_C, rs_C, cs_C );
306 
307  for ( i = 0; i < m_AC; ++i )
308  {
309  scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
310  scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
311  scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
312 
313  scomplex* gamma11 = buff_C + (i )*cs_C + (i )*rs_C;
314  scomplex* c12t = buff_C + (i+1)*cs_C + (i )*rs_C;
315  scomplex* C22 = buff_C + (i+1)*cs_C + (i+1)*rs_C;
316 
317  scomplex* W22 = buff_W + (i+1)*cs_W + (i+1)*rs_W;
318 
319  scomplex omega;
320 
321  int m_ahead = m_AC - i - 1;
322 
323  /*------------------------------------------------------------*/
324 
325  // FLA_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
326  // FLA_Mult_add( FLA_ONE, alpha11, omega );
327  // FLA_Inv_scal( omega, gamma11 );
328  bl1_ccopyconj( alpha11, &omega );
329  bl1_cadd3( alpha11, &omega, &omega );
330  bl1_cinvscals( &omega, gamma11 );
331 
332  // FLA_Axpys( FLA_MINUS_ONE, gamma11, a12t, FLA_ONE, c12t );
333  bl1_caxpysv( m_ahead,
334  buff_m1,
335  gamma11,
336  a12t, cs_A,
337  buff_1,
338  c12t, cs_C );
339 
340  // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, A22, W22 );
341  // FLA_Shift_diag( FLA_CONJUGATE, alpha11, W22 );
342  // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, W22, c12t );
345  m_ahead,
346  m_ahead,
347  A22, rs_A, cs_A,
348  W22, rs_W, cs_W );
349 
351  0,
352  m_ahead,
353  m_ahead,
354  alpha11,
355  W22, rs_W, cs_W );
356 
360  m_ahead,
361  W22, rs_W, cs_W,
362  c12t, cs_C );
363 
364  // FLA_Her2c( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE, FLA_MINUS_ONE, a12t, c12t, C22 );
367  m_ahead,
368  buff_m1,
369  a12t, cs_A,
370  c12t, cs_C,
371  C22, rs_C, cs_C );
372 
373  /*------------------------------------------------------------*/
374  }
375 
376  return FLA_SUCCESS;
377 }
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
Definition: blis_type_defs.h:55
Definition: blis_type_defs.h:82
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
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
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
void bl1_caxpysv(int n, scomplex *alpha0, scomplex *alpha1, scomplex *x, int incx, scomplex *beta, scomplex *y, int incy)
Definition: bl1_axpysv.c:51
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

◆ FLA_Lyap_h_opd_var4()

FLA_Error FLA_Lyap_h_opd_var4 ( 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_daxpysv(), bl1_dcopymrt(), bl1_dher2(), bl1_dscalm(), bl1_dshiftdiag(), bl1_dtrsv(), 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_var4().

206 {
207  double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
208  double* buff_m1 = FLA_DOUBLE_PTR( FLA_MINUS_ONE );
209  int i;
210 
212  m_AC,
213  m_AC,
214  buff_sgn,
215  buff_C, rs_C, cs_C );
216 
217  for ( i = 0; i < m_AC; ++i )
218  {
219  double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
220  double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
221  double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
222 
223  double* gamma11 = buff_C + (i )*cs_C + (i )*rs_C;
224  double* c12t = buff_C + (i+1)*cs_C + (i )*rs_C;
225  double* C22 = buff_C + (i+1)*cs_C + (i+1)*rs_C;
226 
227  double* W22 = buff_W + (i+1)*cs_W + (i+1)*rs_W;
228 
229  double omega;
230 
231  int m_ahead = m_AC - i - 1;
232 
233  /*------------------------------------------------------------*/
234 
235  // FLA_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
236  // FLA_Mult_add( FLA_ONE, alpha11, omega );
237  // FLA_Inv_scal( omega, gamma11 );
238  bl1_dcopyconj( alpha11, &omega );
239  bl1_dadd3( alpha11, &omega, &omega );
240  bl1_dinvscals( &omega, gamma11 );
241 
242  // FLA_Axpys( FLA_MINUS_ONE, gamma11, a12t, FLA_ONE, c12t );
243  bl1_daxpysv( m_ahead,
244  buff_m1,
245  gamma11,
246  a12t, cs_A,
247  buff_1,
248  c12t, cs_C );
249 
250  // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, A22, W22 );
251  // FLA_Shift_diag( FLA_CONJUGATE, alpha11, W22 );
252  // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, W22, c12t );
255  m_ahead,
256  m_ahead,
257  A22, rs_A, cs_A,
258  W22, rs_W, cs_W );
259 
261  0,
262  m_ahead,
263  m_ahead,
264  alpha11,
265  W22, rs_W, cs_W );
266 
270  m_ahead,
271  W22, rs_W, cs_W,
272  c12t, cs_C );
273 
274  // FLA_Her2c( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE, FLA_MINUS_ONE, a12t, c12t, C22 );
277  m_ahead,
278  buff_m1,
279  a12t, cs_A,
280  c12t, cs_C,
281  C22, rs_C, cs_C );
282 
283  /*------------------------------------------------------------*/
284  }
285 
286  return FLA_SUCCESS;
287 }
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
Definition: blis_type_defs.h:81
void bl1_daxpysv(int n, double *alpha0, double *alpha1, double *x, int incx, double *beta, double *y, int incy)
Definition: bl1_axpysv.c:32
Definition: blis_type_defs.h:55
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: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
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
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_h_ops_var4()

FLA_Error FLA_Lyap_h_ops_var4 ( 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_saxpysv(), bl1_scopymrt(), bl1_sher2(), bl1_sscalm(), bl1_sshiftdiag(), bl1_strsv(), 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_var4().

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 = 0; i < m_AC; ++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_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
146  // FLA_Mult_add( FLA_ONE, alpha11, omega );
147  // FLA_Inv_scal( omega, gamma11 );
148  bl1_scopyconj( alpha11, &omega );
149  bl1_sadd3( alpha11, &omega, &omega );
150  bl1_sinvscals( &omega, gamma11 );
151 
152  // FLA_Axpys( FLA_MINUS_ONE, gamma11, a12t, FLA_ONE, c12t );
153  bl1_saxpysv( m_ahead,
154  buff_m1,
155  gamma11,
156  a12t, cs_A,
157  buff_1,
158  c12t, cs_C );
159 
160  // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, A22, W22 );
161  // FLA_Shift_diag( FLA_CONJUGATE, alpha11, W22 );
162  // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, W22, c12t );
165  m_ahead,
166  m_ahead,
167  A22, rs_A, cs_A,
168  W22, rs_W, cs_W );
169 
171  0,
172  m_ahead,
173  m_ahead,
174  alpha11,
175  W22, rs_W, cs_W );
176 
180  m_ahead,
181  W22, rs_W, cs_W,
182  c12t, cs_C );
183 
184  // FLA_Her2c( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE, FLA_MINUS_ONE, a12t, c12t, C22 );
187  m_ahead,
188  buff_m1,
189  a12t, cs_A,
190  c12t, cs_C,
191  C22, rs_C, cs_C );
192 
193  /*------------------------------------------------------------*/
194  }
195 
196  return FLA_SUCCESS;
197 }
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
Definition: blis_type_defs.h:81
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_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:55
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: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_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
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:74
Definition: blis_type_defs.h:63

◆ FLA_Lyap_h_opt_var4()

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

References FLA_Lyap_h_opc_var4(), FLA_Lyap_h_opd_var4(), FLA_Lyap_h_ops_var4(), FLA_Lyap_h_opz_var4(), 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_h().

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_h_ops_var4( 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_h_opd_var4( 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_h_opc_var4( 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_h_opz_var4( 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_h_ops_var4(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_var4.c:111
FLA_Error FLA_Obj_free(FLA_Obj *obj)
Definition: FLA_Obj.c:588
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
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
int FLA_Datatype
Definition: FLA_type_defs.h:49
FLA_Error FLA_Lyap_h_opc_var4(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_var4.c:291
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
FLA_Error FLA_Lyap_h_opd_var4(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_var4.c:201
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
FLA_Error FLA_Lyap_h_opz_var4(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_var4.c:381
Definition: blis_type_defs.h:137

◆ FLA_Lyap_h_opz_var4()

FLA_Error FLA_Lyap_h_opz_var4 ( 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_zaxpysv(), bl1_zcopymrt(), bl1_zher2(), bl1_zscalm(), bl1_zshiftdiag(), bl1_ztrsv(), 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_var4().

386 {
387  dcomplex* buff_1 = FLA_DOUBLE_COMPLEX_PTR( FLA_ONE );
388  dcomplex* buff_m1 = FLA_DOUBLE_COMPLEX_PTR( FLA_MINUS_ONE );
389  int i;
390 
392  m_AC,
393  m_AC,
394  buff_sgn,
395  buff_C, rs_C, cs_C );
396 
397  for ( i = 0; i < m_AC; ++i )
398  {
399  dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
400  dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
401  dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
402 
403  dcomplex* gamma11 = buff_C + (i )*cs_C + (i )*rs_C;
404  dcomplex* c12t = buff_C + (i+1)*cs_C + (i )*rs_C;
405  dcomplex* C22 = buff_C + (i+1)*cs_C + (i+1)*rs_C;
406 
407  dcomplex* W22 = buff_W + (i+1)*cs_W + (i+1)*rs_W;
408 
409  dcomplex omega;
410 
411  int m_ahead = m_AC - i - 1;
412 
413  /*------------------------------------------------------------*/
414 
415  // FLA_Copyt( FLA_CONJ_NO_TRANSPOSE, alpha11, omega );
416  // FLA_Mult_add( FLA_ONE, alpha11, omega );
417  // FLA_Inv_scal( omega, gamma11 );
418  bl1_zcopyconj( alpha11, &omega );
419  bl1_zadd3( alpha11, &omega, &omega );
420  bl1_zinvscals( &omega, gamma11 );
421 
422  // FLA_Axpys( FLA_MINUS_ONE, gamma11, a12t, FLA_ONE, c12t );
423  bl1_zaxpysv( m_ahead,
424  buff_m1,
425  gamma11,
426  a12t, cs_A,
427  buff_1,
428  c12t, cs_C );
429 
430  // FLA_Copyrt( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, A22, W22 );
431  // FLA_Shift_diag( FLA_CONJUGATE, alpha11, W22 );
432  // FLA_Trsv( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, W22, c12t );
435  m_ahead,
436  m_ahead,
437  A22, rs_A, cs_A,
438  W22, rs_W, cs_W );
439 
441  0,
442  m_ahead,
443  m_ahead,
444  alpha11,
445  W22, rs_W, cs_W );
446 
450  m_ahead,
451  W22, rs_W, cs_W,
452  c12t, cs_C );
453 
454  // FLA_Her2c( FLA_UPPER_TRIANGULAR, FLA_CONJUGATE, FLA_MINUS_ONE, a12t, c12t, C22 );
457  m_ahead,
458  buff_m1,
459  a12t, cs_A,
460  c12t, cs_C,
461  C22, rs_C, cs_C );
462 
463  /*------------------------------------------------------------*/
464  }
465 
466  return FLA_SUCCESS;
467 }
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
Definition: blis_type_defs.h:81
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:55
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
void bl1_zaxpysv(int n, dcomplex *alpha0, dcomplex *alpha1, dcomplex *x, int incx, dcomplex *beta, dcomplex *y, int incy)
Definition: bl1_axpysv.c:71
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_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
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