libflame  revision_anchor
Functions
FLA_Chol_u_opt_var1.c File Reference

(r)

Functions

FLA_Error FLA_Chol_u_opt_var1 (FLA_Obj A)
 
FLA_Error FLA_Chol_u_ops_var1 (int mn_A, float *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Chol_u_opd_var1 (int mn_A, double *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Chol_u_opc_var1 (int mn_A, scomplex *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Chol_u_opz_var1 (int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
 

Function Documentation

◆ FLA_Chol_u_opc_var1()

FLA_Error FLA_Chol_u_opc_var1 ( int  mn_A,
scomplex buff_A,
int  rs_A,
int  cs_A 
)
179 {
180  scomplex* buff_1 = FLA_COMPLEX_PTR( FLA_ONE );
181  scomplex* buff_m1 = FLA_COMPLEX_PTR( FLA_MINUS_ONE );
182  int i;
183  FLA_Error e_val;
184 
185  for ( i = 0; i < mn_A; ++i )
186  {
187  scomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
188  scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
189  scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
190 
191  int mn_behind = i;
192 
193  /*------------------------------------------------------------*/
194 
195  // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, A00, a01 );
199  mn_behind,
200  A00, rs_A, cs_A,
201  a01, rs_A );
202 
203  // FLA_Dotcs_external( FLA_CONJUGATE, FLA_MINUS_ONE, a01, a01, FLA_ONE, alpha11 );
205  mn_behind,
206  buff_m1,
207  a01, rs_A,
208  a01, rs_A,
209  buff_1,
210  alpha11 );
211 
212  // r_val = FLA_Sqrt( alpha11 );
213  // if ( r_val != FLA_SUCCESS )
214  // return ( FLA_Obj_length( A00 ) + 1 );
215  bl1_csqrte( alpha11, &e_val );
216  if ( e_val != FLA_SUCCESS ) return mn_behind;
217 
218  /*------------------------------------------------------------*/
219 
220  }
221 
222  return FLA_SUCCESS;
223 }
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
FLA_Obj FLA_ONE
Definition: FLA_Init.c:18
int FLA_Error
Definition: FLA_type_defs.h:47
int i
Definition: bl1_axmyv2.c:145
void bl1_cdots(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *beta, scomplex *rho)
Definition: bl1_dots.c:39
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
@ BLIS1_UPPER_TRIANGULAR
Definition: blis_type_defs.h:63
@ BLIS1_NONUNIT_DIAG
Definition: blis_type_defs.h:74
@ BLIS1_CONJ_TRANSPOSE
Definition: blis_type_defs.h:57
@ BLIS1_CONJUGATE
Definition: blis_type_defs.h:82
Definition: blis_type_defs.h:133

References bl1_cdots(), bl1_ctrsv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Chol_u_opt_var1().

◆ FLA_Chol_u_opd_var1()

FLA_Error FLA_Chol_u_opd_var1 ( int  mn_A,
double *  buff_A,
int  rs_A,
int  cs_A 
)
129 {
130  double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
131  double* buff_m1 = FLA_DOUBLE_PTR( FLA_MINUS_ONE );
132  int i;
133  FLA_Error e_val;
134 
135  for ( i = 0; i < mn_A; ++i )
136  {
137  double* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
138  double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
139  double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
140 
141  int mn_behind = i;
142 
143  /*------------------------------------------------------------*/
144 
145  // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, A00, a01 );
149  mn_behind,
150  A00, rs_A, cs_A,
151  a01, rs_A );
152 
153  // FLA_Dotcs_external( FLA_CONJUGATE, FLA_MINUS_ONE, a01, a01, FLA_ONE, alpha11 );
155  mn_behind,
156  buff_m1,
157  a01, rs_A,
158  a01, rs_A,
159  buff_1,
160  alpha11 );
161 
162  // r_val = FLA_Sqrt( alpha11 );
163  // if ( r_val != FLA_SUCCESS )
164  // return ( FLA_Obj_length( A00 ) + 1 );
165  bl1_dsqrte( alpha11, &e_val );
166  if ( e_val != FLA_SUCCESS ) return mn_behind;
167 
168  /*------------------------------------------------------------*/
169 
170  }
171 
172  return FLA_SUCCESS;
173 }
void bl1_ddots(conj1_t conj, int n, double *alpha, double *x, int incx, double *y, int incy, double *beta, double *rho)
Definition: bl1_dots.c:26
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

References bl1_ddots(), bl1_dtrsv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Chol_u_opt_var1().

◆ FLA_Chol_u_ops_var1()

FLA_Error FLA_Chol_u_ops_var1 ( int  mn_A,
float *  buff_A,
int  rs_A,
int  cs_A 
)
79 {
80  float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
81  float* buff_m1 = FLA_FLOAT_PTR( FLA_MINUS_ONE );
82  int i;
83  FLA_Error e_val;
84 
85  for ( i = 0; i < mn_A; ++i )
86  {
87  float* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
88  float* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
89  float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
90 
91  int mn_behind = i;
92 
93  /*------------------------------------------------------------*/
94 
95  // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, A00, a01 );
99  mn_behind,
100  A00, rs_A, cs_A,
101  a01, rs_A );
102 
103  // FLA_Dotcs_external( FLA_CONJUGATE, FLA_MINUS_ONE, a01, a01, FLA_ONE, alpha11 );
105  mn_behind,
106  buff_m1,
107  a01, rs_A,
108  a01, rs_A,
109  buff_1,
110  alpha11 );
111 
112  // r_val = FLA_Sqrt( alpha11 );
113  // if ( r_val != FLA_SUCCESS )
114  // return ( FLA_Obj_length( A00 ) + 1 );
115  bl1_ssqrte( alpha11, &e_val );
116  if ( e_val != FLA_SUCCESS ) return mn_behind;
117 
118  /*------------------------------------------------------------*/
119 
120  }
121 
122  return FLA_SUCCESS;
123 }
void bl1_sdots(conj1_t conj, int n, float *alpha, float *x, int incx, float *y, int incy, float *beta, float *rho)
Definition: bl1_dots.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

References bl1_sdots(), bl1_strsv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Chol_u_opt_var1().

◆ FLA_Chol_u_opt_var1()

FLA_Error FLA_Chol_u_opt_var1 ( FLA_Obj  A)
16 {
17  FLA_Error r_val = FLA_SUCCESS;
18  FLA_Datatype datatype;
19  int mn_A;
20  int rs_A, cs_A;
21 
22  datatype = FLA_Obj_datatype( A );
23 
24  mn_A = FLA_Obj_length( A );
25  rs_A = FLA_Obj_row_stride( A );
26  cs_A = FLA_Obj_col_stride( A );
27 
28 
29  switch ( datatype )
30  {
31  case FLA_FLOAT:
32  {
33  float* buff_A = FLA_FLOAT_PTR( A );
34 
35  r_val = FLA_Chol_u_ops_var1( mn_A,
36  buff_A, rs_A, cs_A );
37 
38  break;
39  }
40 
41  case FLA_DOUBLE:
42  {
43  double* buff_A = FLA_DOUBLE_PTR( A );
44 
45  r_val = FLA_Chol_u_opd_var1( mn_A,
46  buff_A, rs_A, cs_A );
47 
48  break;
49  }
50 
51  case FLA_COMPLEX:
52  {
53  scomplex* buff_A = FLA_COMPLEX_PTR( A );
54 
55  r_val = FLA_Chol_u_opc_var1( mn_A,
56  buff_A, rs_A, cs_A );
57 
58  break;
59  }
60 
61  case FLA_DOUBLE_COMPLEX:
62  {
63  dcomplex* buff_A = FLA_DOUBLE_COMPLEX_PTR( A );
64 
65  r_val = FLA_Chol_u_opz_var1( mn_A,
66  buff_A, rs_A, cs_A );
67 
68  break;
69  }
70  }
71 
72  return r_val;
73 }
FLA_Error FLA_Chol_u_opc_var1(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_Chol_u_opt_var1.c:177
FLA_Error FLA_Chol_u_opz_var1(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_Chol_u_opt_var1.c:227
FLA_Error FLA_Chol_u_ops_var1(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition: FLA_Chol_u_opt_var1.c:77
FLA_Error FLA_Chol_u_opd_var1(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition: FLA_Chol_u_opt_var1.c:127
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_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
int FLA_Datatype
Definition: FLA_type_defs.h:49
Definition: blis_type_defs.h:138

References FLA_Chol_u_opc_var1(), FLA_Chol_u_opd_var1(), FLA_Chol_u_ops_var1(), FLA_Chol_u_opz_var1(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), and FLA_Obj_row_stride().

Referenced by FLA_Chol_u().

◆ FLA_Chol_u_opz_var1()

FLA_Error FLA_Chol_u_opz_var1 ( int  mn_A,
dcomplex buff_A,
int  rs_A,
int  cs_A 
)
229 {
230  dcomplex* buff_1 = FLA_DOUBLE_COMPLEX_PTR( FLA_ONE );
231  dcomplex* buff_m1 = FLA_DOUBLE_COMPLEX_PTR( FLA_MINUS_ONE );
232  int i;
233  FLA_Error e_val;
234 
235  for ( i = 0; i < mn_A; ++i )
236  {
237  dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
238  dcomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
239  dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
240 
241  int mn_behind = i;
242 
243  /*------------------------------------------------------------*/
244 
245  // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_CONJ_TRANSPOSE, FLA_NONUNIT_DIAG, A00, a01 );
249  mn_behind,
250  A00, rs_A, cs_A,
251  a01, rs_A );
252 
253  // FLA_Dotcs_external( FLA_CONJUGATE, FLA_MINUS_ONE, a01, a01, FLA_ONE, alpha11 );
255  mn_behind,
256  buff_m1,
257  a01, rs_A,
258  a01, rs_A,
259  buff_1,
260  alpha11 );
261 
262  // r_val = FLA_Sqrt( alpha11 );
263  // if ( r_val != FLA_SUCCESS )
264  // return ( FLA_Obj_length( A00 ) + 1 );
265  bl1_zsqrte( alpha11, &e_val );
266  if ( e_val != FLA_SUCCESS ) return mn_behind;
267 
268  /*------------------------------------------------------------*/
269 
270  }
271 
272  return FLA_SUCCESS;
273 }
void bl1_zdots(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *beta, dcomplex *rho)
Definition: bl1_dots.c:56
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

References bl1_zdots(), bl1_ztrsv(), BLIS1_CONJ_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Chol_u_opt_var1().