libflame revision_anchor
Functions
FLA_Trinv_lu_opt_var2.c File Reference

(r)

Functions

FLA_Error FLA_Trinv_lu_opt_var2 (FLA_Obj A)
 
FLA_Error FLA_Trinv_lu_ops_var2 (int mn_A, float *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_lu_opd_var2 (int mn_A, double *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_lu_opc_var2 (int mn_A, scomplex *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_lu_opz_var2 (int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
 

Function Documentation

◆ FLA_Trinv_lu_opc_var2()

FLA_Error FLA_Trinv_lu_opc_var2 ( int  mn_A,
scomplex buff_A,
int  rs_A,
int  cs_A 
)
154{
156 int i;
157
158 for ( i = 0; i < mn_A; ++i )
159 {
160 scomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
161 scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
162
163 int mn_ahead = mn_A - i - 1;
164
165 /*------------------------------------------------------------*/
166
167 // FLA_Trsv_external( FLA_LOWER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A22, a21 );
171 mn_ahead,
172 A22, rs_A, cs_A,
173 a21, rs_A );
174
175 // FLA_Scal_external( FLA_MINUS_ONE, a21 );
177 mn_ahead,
178 buff_m1,
179 a21, rs_A );
180
181 /*------------------------------------------------------------*/
182
183 }
184
185 return FLA_SUCCESS;
186}
FLA_Obj FLA_MINUS_ONE
Definition FLA_Init.c:22
int i
Definition bl1_axmyv2.c:145
void bl1_cscalv(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx)
Definition bl1_scalv.c:46
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_LOWER_TRIANGULAR
Definition blis_type_defs.h:62
@ BLIS1_UNIT_DIAG
Definition blis_type_defs.h:75
@ BLIS1_NO_TRANSPOSE
Definition blis_type_defs.h:54
@ BLIS1_NO_CONJUGATE
Definition blis_type_defs.h:81
Definition blis_type_defs.h:133

References bl1_cscalv(), bl1_ctrsv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UNIT_DIAG, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_lu_opt_var2().

◆ FLA_Trinv_lu_opd_var2()

FLA_Error FLA_Trinv_lu_opd_var2 ( int  mn_A,
double buff_A,
int  rs_A,
int  cs_A 
)
116{
118 int i;
119
120 for ( i = 0; i < mn_A; ++i )
121 {
122 double* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
123 double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
124
125 int mn_ahead = mn_A - i - 1;
126
127 /*------------------------------------------------------------*/
128
129 // FLA_Trsv_external( FLA_LOWER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A22, a21 );
133 mn_ahead,
134 A22, rs_A, cs_A,
135 a21, rs_A );
136
137 // FLA_Scal_external( FLA_MINUS_ONE, a21 );
139 mn_ahead,
140 buff_m1,
141 a21, rs_A );
142
143 /*------------------------------------------------------------*/
144
145 }
146
147 return FLA_SUCCESS;
148}
void bl1_dscalv(conj1_t conj, int n, double *alpha, double *x, int incx)
Definition bl1_scalv.c:24
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_dscalv(), bl1_dtrsv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UNIT_DIAG, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_lu_opt_var2().

◆ FLA_Trinv_lu_ops_var2()

FLA_Error FLA_Trinv_lu_ops_var2 ( int  mn_A,
float buff_A,
int  rs_A,
int  cs_A 
)
78{
80 int i;
81
82 for ( i = 0; i < mn_A; ++i )
83 {
84 float* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
85 float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
86
87 int mn_ahead = mn_A - i - 1;
88
89 /*------------------------------------------------------------*/
90
91 // FLA_Trsv_external( FLA_LOWER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A22, a21 );
96 A22, rs_A, cs_A,
97 a21, rs_A );
98
99 // FLA_Scal_external( FLA_MINUS_ONE, a21 );
101 mn_ahead,
102 buff_m1,
103 a21, rs_A );
104
105 /*------------------------------------------------------------*/
106
107 }
108
109 return FLA_SUCCESS;
110}
void bl1_sscalv(conj1_t conj, int n, float *alpha, float *x, int incx)
Definition bl1_scalv.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_sscalv(), bl1_strsv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UNIT_DIAG, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_lu_opt_var2().

◆ FLA_Trinv_lu_opt_var2()

FLA_Error FLA_Trinv_lu_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_lu_opc_var2(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_lu_opt_var2.c:152
FLA_Error FLA_Trinv_lu_opd_var2(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_lu_opt_var2.c:114
FLA_Error FLA_Trinv_lu_opz_var2(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_lu_opt_var2.c:190
FLA_Error FLA_Trinv_lu_ops_var2(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_lu_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_lu_opc_var2(), FLA_Trinv_lu_opd_var2(), FLA_Trinv_lu_ops_var2(), FLA_Trinv_lu_opz_var2(), and i.

Referenced by FLA_Trinv_lu().

◆ FLA_Trinv_lu_opz_var2()

FLA_Error FLA_Trinv_lu_opz_var2 ( int  mn_A,
dcomplex buff_A,
int  rs_A,
int  cs_A 
)
192{
194 int i;
195
196 for ( i = 0; i < mn_A; ++i )
197 {
198 dcomplex* a21 = buff_A + (i )*cs_A + (i+1)*rs_A;
199 dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
200
201 int mn_ahead = mn_A - i - 1;
202
203 /*------------------------------------------------------------*/
204
205 // FLA_Trsv_external( FLA_LOWER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A22, a21 );
209 mn_ahead,
210 A22, rs_A, cs_A,
211 a21, rs_A );
212
213 // FLA_Scal_external( FLA_MINUS_ONE, a21 );
215 mn_ahead,
216 buff_m1,
217 a21, rs_A );
218
219 /*------------------------------------------------------------*/
220
221 }
222
223 return FLA_SUCCESS;
224}
void bl1_zscalv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx)
Definition bl1_scalv.c:72
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_zscalv(), bl1_ztrsv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UNIT_DIAG, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_lu_opt_var2().