libflame  revision_anchor
Functions
FLA_Trinv_ln_opt_var1.c File Reference

(r)

Functions

FLA_Error FLA_Trinv_ln_opt_var1 (FLA_Obj A)
 
FLA_Error FLA_Trinv_ln_ops_var1 (int mn_A, float *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_ln_opd_var1 (int mn_A, double *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_ln_opc_var1 (int mn_A, scomplex *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_ln_opz_var1 (int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
 

Function Documentation

◆ FLA_Trinv_ln_opc_var1()

FLA_Error FLA_Trinv_ln_opc_var1 ( int  mn_A,
scomplex buff_A,
int  rs_A,
int  cs_A 
)
168 {
169  scomplex alpha11_m1;
170  int i;
171 
172  for ( i = 0; i < mn_A; ++i )
173  {
174  scomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
175  scomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
176  scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
177 
178  int mn_behind = i;
179 
180  /*------------------------------------------------------------*/
181 
182  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, A00, a10t );
186  mn_behind,
187  A00, rs_A, cs_A,
188  a10t, cs_A );
189 
190  // FLA_Scal_external( FLA_MINUS_ONE, a10t );
191  // FLA_Inv_scal_external( alpha11, a10t );
192  bl1_cneg2( alpha11, &alpha11_m1 );
194  mn_behind,
195  &alpha11_m1,
196  a10t, cs_A );
197 
198  // FLA_Invert( FLA_NO_CONJUGATE, alpha11 );
200  alpha11 );
201 
202  /*------------------------------------------------------------*/
203 
204  }
205 
206  return FLA_SUCCESS;
207 }
int i
Definition: bl1_axmyv2.c:145
void bl1_cinvscalv(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx)
Definition: bl1_invscalv.c:52
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
void bl1_cinverts(conj1_t conj, scomplex *alpha)
Definition: bl1_inverts.c:27
@ 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_NO_CONJUGATE
Definition: blis_type_defs.h:81
Definition: blis_type_defs.h:133

References bl1_cinverts(), bl1_cinvscalv(), bl1_ctrmv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, and i.

Referenced by FLA_Trinv_ln_opt_var1().

◆ FLA_Trinv_ln_opd_var1()

FLA_Error FLA_Trinv_ln_opd_var1 ( int  mn_A,
double *  buff_A,
int  rs_A,
int  cs_A 
)
123 {
124  double alpha11_m1;
125  int i;
126 
127  for ( i = 0; i < mn_A; ++i )
128  {
129  double* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
130  double* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
131  double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
132 
133  int mn_behind = i;
134 
135  /*------------------------------------------------------------*/
136 
137  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, A00, a10t );
141  mn_behind,
142  A00, rs_A, cs_A,
143  a10t, cs_A );
144 
145  // FLA_Scal_external( FLA_MINUS_ONE, a10t );
146  // FLA_Inv_scal_external( alpha11, a10t );
147  bl1_dneg2( alpha11, &alpha11_m1 );
149  mn_behind,
150  &alpha11_m1,
151  a10t, cs_A );
152 
153  // FLA_Invert( FLA_NO_CONJUGATE, alpha11 );
155  alpha11 );
156 
157  /*------------------------------------------------------------*/
158 
159  }
160 
161  return FLA_SUCCESS;
162 }
void bl1_dinvscalv(conj1_t conj, int n, double *alpha, double *x, int incx)
Definition: bl1_invscalv.c:26
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
void bl1_dinverts(conj1_t conj, double *alpha)
Definition: bl1_inverts.c:20

References bl1_dinverts(), bl1_dinvscalv(), bl1_dtrmv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, and i.

Referenced by FLA_Trinv_ln_opt_var1().

◆ FLA_Trinv_ln_ops_var1()

FLA_Error FLA_Trinv_ln_ops_var1 ( int  mn_A,
float *  buff_A,
int  rs_A,
int  cs_A 
)
78 {
79  float alpha11_m1;
80  int i;
81 
82  for ( i = 0; i < mn_A; ++i )
83  {
84  float* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
85  float* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
86  float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
87 
88  int mn_behind = i;
89 
90  /*------------------------------------------------------------*/
91 
92  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, A00, a10t );
96  mn_behind,
97  A00, rs_A, cs_A,
98  a10t, cs_A );
99 
100  // FLA_Scal_external( FLA_MINUS_ONE, a10t );
101  // FLA_Inv_scal_external( alpha11, a10t );
102  bl1_sneg2( alpha11, &alpha11_m1 );
104  mn_behind,
105  &alpha11_m1,
106  a10t, cs_A );
107 
108  // FLA_Invert( FLA_NO_CONJUGATE, alpha11 );
110  alpha11 );
111 
112  /*------------------------------------------------------------*/
113 
114  }
115 
116  return FLA_SUCCESS;
117 }
void bl1_sinvscalv(conj1_t conj, int n, float *alpha, float *x, int incx)
Definition: bl1_invscalv.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
void bl1_sinverts(conj1_t conj, float *alpha)
Definition: bl1_inverts.c:13

References bl1_sinverts(), bl1_sinvscalv(), bl1_strmv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, and i.

Referenced by FLA_Trinv_ln_opt_var1().

◆ FLA_Trinv_ln_opt_var1()

FLA_Error FLA_Trinv_ln_opt_var1 ( FLA_Obj  A)
16 {
17  FLA_Datatype datatype;
18  int mn_A;
19  int rs_A, cs_A;
20 
21  datatype = FLA_Obj_datatype( A );
22 
23  mn_A = FLA_Obj_length( A );
24  rs_A = FLA_Obj_row_stride( A );
25  cs_A = FLA_Obj_col_stride( A );
26 
27 
28  switch ( datatype )
29  {
30  case FLA_FLOAT:
31  {
32  float* buff_A = FLA_FLOAT_PTR( A );
33 
35  buff_A, rs_A, cs_A );
36 
37  break;
38  }
39 
40  case FLA_DOUBLE:
41  {
42  double* buff_A = FLA_DOUBLE_PTR( A );
43 
45  buff_A, rs_A, cs_A );
46 
47  break;
48  }
49 
50  case FLA_COMPLEX:
51  {
52  scomplex* buff_A = FLA_COMPLEX_PTR( A );
53 
55  buff_A, rs_A, cs_A );
56 
57  break;
58  }
59 
60  case FLA_DOUBLE_COMPLEX:
61  {
62  dcomplex* buff_A = FLA_DOUBLE_COMPLEX_PTR( A );
63 
65  buff_A, rs_A, cs_A );
66 
67  break;
68  }
69  }
70 
71  return FLA_SUCCESS;
72 }
FLA_Error FLA_Trinv_ln_opd_var1(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition: FLA_Trinv_ln_opt_var1.c:121
FLA_Error FLA_Trinv_ln_opz_var1(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_Trinv_ln_opt_var1.c:211
FLA_Error FLA_Trinv_ln_opc_var1(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_Trinv_ln_opt_var1.c:166
FLA_Error FLA_Trinv_ln_ops_var1(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition: FLA_Trinv_ln_opt_var1.c:76
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_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Trinv_ln_opc_var1(), FLA_Trinv_ln_opd_var1(), FLA_Trinv_ln_ops_var1(), and FLA_Trinv_ln_opz_var1().

Referenced by FLA_Trinv_ln().

◆ FLA_Trinv_ln_opz_var1()

FLA_Error FLA_Trinv_ln_opz_var1 ( int  mn_A,
dcomplex buff_A,
int  rs_A,
int  cs_A 
)
213 {
214  dcomplex alpha11_m1;
215  int i;
216 
217  for ( i = 0; i < mn_A; ++i )
218  {
219  dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
220  dcomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
221  dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
222 
223  int mn_behind = i;
224 
225  /*------------------------------------------------------------*/
226 
227  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, A00, a10t );
231  mn_behind,
232  A00, rs_A, cs_A,
233  a10t, cs_A );
234 
235  // FLA_Scal_external( FLA_MINUS_ONE, a10t );
236  // FLA_Inv_scal_external( alpha11, a10t );
237  bl1_zneg2( alpha11, &alpha11_m1 );
239  mn_behind,
240  &alpha11_m1,
241  a10t, cs_A );
242 
243  // FLA_Invert( FLA_NO_CONJUGATE, alpha11 );
245  alpha11 );
246 
247  /*------------------------------------------------------------*/
248 
249  }
250 
251  return FLA_SUCCESS;
252 }
void bl1_zinvscalv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx)
Definition: bl1_invscalv.c:78
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
void bl1_zinverts(conj1_t conj, dcomplex *alpha)
Definition: bl1_inverts.c:44

References bl1_zinverts(), bl1_zinvscalv(), bl1_ztrmv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, and i.

Referenced by FLA_Trinv_ln_opt_var1().