libflame revision_anchor
Functions
FLA_Trinv_un_opt_var2.c File Reference

(r)

Functions

FLA_Error FLA_Trinv_un_opt_var2 (FLA_Obj A)
 
FLA_Error FLA_Trinv_un_ops_var2 (int mn_A, float *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_un_opd_var2 (int mn_A, double *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_un_opc_var2 (int mn_A, scomplex *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_un_opz_var2 (int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
 

Function Documentation

◆ FLA_Trinv_un_opc_var2()

FLA_Error FLA_Trinv_un_opc_var2 ( int  mn_A,
scomplex buff_A,
int  rs_A,
int  cs_A 
)
168{
170 int i;
171
172 for ( i = 0; i < mn_A; ++i )
173 {
174 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
175 scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
176 scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
177
178 int mn_ahead = mn_A - i - 1;
179
180 /*------------------------------------------------------------*/
181
182 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a12t );
186 mn_ahead,
187 A22, rs_A, cs_A,
188 a12t, cs_A );
189
190 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
191 // FLA_Inv_scal_external( alpha11, a12t );
194 mn_ahead,
195 &alpha11_m1,
196 a12t, 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_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_cinverts(conj1_t conj, scomplex *alpha)
Definition bl1_inverts.c:27
@ BLIS1_UPPER_TRIANGULAR
Definition blis_type_defs.h:63
@ 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_ctrsv(), BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, and i.

Referenced by FLA_Trinv_un_opt_var2().

◆ FLA_Trinv_un_opd_var2()

FLA_Error FLA_Trinv_un_opd_var2 ( 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* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
130 double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
131 double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
132
133 int mn_ahead = mn_A - i - 1;
134
135 /*------------------------------------------------------------*/
136
137 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a12t );
141 mn_ahead,
142 A22, rs_A, cs_A,
143 a12t, cs_A );
144
145 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
146 // FLA_Inv_scal_external( alpha11, a12t );
149 mn_ahead,
150 &alpha11_m1,
151 a12t, 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_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_dinverts(conj1_t conj, double *alpha)
Definition bl1_inverts.c:20

References bl1_dinverts(), bl1_dinvscalv(), bl1_dtrsv(), BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, and i.

Referenced by FLA_Trinv_un_opt_var2().

◆ FLA_Trinv_un_ops_var2()

FLA_Error FLA_Trinv_un_ops_var2 ( 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* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
85 float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
86 float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
87
88 int mn_ahead = mn_A - i - 1;
89
90 /*------------------------------------------------------------*/
91
92 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a12t );
97 A22, rs_A, cs_A,
98 a12t, cs_A );
99
100 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
101 // FLA_Inv_scal_external( alpha11, a12t );
104 mn_ahead,
105 &alpha11_m1,
106 a12t, 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_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_sinverts(conj1_t conj, float *alpha)
Definition bl1_inverts.c:13

References bl1_sinverts(), bl1_sinvscalv(), bl1_strsv(), BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, and i.

Referenced by FLA_Trinv_un_opt_var2().

◆ FLA_Trinv_un_opt_var2()

FLA_Error FLA_Trinv_un_opt_var2 ( 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
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 {
53
55 buff_A, rs_A, cs_A );
56
57 break;
58 }
59
61 {
63
65 buff_A, rs_A, cs_A );
66
67 break;
68 }
69 }
70
71 return FLA_SUCCESS;
72}
FLA_Error FLA_Trinv_un_opz_var2(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_un_opt_var2.c:211
FLA_Error FLA_Trinv_un_opc_var2(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_un_opt_var2.c:166
FLA_Error FLA_Trinv_un_opd_var2(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_un_opt_var2.c:121
FLA_Error FLA_Trinv_un_ops_var2(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_un_opt_var2.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_un_opc_var2(), FLA_Trinv_un_opd_var2(), FLA_Trinv_un_ops_var2(), FLA_Trinv_un_opz_var2(), and i.

Referenced by FLA_Trinv_un().

◆ FLA_Trinv_un_opz_var2()

FLA_Error FLA_Trinv_un_opz_var2 ( int  mn_A,
dcomplex buff_A,
int  rs_A,
int  cs_A 
)
213{
215 int i;
216
217 for ( i = 0; i < mn_A; ++i )
218 {
219 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
220 dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
221 dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
222
223 int mn_ahead = mn_A - i - 1;
224
225 /*------------------------------------------------------------*/
226
227 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a12t );
231 mn_ahead,
232 A22, rs_A, cs_A,
233 a12t, cs_A );
234
235 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
236 // FLA_Inv_scal_external( alpha11, a12t );
239 mn_ahead,
240 &alpha11_m1,
241 a12t, 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_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_zinverts(conj1_t conj, dcomplex *alpha)
Definition bl1_inverts.c:44

References bl1_zinverts(), bl1_zinvscalv(), bl1_ztrsv(), BLIS1_NO_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_TRANSPOSE, BLIS1_UPPER_TRIANGULAR, and i.

Referenced by FLA_Trinv_un_opt_var2().