libflame revision_anchor
Functions
FLA_Trinv_uu.h File Reference

(r)

Go to the source code of this file.

Functions

FLA_Error FLA_Trinv_uu_blk_var1 (FLA_Obj A, fla_trinv_t *cntl)
 
FLA_Error FLA_Trinv_uu_blk_var2 (FLA_Obj A, fla_trinv_t *cntl)
 
FLA_Error FLA_Trinv_uu_blk_var3 (FLA_Obj A, fla_trinv_t *cntl)
 
FLA_Error FLA_Trinv_uu_blk_var4 (FLA_Obj A, fla_trinv_t *cntl)
 
FLA_Error FLA_Trinv_uu_unb_var1 (FLA_Obj A)
 
FLA_Error FLA_Trinv_uu_unb_var2 (FLA_Obj A)
 
FLA_Error FLA_Trinv_uu_unb_var3 (FLA_Obj A)
 
FLA_Error FLA_Trinv_uu_unb_var4 (FLA_Obj A)
 
FLA_Error FLA_Trinv_uu_opt_var1 (FLA_Obj A)
 
FLA_Error FLA_Trinv_uu_ops_var1 (int mn_A, float *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opd_var1 (int mn_A, double *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opc_var1 (int mn_A, scomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opz_var1 (int mn_A, dcomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opt_var2 (FLA_Obj A)
 
FLA_Error FLA_Trinv_uu_ops_var2 (int mn_A, float *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opd_var2 (int mn_A, double *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opc_var2 (int mn_A, scomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opz_var2 (int mn_A, dcomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opt_var3 (FLA_Obj A)
 
FLA_Error FLA_Trinv_uu_ops_var3 (int mn_A, float *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opd_var3 (int mn_A, double *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opc_var3 (int mn_A, scomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opz_var3 (int mn_A, dcomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opt_var4 (FLA_Obj A)
 
FLA_Error FLA_Trinv_uu_ops_var4 (int mn_A, float *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opd_var4 (int mn_A, double *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opc_var4 (int mn_A, scomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_uu_opz_var4 (int mn_A, dcomplex *A, int rs_A, int cs_A)
 

Function Documentation

◆ FLA_Trinv_uu_blk_var1()

FLA_Error FLA_Trinv_uu_blk_var1 ( FLA_Obj  A,
fla_trinv_t cntl 
)
16{
17 FLA_Obj ATL, ATR, A00, A01, A02,
18 ABL, ABR, A10, A11, A12,
19 A20, A21, A22;
20
21 dim_t b;
22
23 FLA_Part_2x2( A, &ATL, &ATR,
24 &ABL, &ABR, 0, 0, FLA_TL );
25
26 while ( FLA_Obj_length( ATL ) < FLA_Obj_length( A ) ){
27
29
30 FLA_Repart_2x2_to_3x3( ATL, /**/ ATR, &A00, /**/ &A01, &A02,
31 /* ************* */ /* ******************** */
32 &A10, /**/ &A11, &A12,
33 ABL, /**/ ABR, &A20, /**/ &A21, &A22,
34 b, b, FLA_BR );
35
36 /*------------------------------------------------------------*/
37
38 // A01 = A00 * A01;
40 FLA_ONE, A00, A01,
41 FLA_Cntl_sub_trmm( cntl ) );
42
43 // A01 = -A01 / triuu( A11 );
46 FLA_Cntl_sub_trsm1( cntl ) );
47
48 // A11 = inv( A11 );
50 FLA_Cntl_sub_trinv( cntl ) );
51
52 /*------------------------------------------------------------*/
53
54 FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR, A00, A01, /**/ A02,
55 A10, A11, /**/ A12,
56 /* ************** */ /* ****************** */
57 &ABL, /**/ &ABR, A20, A21, /**/ A22,
58 FLA_TL );
59
60 }
61
62 return FLA_SUCCESS;
63}
FLA_Error FLA_Trinv_internal(FLA_Uplo uplo, FLA_Diag diag, FLA_Obj A, fla_trinv_t *cntl)
Definition FLA_Trinv_internal.c:16
FLA_Error FLA_Trmm_internal(FLA_Side side, FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, fla_trmm_t *cntl)
Definition FLA_Trmm_internal.c:16
FLA_Error FLA_Trsm_internal(FLA_Side side, FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, fla_trsm_t *cntl)
Definition FLA_Trsm_internal.c:16
FLA_Obj FLA_MINUS_ONE
Definition FLA_Init.c:22
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
FLA_Error FLA_Cont_with_3x3_to_2x2(FLA_Obj *ATL, FLA_Obj *ATR, FLA_Obj A00, FLA_Obj A01, FLA_Obj A02, FLA_Obj A10, FLA_Obj A11, FLA_Obj A12, FLA_Obj *ABL, FLA_Obj *ABR, FLA_Obj A20, FLA_Obj A21, FLA_Obj A22, FLA_Quadrant quadrant)
Definition FLA_View.c:304
FLA_Error FLA_Part_2x2(FLA_Obj A, FLA_Obj *A11, FLA_Obj *A12, FLA_Obj *A21, FLA_Obj *A22, dim_t mb, dim_t nb, FLA_Quadrant quadrant)
Definition FLA_View.c:17
dim_t FLA_Obj_length(FLA_Obj obj)
Definition FLA_Query.c:116
FLA_Error FLA_Repart_2x2_to_3x3(FLA_Obj ATL, FLA_Obj ATR, FLA_Obj *A00, FLA_Obj *A01, FLA_Obj *A02, FLA_Obj *A10, FLA_Obj *A11, FLA_Obj *A12, FLA_Obj ABL, FLA_Obj ABR, FLA_Obj *A20, FLA_Obj *A21, FLA_Obj *A22, dim_t mb, dim_t nb, FLA_Quadrant quadrant)
Definition FLA_View.c:142
dim_t FLA_Determine_blocksize(FLA_Obj A_unproc, FLA_Quadrant to_dir, fla_blocksize_t *cntl_blocksizes)
Definition FLA_Blocksize.c:234
unsigned long dim_t
Definition FLA_type_defs.h:71
int i
Definition bl1_axmyv2.c:145
Definition FLA_type_defs.h:159

References FLA_Cont_with_3x3_to_2x2(), FLA_Determine_blocksize(), FLA_MINUS_ONE, FLA_Obj_length(), FLA_ONE, FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Trinv_internal(), FLA_Trmm_internal(), FLA_Trsm_internal(), and i.

Referenced by FLA_Trinv_uu().

◆ FLA_Trinv_uu_blk_var2()

FLA_Error FLA_Trinv_uu_blk_var2 ( FLA_Obj  A,
fla_trinv_t cntl 
)
16{
17 FLA_Obj ATL, ATR, A00, A01, A02,
18 ABL, ABR, A10, A11, A12,
19 A20, A21, A22;
20
21 dim_t b;
22
23 FLA_Part_2x2( A, &ATL, &ATR,
24 &ABL, &ABR, 0, 0, FLA_TL );
25
26 while ( FLA_Obj_length( ATL ) < FLA_Obj_length( A ) ){
27
29
30 FLA_Repart_2x2_to_3x3( ATL, /**/ ATR, &A00, /**/ &A01, &A02,
31 /* ************* */ /* ******************** */
32 &A10, /**/ &A11, &A12,
33 ABL, /**/ ABR, &A20, /**/ &A21, &A22,
34 b, b, FLA_BR );
35
36 /*------------------------------------------------------------*/
37
38 // A12 = A12 / triuu( A22 );
40 FLA_ONE, A22, A12,
41 FLA_Cntl_sub_trsm1( cntl ) );
42
43 // A12 = -triuu( A11 ) \ A12;
46 FLA_Cntl_sub_trsm2( cntl ) );
47
48 // A11 = inv( A11 );
50 FLA_Cntl_sub_trinv( cntl ) );
51
52 /*------------------------------------------------------------*/
53
54 FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR, A00, A01, /**/ A02,
55 A10, A11, /**/ A12,
56 /* ************** */ /* ****************** */
57 &ABL, /**/ &ABR, A20, A21, /**/ A22,
58 FLA_TL );
59
60 }
61
62 return FLA_SUCCESS;
63}

References FLA_Cont_with_3x3_to_2x2(), FLA_Determine_blocksize(), FLA_MINUS_ONE, FLA_Obj_length(), FLA_ONE, FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Trinv_internal(), FLA_Trsm_internal(), and i.

Referenced by FLA_Trinv_uu().

◆ FLA_Trinv_uu_blk_var3()

FLA_Error FLA_Trinv_uu_blk_var3 ( FLA_Obj  A,
fla_trinv_t cntl 
)
14{
15 FLA_Obj ATL, ATR, A00, A01, A02,
16 ABL, ABR, A10, A11, A12,
17 A20, A21, A22;
18
19 dim_t b;
20
21 FLA_Part_2x2( A, &ATL, &ATR,
22 &ABL, &ABR, 0, 0, FLA_TL );
23
24 while ( FLA_Obj_length( ATL ) < FLA_Obj_length( A ) ){
25
27
28 FLA_Repart_2x2_to_3x3( ATL, /**/ ATR, &A00, /**/ &A01, &A02,
29 /* ************* */ /* ******************** */
30 &A10, /**/ &A11, &A12,
31 ABL, /**/ ABR, &A20, /**/ &A21, &A22,
32 b, b, FLA_BR );
33
34 /*------------------------------------------------------------*/
35
36 // A12 = -triuu( A11 ) \ A12;
39 FLA_Cntl_sub_trsm1( cntl ) );
40
41 // A02 = A01 * A12 + A02;
44 FLA_Cntl_sub_gemm( cntl ) );
45
46 // A01 = A01 / triuu( A11 );
48 FLA_ONE, A11, A01,
49 FLA_Cntl_sub_trsm2( cntl ) );
50
51 // A11 = inv( A11 );
53 FLA_Cntl_sub_trinv( cntl ) );
54
55 /*------------------------------------------------------------*/
56
57 FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR, A00, A01, /**/ A02,
58 A10, A11, /**/ A12,
59 /* ************** */ /* ****************** */
60 &ABL, /**/ &ABR, A20, A21, /**/ A22,
61 FLA_TL );
62
63 }
64
65 return FLA_SUCCESS;
66}
FLA_Error FLA_Gemm_internal(FLA_Trans transa, FLA_Trans transb, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, FLA_Obj beta, FLA_Obj C, fla_gemm_t *cntl)
Definition FLA_Gemm_internal.c:16

References FLA_Cont_with_3x3_to_2x2(), FLA_Determine_blocksize(), FLA_Gemm_internal(), FLA_MINUS_ONE, FLA_Obj_length(), FLA_ONE, FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Trinv_internal(), FLA_Trsm_internal(), and i.

Referenced by FLA_Trinv_uu().

◆ FLA_Trinv_uu_blk_var4()

FLA_Error FLA_Trinv_uu_blk_var4 ( FLA_Obj  A,
fla_trinv_t cntl 
)
16{
17 FLA_Obj ATL, ATR, A00, A01, A02,
18 ABL, ABR, A10, A11, A12,
19 A20, A21, A22;
20
21 dim_t b;
22
23 FLA_Part_2x2( A, &ATL, &ATR,
24 &ABL, &ABR, 0, 0, FLA_TL );
25
26 while ( FLA_Obj_length( ATL ) < FLA_Obj_length( A ) ){
27
29
30 FLA_Repart_2x2_to_3x3( ATL, /**/ ATR, &A00, /**/ &A01, &A02,
31 /* ************* */ /* ******************** */
32 &A10, /**/ &A11, &A12,
33 ABL, /**/ ABR, &A20, /**/ &A21, &A22,
34 b, b, FLA_BR );
35
36 /*------------------------------------------------------------*/
37
38 // A12 = -A12 / triuu( A22 );
41 FLA_Cntl_sub_trsm1( cntl ) );
42
43 // A02 = -A01 * A12 + A02;
46 FLA_Cntl_sub_gemm( cntl ) );
47
48 // A01 = A00 * A01;
50 FLA_ONE, A00, A01,
51 FLA_Cntl_sub_trmm( cntl ) );
52
53 // A11 = inv( A11 );
55 FLA_Cntl_sub_trinv( cntl ) );
56
57 /*------------------------------------------------------------*/
58
59 FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR, A00, A01, /**/ A02,
60 A10, A11, /**/ A12,
61 /* ************** */ /* ****************** */
62 &ABL, /**/ &ABR, A20, A21, /**/ A22,
63 FLA_TL );
64
65 }
66
67 return FLA_SUCCESS;
68}

References FLA_Cont_with_3x3_to_2x2(), FLA_Determine_blocksize(), FLA_Gemm_internal(), FLA_MINUS_ONE, FLA_Obj_length(), FLA_ONE, FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Trinv_internal(), FLA_Trmm_internal(), FLA_Trsm_internal(), and i.

Referenced by FLA_Trinv_uu().

◆ FLA_Trinv_uu_opc_var1()

FLA_Error FLA_Trinv_uu_opc_var1 ( int  mn_A,
scomplex A,
int  rs_A,
int  cs_A 
)
154{
156 int i;
157
158 for ( i = 0; i < mn_A; ++i )
159 {
160 scomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
161 scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
162
163 int mn_behind = i;
164
165 /*------------------------------------------------------------*/
166
167 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A00, a01 );
171 mn_behind,
172 A00, rs_A, cs_A,
173 a01, rs_A );
174
175 // FLA_Scal_external( FLA_MINUS_ONE, a01 );
177 mn_behind,
178 buff_m1,
179 a01, rs_A );
180
181 /*------------------------------------------------------------*/
182
183 }
184
185 return FLA_SUCCESS;
186}
void bl1_cscalv(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx)
Definition bl1_scalv.c:46
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
@ BLIS1_UPPER_TRIANGULAR
Definition blis_type_defs.h:63
@ 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_ctrmv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var1().

◆ FLA_Trinv_uu_opc_var2()

FLA_Error FLA_Trinv_uu_opc_var2 ( int  mn_A,
scomplex A,
int  rs_A,
int  cs_A 
)
154{
156 int i;
157
158 for ( i = 0; i < mn_A; ++i )
159 {
160 scomplex* a12t = buff_A + (i+1)*cs_A + (i )*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_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A22, a12t );
171 mn_ahead,
172 A22, rs_A, cs_A,
173 a12t, cs_A );
174
175 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
177 mn_ahead,
178 buff_m1,
179 a12t, cs_A );
180
181 /*------------------------------------------------------------*/
182
183 }
184
185 return FLA_SUCCESS;
186}
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_TRANSPOSE
Definition blis_type_defs.h:55

References bl1_cscalv(), bl1_ctrsv(), BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var2().

◆ FLA_Trinv_uu_opc_var3()

FLA_Error FLA_Trinv_uu_opc_var3 ( int  mn_A,
scomplex A,
int  rs_A,
int  cs_A 
)
162{
165 int i;
166
167 for ( i = 0; i < mn_A; ++i )
168 {
169 scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
170 scomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
171 scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
172
173 int mn_ahead = mn_A - i - 1;
174 int mn_behind = i;
175
176 /*------------------------------------------------------------*/
177
178 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
180 mn_ahead,
181 buff_m1,
182 a12t, cs_A );
183
184 // FLA_Ger_external( FLA_ONE, a01, a12t, A02 );
187 mn_behind,
188 mn_ahead,
189 buff_1,
190 a01, rs_A,
191 a12t, cs_A,
192 A02, rs_A, cs_A );
193
194 /*------------------------------------------------------------*/
195
196 }
197
198 return FLA_SUCCESS;
199}
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

References bl1_cger(), bl1_cscalv(), BLIS1_NO_CONJUGATE, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var3().

◆ FLA_Trinv_uu_opc_var4()

FLA_Error FLA_Trinv_uu_opc_var4 ( int  mn_A,
scomplex A,
int  rs_A,
int  cs_A 
)
196{
198 int i;
199
200 for ( i = 0; i < mn_A; ++i )
201 {
202 scomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
203 scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
204 scomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
205 scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
206 scomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
207
208 int mn_ahead = mn_A - i - 1;
209 int mn_behind = i;
210
211 /*------------------------------------------------------------*/
212
213 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
214 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A22, a12t );
216 mn_ahead,
217 buff_m1,
218 a12t, cs_A );
222 mn_ahead,
223 A22, rs_A, cs_A,
224 a12t, cs_A );
225
226 // FLA_Ger_external( FLA_MINUS_ONE, a01, a12t, A02 );
229 mn_behind,
230 mn_ahead,
231 buff_m1,
232 a01, rs_A,
233 a12t, cs_A,
234 A02, rs_A, cs_A );
235
236 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A00, a01 );
240 mn_behind,
241 A00, rs_A, cs_A,
242 a01, rs_A );
243
244 /*------------------------------------------------------------*/
245
246 }
247
248 return FLA_SUCCESS;
249}

References bl1_cger(), bl1_cscalv(), bl1_ctrmv(), bl1_ctrsv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var4().

◆ FLA_Trinv_uu_opd_var1()

FLA_Error FLA_Trinv_uu_opd_var1 ( int  mn_A,
double A,
int  rs_A,
int  cs_A 
)
116{
118 int i;
119
120 for ( i = 0; i < mn_A; ++i )
121 {
122 double* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
123 double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
124
125 int mn_behind = i;
126
127 /*------------------------------------------------------------*/
128
129 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A00, a01 );
133 mn_behind,
134 A00, rs_A, cs_A,
135 a01, rs_A );
136
137 // FLA_Scal_external( FLA_MINUS_ONE, a01 );
139 mn_behind,
140 buff_m1,
141 a01, 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_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

References bl1_dscalv(), bl1_dtrmv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var1().

◆ FLA_Trinv_uu_opd_var2()

FLA_Error FLA_Trinv_uu_opd_var2 ( int  mn_A,
double A,
int  rs_A,
int  cs_A 
)
116{
118 int i;
119
120 for ( i = 0; i < mn_A; ++i )
121 {
122 double* a12t = buff_A + (i+1)*cs_A + (i )*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_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A22, a12t );
133 mn_ahead,
134 A22, rs_A, cs_A,
135 a12t, cs_A );
136
137 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
139 mn_ahead,
140 buff_m1,
141 a12t, cs_A );
142
143 /*------------------------------------------------------------*/
144
145 }
146
147 return FLA_SUCCESS;
148}
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_NO_CONJUGATE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var2().

◆ FLA_Trinv_uu_opd_var3()

FLA_Error FLA_Trinv_uu_opd_var3 ( int  mn_A,
double A,
int  rs_A,
int  cs_A 
)
119{
120 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
122 int i;
123
124 for ( i = 0; i < mn_A; ++i )
125 {
126 double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
127 double* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
128 double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
129
130 int mn_ahead = mn_A - i - 1;
131 int mn_behind = i;
132
133 /*------------------------------------------------------------*/
134
135 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
137 mn_ahead,
138 buff_m1,
139 a12t, cs_A );
140
141 // FLA_Ger_external( FLA_ONE, a01, a12t, A02 );
144 mn_behind,
145 mn_ahead,
146 buff_1,
147 a01, rs_A,
148 a12t, cs_A,
149 A02, rs_A, cs_A );
150
151 /*------------------------------------------------------------*/
152
153 }
154
155 return FLA_SUCCESS;
156}
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

References bl1_dger(), bl1_dscalv(), BLIS1_NO_CONJUGATE, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var3().

◆ FLA_Trinv_uu_opd_var4()

FLA_Error FLA_Trinv_uu_opd_var4 ( int  mn_A,
double A,
int  rs_A,
int  cs_A 
)
137{
139 int i;
140
141 for ( i = 0; i < mn_A; ++i )
142 {
143 double* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
144 double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
145 double* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
146 double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
147 double* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
148
149 int mn_ahead = mn_A - i - 1;
150 int mn_behind = i;
151
152 /*------------------------------------------------------------*/
153
154 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
155 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A22, a12t );
157 mn_ahead,
158 buff_m1,
159 a12t, cs_A );
163 mn_ahead,
164 A22, rs_A, cs_A,
165 a12t, cs_A );
166
167 // FLA_Ger_external( FLA_MINUS_ONE, a01, a12t, A02 );
170 mn_behind,
171 mn_ahead,
172 buff_m1,
173 a01, rs_A,
174 a12t, cs_A,
175 A02, rs_A, cs_A );
176
177 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A00, a01 );
181 mn_behind,
182 A00, rs_A, cs_A,
183 a01, rs_A );
184
185 /*------------------------------------------------------------*/
186
187 }
188
189 return FLA_SUCCESS;
190}

References bl1_dger(), bl1_dscalv(), bl1_dtrmv(), bl1_dtrsv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var4().

◆ FLA_Trinv_uu_ops_var1()

FLA_Error FLA_Trinv_uu_ops_var1 ( int  mn_A,
float A,
int  rs_A,
int  cs_A 
)
78{
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* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
86
87 int mn_behind = i;
88
89 /*------------------------------------------------------------*/
90
91 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A00, a01 );
96 A00, rs_A, cs_A,
97 a01, rs_A );
98
99 // FLA_Scal_external( FLA_MINUS_ONE, a01 );
101 mn_behind,
102 buff_m1,
103 a01, 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_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

References bl1_sscalv(), bl1_strmv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var1().

◆ FLA_Trinv_uu_ops_var2()

FLA_Error FLA_Trinv_uu_ops_var2 ( int  mn_A,
float A,
int  rs_A,
int  cs_A 
)
78{
80 int i;
81
82 for ( i = 0; i < mn_A; ++i )
83 {
84 float* a12t = buff_A + (i+1)*cs_A + (i )*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_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A22, a12t );
96 A22, rs_A, cs_A,
97 a12t, cs_A );
98
99 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
101 mn_ahead,
102 buff_m1,
103 a12t, cs_A );
104
105 /*------------------------------------------------------------*/
106
107 }
108
109 return FLA_SUCCESS;
110}
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_NO_CONJUGATE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var2().

◆ FLA_Trinv_uu_ops_var3()

FLA_Error FLA_Trinv_uu_ops_var3 ( int  mn_A,
float A,
int  rs_A,
int  cs_A 
)
76{
77 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
79 int i;
80
81 for ( i = 0; i < mn_A; ++i )
82 {
83 float* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
84 float* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
85 float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
86
87 int mn_ahead = mn_A - i - 1;
88 int mn_behind = i;
89
90 /*------------------------------------------------------------*/
91
92 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
95 buff_m1,
96 a12t, cs_A );
97
98 // FLA_Ger_external( FLA_ONE, a01, a12t, A02 );
101 mn_behind,
102 mn_ahead,
103 buff_1,
104 a01, rs_A,
105 a12t, cs_A,
106 A02, rs_A, cs_A );
107
108 /*------------------------------------------------------------*/
109
110 }
111
112 return FLA_SUCCESS;
113}
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

References bl1_sger(), bl1_sscalv(), BLIS1_NO_CONJUGATE, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var3().

◆ FLA_Trinv_uu_ops_var4()

FLA_Error FLA_Trinv_uu_ops_var4 ( int  mn_A,
float A,
int  rs_A,
int  cs_A 
)
78{
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* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
86 float* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
87 float* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
88 float* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
89
90 int mn_ahead = mn_A - i - 1;
91 int mn_behind = i;
92
93 /*------------------------------------------------------------*/
94
95 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
96 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A22, a12t );
99 buff_m1,
100 a12t, cs_A );
104 mn_ahead,
105 A22, rs_A, cs_A,
106 a12t, cs_A );
107
108 // FLA_Ger_external( FLA_MINUS_ONE, a01, a12t, A02 );
111 mn_behind,
112 mn_ahead,
113 buff_m1,
114 a01, rs_A,
115 a12t, cs_A,
116 A02, rs_A, cs_A );
117
118 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A00, a01 );
122 mn_behind,
123 A00, rs_A, cs_A,
124 a01, rs_A );
125
126 /*------------------------------------------------------------*/
127
128 }
129
130 return FLA_SUCCESS;
131}

References bl1_sger(), bl1_sscalv(), bl1_strmv(), bl1_strsv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var4().

◆ FLA_Trinv_uu_opt_var1()

FLA_Error FLA_Trinv_uu_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
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_uu_opz_var1(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var1.c:190
FLA_Error FLA_Trinv_uu_opc_var1(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var1.c:152
FLA_Error FLA_Trinv_uu_opd_var1(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var1.c:114
FLA_Error FLA_Trinv_uu_ops_var1(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var1.c:76
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition FLA_Query.c:167
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_uu_opc_var1(), FLA_Trinv_uu_opd_var1(), FLA_Trinv_uu_ops_var1(), FLA_Trinv_uu_opz_var1(), and i.

Referenced by FLA_Trinv_uu().

◆ FLA_Trinv_uu_opt_var2()

FLA_Error FLA_Trinv_uu_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_uu_opd_var2(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var2.c:114
FLA_Error FLA_Trinv_uu_ops_var2(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var2.c:76
FLA_Error FLA_Trinv_uu_opz_var2(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var2.c:190
FLA_Error FLA_Trinv_uu_opc_var2(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var2.c:152

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Trinv_uu_opc_var2(), FLA_Trinv_uu_opd_var2(), FLA_Trinv_uu_ops_var2(), FLA_Trinv_uu_opz_var2(), and i.

Referenced by FLA_Trinv_uu().

◆ FLA_Trinv_uu_opt_var3()

FLA_Error FLA_Trinv_uu_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_uu_opc_var3(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var3.c:160
FLA_Error FLA_Trinv_uu_opz_var3(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var3.c:203
FLA_Error FLA_Trinv_uu_opd_var3(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var3.c:117
FLA_Error FLA_Trinv_uu_ops_var3(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var3.c:74

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Trinv_uu_opc_var3(), FLA_Trinv_uu_opd_var3(), FLA_Trinv_uu_ops_var3(), FLA_Trinv_uu_opz_var3(), and i.

Referenced by FLA_Trinv_uu().

◆ FLA_Trinv_uu_opt_var4()

FLA_Error FLA_Trinv_uu_opt_var4 ( 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_uu_opd_var4(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var4.c:135
FLA_Error FLA_Trinv_uu_ops_var4(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var4.c:76
FLA_Error FLA_Trinv_uu_opz_var4(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var4.c:253
FLA_Error FLA_Trinv_uu_opc_var4(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Trinv_uu_opt_var4.c:194

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Trinv_uu_opc_var4(), FLA_Trinv_uu_opd_var4(), FLA_Trinv_uu_ops_var4(), FLA_Trinv_uu_opz_var4(), and i.

Referenced by FLA_Trinv_uu().

◆ FLA_Trinv_uu_opz_var1()

FLA_Error FLA_Trinv_uu_opz_var1 ( int  mn_A,
dcomplex A,
int  rs_A,
int  cs_A 
)
192{
194 int i;
195
196 for ( i = 0; i < mn_A; ++i )
197 {
198 dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
199 dcomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
200
201 int mn_behind = i;
202
203 /*------------------------------------------------------------*/
204
205 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A00, a01 );
209 mn_behind,
210 A00, rs_A, cs_A,
211 a01, rs_A );
212
213 // FLA_Scal_external( FLA_MINUS_ONE, a01 );
215 mn_behind,
216 buff_m1,
217 a01, 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_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

References bl1_zscalv(), bl1_ztrmv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var1().

◆ FLA_Trinv_uu_opz_var2()

FLA_Error FLA_Trinv_uu_opz_var2 ( int  mn_A,
dcomplex A,
int  rs_A,
int  cs_A 
)
192{
194 int i;
195
196 for ( i = 0; i < mn_A; ++i )
197 {
198 dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*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_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A22, a12t );
209 mn_ahead,
210 A22, rs_A, cs_A,
211 a12t, cs_A );
212
213 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
215 mn_ahead,
216 buff_m1,
217 a12t, cs_A );
218
219 /*------------------------------------------------------------*/
220
221 }
222
223 return FLA_SUCCESS;
224}
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_NO_CONJUGATE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var2().

◆ FLA_Trinv_uu_opz_var3()

FLA_Error FLA_Trinv_uu_opz_var3 ( int  mn_A,
dcomplex A,
int  rs_A,
int  cs_A 
)
205{
208 int i;
209
210 for ( i = 0; i < mn_A; ++i )
211 {
212 dcomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
213 dcomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
214 dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
215
216 int mn_ahead = mn_A - i - 1;
217 int mn_behind = i;
218
219 /*------------------------------------------------------------*/
220
221 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
223 mn_ahead,
224 buff_m1,
225 a12t, cs_A );
226
227 // FLA_Ger_external( FLA_ONE, a01, a12t, A02 );
230 mn_behind,
231 mn_ahead,
232 buff_1,
233 a01, rs_A,
234 a12t, cs_A,
235 A02, rs_A, cs_A );
236
237 /*------------------------------------------------------------*/
238
239 }
240
241 return FLA_SUCCESS;
242}
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

References bl1_zger(), bl1_zscalv(), BLIS1_NO_CONJUGATE, FLA_MINUS_ONE, FLA_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var3().

◆ FLA_Trinv_uu_opz_var4()

FLA_Error FLA_Trinv_uu_opz_var4 ( int  mn_A,
dcomplex A,
int  rs_A,
int  cs_A 
)
255{
257 int i;
258
259 for ( i = 0; i < mn_A; ++i )
260 {
261 dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
262 dcomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
263 dcomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
264 dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
265 dcomplex* A22 = buff_A + (i+1)*cs_A + (i+1)*rs_A;
266
267 int mn_ahead = mn_A - i - 1;
268 int mn_behind = i;
269
270 /*------------------------------------------------------------*/
271
272 // FLA_Scal_external( FLA_MINUS_ONE, a12t );
273 // FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A22, a12t );
275 mn_ahead,
276 buff_m1,
277 a12t, cs_A );
281 mn_ahead,
282 A22, rs_A, cs_A,
283 a12t, cs_A );
284
285 // FLA_Ger_external( FLA_MINUS_ONE, a01, a12t, A02 );
288 mn_behind,
289 mn_ahead,
290 buff_m1,
291 a01, rs_A,
292 a12t, cs_A,
293 A02, rs_A, cs_A );
294
295 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_UNIT_DIAG, A00, a01 );
299 mn_behind,
300 A00, rs_A, cs_A,
301 a01, rs_A );
302
303 /*------------------------------------------------------------*/
304
305 }
306
307 return FLA_SUCCESS;
308}

References bl1_zger(), bl1_zscalv(), bl1_ztrmv(), bl1_ztrsv(), BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_uu_opt_var4().

◆ FLA_Trinv_uu_unb_var1()

FLA_Error FLA_Trinv_uu_unb_var1 ( FLA_Obj  A)
16{
17 FLA_Obj ATL, ATR, A00, a01, A02,
19 A20, a21, A22;
20
21 FLA_Part_2x2( A, &ATL, &ATR,
22 &ABL, &ABR, 0, 0, FLA_TL );
23
24 while ( FLA_Obj_length( ATL ) < FLA_Obj_length( A ) ){
25
26 FLA_Repart_2x2_to_3x3( ATL, /**/ ATR, &A00, /**/ &a01, &A02,
27 /* ************* */ /* ************************** */
28 &a10t, /**/ &alpha11, &a12t,
29 ABL, /**/ ABR, &A20, /**/ &a21, &A22,
30 1, 1, FLA_BR );
31
32 /*------------------------------------------------------------*/
33
34 // a01 = triuu( A00 ) * a01;
36
37 // a01 = -a01;
39
40 /*------------------------------------------------------------*/
41
42 FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR, A00, a01, /**/ A02,
43 a10t, alpha11, /**/ a12t,
44 /* ************** */ /* ************************ */
45 &ABL, /**/ &ABR, A20, a21, /**/ A22,
46 FLA_TL );
47
48 }
49
50 return FLA_SUCCESS;
51}
FLA_Error FLA_Scal_external(FLA_Obj alpha, FLA_Obj A)
Definition FLA_Scal_external.c:13
FLA_Error FLA_Trmv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition FLA_Trmv_external.c:13

References FLA_Cont_with_3x3_to_2x2(), FLA_MINUS_ONE, FLA_Obj_length(), FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Scal_external(), FLA_Trmv_external(), and i.

Referenced by FLA_Trinv_uu().

◆ FLA_Trinv_uu_unb_var2()

FLA_Error FLA_Trinv_uu_unb_var2 ( FLA_Obj  A)
16{
17 FLA_Obj ATL, ATR, A00, a01, A02,
19 A20, a21, A22;
20
21 FLA_Part_2x2( A, &ATL, &ATR,
22 &ABL, &ABR, 0, 0, FLA_TL );
23
24 while ( FLA_Obj_length( ATL ) < FLA_Obj_length( A ) ){
25
26 FLA_Repart_2x2_to_3x3( ATL, /**/ ATR, &A00, /**/ &a01, &A02,
27 /* ************* */ /* ************************** */
28 &a10t, /**/ &alpha11, &a12t,
29 ABL, /**/ ABR, &A20, /**/ &a21, &A22,
30 1, 1, FLA_BR );
31
32 /*------------------------------------------------------------*/
33
34 // a12t = a12t / triuu( A22' );
36
37 // a12t = -a12t;
39
40 /*------------------------------------------------------------*/
41
42 FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR, A00, a01, /**/ A02,
43 a10t, alpha11, /**/ a12t,
44 /* ************** */ /* ************************ */
45 &ABL, /**/ &ABR, A20, a21, /**/ A22,
46 FLA_TL );
47
48 }
49
50 return FLA_SUCCESS;
51}
FLA_Error FLA_Trsv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition FLA_Trsv_external.c:13

References FLA_Cont_with_3x3_to_2x2(), FLA_MINUS_ONE, FLA_Obj_length(), FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Scal_external(), FLA_Trsv_external(), and i.

Referenced by FLA_Trinv_uu().

◆ FLA_Trinv_uu_unb_var3()

FLA_Error FLA_Trinv_uu_unb_var3 ( FLA_Obj  A)
16{
17 FLA_Obj ATL, ATR, A00, a01, A02,
19 A20, a21, A22;
20
21 FLA_Part_2x2( A, &ATL, &ATR,
22 &ABL, &ABR, 0, 0, FLA_TL );
23
24 while ( FLA_Obj_length( ATL ) < FLA_Obj_length( A ) ){
25
26 FLA_Repart_2x2_to_3x3( ATL, /**/ ATR, &A00, /**/ &a01, &A02,
27 /* ************* */ /* ************************** */
28 &a10t, /**/ &alpha11, &a12t,
29 ABL, /**/ ABR, &A20, /**/ &a21, &A22,
30 1, 1, FLA_BR );
31
32 /*------------------------------------------------------------*/
33
34 // a12t = -a12t;
36
37 // A02 = a01 * a12t + A02;
39
40 /*------------------------------------------------------------*/
41
42 FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR, A00, a01, /**/ A02,
43 a10t, alpha11, /**/ a12t,
44 /* ************** */ /* ************************ */
45 &ABL, /**/ &ABR, A20, a21, /**/ A22,
46 FLA_TL );
47
48 }
49
50 return FLA_SUCCESS;
51}
FLA_Error FLA_Ger_external(FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition FLA_Ger_external.c:13

References FLA_Cont_with_3x3_to_2x2(), FLA_Ger_external(), FLA_MINUS_ONE, FLA_Obj_length(), FLA_ONE, FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Scal_external(), and i.

Referenced by FLA_Trinv_uu().

◆ FLA_Trinv_uu_unb_var4()

FLA_Error FLA_Trinv_uu_unb_var4 ( FLA_Obj  A)
16{
17 FLA_Obj ATL, ATR, A00, a01, A02,
19 A20, a21, A22;
20
21 FLA_Part_2x2( A, &ATL, &ATR,
22 &ABL, &ABR, 0, 0, FLA_TL );
23
24 while ( FLA_Obj_length( ATL ) < FLA_Obj_length( A ) ){
25
26 FLA_Repart_2x2_to_3x3( ATL, /**/ ATR, &A00, /**/ &a01, &A02,
27 /* ************* */ /* ************************** */
28 &a10t, /**/ &alpha11, &a12t,
29 ABL, /**/ ABR, &A20, /**/ &a21, &A22,
30 1, 1, FLA_BR );
31
32 /*------------------------------------------------------------*/
33
34 // a12t = a12t / triuu( A22' );
37
38 // A02 = a01 * a12t + A02;
40
41 // a01 = triuu( A00 ) * a01;
43
44 /*------------------------------------------------------------*/
45
46 FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR, A00, a01, /**/ A02,
47 a10t, alpha11, /**/ a12t,
48 /* ************** */ /* ************************ */
49 &ABL, /**/ &ABR, A20, a21, /**/ A22,
50 FLA_TL );
51
52 }
53
54 return FLA_SUCCESS;
55}

References FLA_Cont_with_3x3_to_2x2(), FLA_Ger_external(), FLA_MINUS_ONE, FLA_Obj_length(), FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Scal_external(), FLA_Trmv_external(), FLA_Trsv_external(), and i.

Referenced by FLA_Trinv_uu().