libflame revision_anchor
Functions
FLA_Trinv_ln_opt_var3.c File Reference

(r)

Functions

FLA_Error FLA_Trinv_ln_opt_var3 (FLA_Obj A)
 
FLA_Error FLA_Trinv_ln_ops_var3 (int mn_A, float *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_ln_opd_var3 (int mn_A, double *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_ln_opc_var3 (int mn_A, scomplex *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_ln_opz_var3 (int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
 

Function Documentation

◆ FLA_Trinv_ln_opc_var3()

FLA_Error FLA_Trinv_ln_opc_var3 ( int  mn_A,
scomplex buff_A,
int  rs_A,
int  cs_A 
)
188{
191 int i;
192
193 for ( i = 0; i < mn_A; ++i )
194 {
195 scomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
196 scomplex* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
197 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
198 scomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
199
200 int mn_ahead = mn_A - i - 1;
201 int mn_behind = i;
202
203 /*------------------------------------------------------------*/
204
205 // FLA_Scal_external( FLA_MINUS_ONE, a21 );
206 // FLA_Inv_scal_external( alpha11, a21 );
209 mn_ahead,
210 &alpha11_m1,
211 a21, rs_A );
212
213 // FLA_Ger_external( FLA_ONE, a21, a10t, A20 );
216 mn_ahead,
217 mn_behind,
218 buff_1,
219 a21, rs_A,
220 a10t, cs_A,
221 A20, rs_A, cs_A );
222
223 // FLA_Inv_scal_external( alpha11, a10t );
225 mn_behind,
226 alpha11,
227 a10t, cs_A );
228
229 // FLA_Invert( FLA_NO_CONJUGATE, alpha11 );
231 alpha11 );
232
233 /*------------------------------------------------------------*/
234
235 }
236
237 return FLA_SUCCESS;
238}
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
int i
Definition bl1_axmyv2.c:145
void bl1_cger(conj1_t conjx, conj1_t conjy, int m, int n, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *a, int a_rs, int a_cs)
Definition bl1_ger.c:111
void bl1_cinvscalv(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx)
Definition bl1_invscalv.c:52
void bl1_cinverts(conj1_t conj, scomplex *alpha)
Definition bl1_inverts.c:27
@ BLIS1_NO_CONJUGATE
Definition blis_type_defs.h:81
Definition blis_type_defs.h:133

References bl1_cger(), bl1_cinverts(), bl1_cinvscalv(), BLIS1_NO_CONJUGATE, FLA_ONE, and i.

Referenced by FLA_Trinv_ln_opt_var3().

◆ FLA_Trinv_ln_opd_var3()

FLA_Error FLA_Trinv_ln_opd_var3 ( int  mn_A,
double buff_A,
int  rs_A,
int  cs_A 
)
132{
133 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
134 double alpha11_m1;
135 int i;
136
137 for ( i = 0; i < mn_A; ++i )
138 {
139 double* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
140 double* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
141 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
142 double* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
143
144 int mn_ahead = mn_A - i - 1;
145 int mn_behind = i;
146
147 /*------------------------------------------------------------*/
148
149 // FLA_Scal_external( FLA_MINUS_ONE, a21 );
150 // FLA_Inv_scal_external( alpha11, a21 );
153 mn_ahead,
154 &alpha11_m1,
155 a21, rs_A );
156
157 // FLA_Ger_external( FLA_ONE, a21, a10t, A20 );
160 mn_ahead,
161 mn_behind,
162 buff_1,
163 a21, rs_A,
164 a10t, cs_A,
165 A20, rs_A, cs_A );
166
167 // FLA_Inv_scal_external( alpha11, a10t );
169 mn_behind,
170 alpha11,
171 a10t, cs_A );
172
173 // FLA_Invert( FLA_NO_CONJUGATE, alpha11 );
175 alpha11 );
176
177 /*------------------------------------------------------------*/
178
179 }
180
181 return FLA_SUCCESS;
182}
void bl1_dger(conj1_t conjx, conj1_t conjy, int m, int n, double *alpha, double *x, int incx, double *y, int incy, double *a, int a_rs, int a_cs)
Definition bl1_ger.c:62
void bl1_dinvscalv(conj1_t conj, int n, double *alpha, double *x, int incx)
Definition bl1_invscalv.c:26
void bl1_dinverts(conj1_t conj, double *alpha)
Definition bl1_inverts.c:20

References bl1_dger(), bl1_dinverts(), bl1_dinvscalv(), BLIS1_NO_CONJUGATE, FLA_ONE, and i.

Referenced by FLA_Trinv_ln_opt_var3().

◆ FLA_Trinv_ln_ops_var3()

FLA_Error FLA_Trinv_ln_ops_var3 ( int  mn_A,
float buff_A,
int  rs_A,
int  cs_A 
)
76{
77 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
78 float alpha11_m1;
79 int i;
80
81 for ( i = 0; i < mn_A; ++i )
82 {
83 float* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
84 float* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
85 float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
86 float* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
87
88 int mn_ahead = mn_A - i - 1;
89 int mn_behind = i;
90
91 /*------------------------------------------------------------*/
92
93 // FLA_Scal_external( FLA_MINUS_ONE, a21 );
94 // FLA_Inv_scal_external( alpha11, a21 );
99 a21, rs_A );
100
101 // FLA_Ger_external( FLA_ONE, a21, a10t, A20 );
104 mn_ahead,
105 mn_behind,
106 buff_1,
107 a21, rs_A,
108 a10t, cs_A,
109 A20, rs_A, cs_A );
110
111 // FLA_Inv_scal_external( alpha11, a10t );
113 mn_behind,
114 alpha11,
115 a10t, cs_A );
116
117 // FLA_Invert( FLA_NO_CONJUGATE, alpha11 );
119 alpha11 );
120
121 /*------------------------------------------------------------*/
122
123 }
124
125 return FLA_SUCCESS;
126}
void bl1_sger(conj1_t conjx, conj1_t conjy, int m, int n, float *alpha, float *x, int incx, float *y, int incy, float *a, int a_rs, int a_cs)
Definition bl1_ger.c:13
void bl1_sinvscalv(conj1_t conj, int n, float *alpha, float *x, int incx)
Definition bl1_invscalv.c:13
void bl1_sinverts(conj1_t conj, float *alpha)
Definition bl1_inverts.c:13

References bl1_sger(), bl1_sinverts(), bl1_sinvscalv(), BLIS1_NO_CONJUGATE, FLA_ONE, and i.

Referenced by FLA_Trinv_ln_opt_var3().

◆ FLA_Trinv_ln_opt_var3()

FLA_Error FLA_Trinv_ln_opt_var3 ( FLA_Obj  A)
14{
15 FLA_Datatype datatype;
16 int mn_A;
17 int rs_A, cs_A;
18
19 datatype = FLA_Obj_datatype( A );
20
24
25
26 switch ( datatype )
27 {
28 case FLA_FLOAT:
29 {
30 float* buff_A = FLA_FLOAT_PTR( A );
31
33 buff_A, rs_A, cs_A );
34
35 break;
36 }
37
38 case FLA_DOUBLE:
39 {
40 double* buff_A = FLA_DOUBLE_PTR( A );
41
43 buff_A, rs_A, cs_A );
44
45 break;
46 }
47
48 case FLA_COMPLEX:
49 {
51
53 buff_A, rs_A, cs_A );
54
55 break;
56 }
57
59 {
61
63 buff_A, rs_A, cs_A );
64
65 break;
66 }
67 }
68
69 return FLA_SUCCESS;
70}
FLA_Error FLA_Trinv_ln_opd_var3(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_ln_opt_var3.c:130
FLA_Error FLA_Trinv_ln_opz_var3(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_ln_opt_var3.c:242
FLA_Error FLA_Trinv_ln_opc_var3(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_ln_opt_var3.c:186
FLA_Error FLA_Trinv_ln_ops_var3(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_ln_opt_var3.c:74
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_var3(), FLA_Trinv_ln_opd_var3(), FLA_Trinv_ln_ops_var3(), FLA_Trinv_ln_opz_var3(), and i.

Referenced by FLA_Trinv_ln().

◆ FLA_Trinv_ln_opz_var3()

FLA_Error FLA_Trinv_ln_opz_var3 ( int  mn_A,
dcomplex buff_A,
int  rs_A,
int  cs_A 
)
244{
247 int i;
248
249 for ( i = 0; i < mn_A; ++i )
250 {
251 dcomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
252 dcomplex* A20 = buff_A + (0 )*cs_A + (i+1)*rs_A;
253 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
254 dcomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
255
256 int mn_ahead = mn_A - i - 1;
257 int mn_behind = i;
258
259 /*------------------------------------------------------------*/
260
261 // FLA_Scal_external( FLA_MINUS_ONE, a21 );
262 // FLA_Inv_scal_external( alpha11, a21 );
265 mn_ahead,
266 &alpha11_m1,
267 a21, rs_A );
268
269 // FLA_Ger_external( FLA_ONE, a21, a10t, A20 );
272 mn_ahead,
273 mn_behind,
274 buff_1,
275 a21, rs_A,
276 a10t, cs_A,
277 A20, rs_A, cs_A );
278
279 // FLA_Inv_scal_external( alpha11, a10t );
281 mn_behind,
282 alpha11,
283 a10t, cs_A );
284
285 // FLA_Invert( FLA_NO_CONJUGATE, alpha11 );
287 alpha11 );
288
289 /*------------------------------------------------------------*/
290
291 }
292
293 return FLA_SUCCESS;
294}
void bl1_zger(conj1_t conjx, conj1_t conjy, int m, int n, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *a, int a_rs, int a_cs)
Definition bl1_ger.c:194
void bl1_zinvscalv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx)
Definition bl1_invscalv.c:78
void bl1_zinverts(conj1_t conj, dcomplex *alpha)
Definition bl1_inverts.c:44

References bl1_zger(), bl1_zinverts(), bl1_zinvscalv(), BLIS1_NO_CONJUGATE, FLA_ONE, and i.

Referenced by FLA_Trinv_ln_opt_var3().