libflame revision_anchor
Functions
FLA_Ttmm_u.h File Reference

(r)

Go to the source code of this file.

Functions

FLA_Error FLA_Ttmm_u_blk_var1 (FLA_Obj A, fla_ttmm_t *cntl)
 
FLA_Error FLA_Ttmm_u_blk_var2 (FLA_Obj A, fla_ttmm_t *cntl)
 
FLA_Error FLA_Ttmm_u_blk_var3 (FLA_Obj A, fla_ttmm_t *cntl)
 
FLA_Error FLA_Ttmm_u_unb_var1 (FLA_Obj A)
 
FLA_Error FLA_Ttmm_u_unb_var2 (FLA_Obj A)
 
FLA_Error FLA_Ttmm_u_unb_var3 (FLA_Obj A)
 
FLA_Error FLA_Ttmm_u_opt_var1 (FLA_Obj A)
 
FLA_Error FLA_Ttmm_u_ops_var1 (int mn_A, float *A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_u_opd_var1 (int mn_A, double *A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_u_opc_var1 (int mn_A, scomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_u_opz_var1 (int mn_A, dcomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_u_opt_var2 (FLA_Obj A)
 
FLA_Error FLA_Ttmm_u_ops_var2 (int mn_A, float *A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_u_opd_var2 (int mn_A, double *A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_u_opc_var2 (int mn_A, scomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_u_opz_var2 (int mn_A, dcomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_u_opt_var3 (FLA_Obj A)
 
FLA_Error FLA_Ttmm_u_ops_var3 (int mn_A, float *A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_u_opd_var3 (int mn_A, double *A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_u_opc_var3 (int mn_A, scomplex *A, int rs_A, int cs_A)
 
FLA_Error FLA_Ttmm_u_opz_var3 (int mn_A, dcomplex *A, int rs_A, int cs_A)
 

Function Documentation

◆ FLA_Ttmm_u_blk_var1()

FLA_Error FLA_Ttmm_u_blk_var1 ( FLA_Obj  A,
fla_ttmm_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 // A00 = A00 + A01 * A01'
39 FLA_Cntl_sub_herk( cntl ) );
40
41 // A01 = A01 * triu( A11 )'
43 FLA_ONE, A11, A01,
44 FLA_Cntl_sub_trmm( cntl ) );
45
46 // A11 = triu( A11 ) * triu( A11 )'
48 FLA_Cntl_sub_ttmm( cntl ) );
49
50 /*------------------------------------------------------------*/
51
52 FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR, A00, A01, /**/ A02,
53 A10, A11, /**/ A12,
54 /* ************** */ /* ****************** */
55 &ABL, /**/ &ABR, A20, A21, /**/ A22,
56 FLA_TL );
57
58 }
59
60 return FLA_SUCCESS;
61}
FLA_Error FLA_Herk_internal(FLA_Uplo uplo, FLA_Trans trans, FLA_Obj alpha, FLA_Obj A, FLA_Obj beta, FLA_Obj C, fla_herk_t *cntl)
Definition FLA_Herk_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_Ttmm_internal(FLA_Uplo uplo, FLA_Obj A, fla_ttmm_t *cntl)
Definition FLA_Ttmm_internal.c:16
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_Herk_internal(), FLA_Obj_length(), FLA_ONE, FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Trmm_internal(), FLA_Ttmm_internal(), and i.

Referenced by FLA_Ttmm_u().

◆ FLA_Ttmm_u_blk_var2()

FLA_Error FLA_Ttmm_u_blk_var2 ( FLA_Obj  A,
fla_ttmm_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 = A01 * triu( A11 )'
40 FLA_ONE, A11, A01,
41 FLA_Cntl_sub_trmm( cntl ) );
42
43 // A01 = A01 + A02 * A12'
46 FLA_Cntl_sub_gemm( cntl ) );
47
48 // A11 = triu( A11 ) * triu( A11 )'
50 FLA_Cntl_sub_ttmm( cntl ) );
51
52 // A11 = A11 + A12 * A12'
55 FLA_Cntl_sub_herk( 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}
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_Herk_internal(), FLA_Obj_length(), FLA_ONE, FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Trmm_internal(), FLA_Ttmm_internal(), and i.

Referenced by FLA_Ttmm_u().

◆ FLA_Ttmm_u_blk_var3()

FLA_Error FLA_Ttmm_u_blk_var3 ( FLA_Obj  A,
fla_ttmm_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 // A11 = triu( A11 ) * triu( A11 )'
40 FLA_Cntl_sub_ttmm( cntl ) );
41
42 // A11 = A11 + A12 * A12'
45 FLA_Cntl_sub_herk( cntl ) );
46
47 // A12 = A12 * triu( A22 )'
49 FLA_ONE, A22, A12,
50 FLA_Cntl_sub_trmm( 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_Herk_internal(), FLA_Obj_length(), FLA_ONE, FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Trmm_internal(), FLA_Ttmm_internal(), and i.

Referenced by FLA_Ttmm_u().

◆ FLA_Ttmm_u_opc_var1()

FLA_Error FLA_Ttmm_u_opc_var1 ( int  mn_A,
scomplex A,
int  rs_A,
int  cs_A 
)
160{
161 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
162 int i;
163
164 for ( i = 0; i < mn_A; ++i )
165 {
166 scomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
167 scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
168 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
169
170 int mn_behind = i;
171
172 /*------------------------------------------------------------*/
173
174 // FLA_Her_external( FLA_UPPER_TRIANGULAR, FLA_ONE, a01, A00 );
177 mn_behind,
178 buff_1,
179 a01, rs_A,
180 A00, rs_A, cs_A );
181
182 // FLA_Scal_external( alpha11, a01 );
184 mn_behind,
185 alpha11,
186 a01, rs_A );
187
188 // FLA_Absolute_square( alpha11 );
190
191 /*------------------------------------------------------------*/
192
193 }
194
195 return FLA_SUCCESS;
196}
void bl1_cher(uplo1_t uplo, conj1_t conj, int m, float *alpha, scomplex *x, int incx, scomplex *a, int a_rs, int a_cs)
Definition bl1_her.c:31
void bl1_cscalv(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx)
Definition bl1_scalv.c:46
@ BLIS1_UPPER_TRIANGULAR
Definition blis_type_defs.h:63
@ BLIS1_NO_CONJUGATE
Definition blis_type_defs.h:81
Definition blis_type_defs.h:133

References bl1_cher(), bl1_cscalv(), BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var1().

◆ FLA_Ttmm_u_opc_var2()

FLA_Error FLA_Ttmm_u_opc_var2 ( int  mn_A,
scomplex A,
int  rs_A,
int  cs_A 
)
188{
190 int i;
191
192 for ( i = 0; i < mn_A; ++i )
193 {
194 scomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
195 scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
196 scomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
197 scomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
198
199 int mn_ahead = mn_A - i - 1;
200 int mn_behind = i;
201
202 /*------------------------------------------------------------*/
203
204 // FLA_Scal_external( alpha11, a01 );
206 mn_behind,
207 alpha11,
208 a01, rs_A );
209
210 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, A02, a12t, FLA_ONE, a01 );
213 mn_behind,
214 mn_ahead,
215 buff_1,
216 A02, rs_A, cs_A,
217 a12t, cs_A,
218 buff_1,
219 a01, rs_A );
220
221 // FLA_Absolute_square( alpha11 );
223
224 // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a21, a21, FLA_ONE, alpha11 );
226 mn_ahead,
227 buff_1,
228 a12t, cs_A,
229 a12t, cs_A,
230 buff_1,
231 alpha11 );
232
233 /*------------------------------------------------------------*/
234
235 }
236
237 return FLA_SUCCESS;
238}
void bl1_cdots(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *beta, scomplex *rho)
Definition bl1_dots.c:39
void bl1_cgemv(trans1_t transa, conj1_t conjx, int m, int n, scomplex *alpha, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx, scomplex *beta, scomplex *y, int incy)
Definition bl1_gemv.c:125
@ BLIS1_NO_TRANSPOSE
Definition blis_type_defs.h:54
@ BLIS1_CONJUGATE
Definition blis_type_defs.h:82

References bl1_cdots(), bl1_cgemv(), bl1_cscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var2().

◆ FLA_Ttmm_u_opc_var3()

FLA_Error FLA_Ttmm_u_opc_var3 ( int  mn_A,
scomplex 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_Absolute_square( alpha11 );
184
185 // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a12t, a12t, FLA_ONE, alpha11 );
187 mn_ahead,
188 buff_1,
189 a12t, cs_A,
190 a12t, cs_A,
191 buff_1,
192 alpha11 );
193
194 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_CONJ_NO_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a12t );
198 mn_ahead,
199 A22, rs_A, cs_A,
200 a12t, cs_A );
201
202 /*------------------------------------------------------------*/
203
204 }
205
206 return FLA_SUCCESS;
207}
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_NONUNIT_DIAG
Definition blis_type_defs.h:74
@ BLIS1_CONJ_NO_TRANSPOSE
Definition blis_type_defs.h:56

References bl1_cdots(), bl1_ctrmv(), BLIS1_CONJ_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var3().

◆ FLA_Ttmm_u_opd_var1()

FLA_Error FLA_Ttmm_u_opd_var1 ( int  mn_A,
double A,
int  rs_A,
int  cs_A 
)
119{
120 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
121 int i;
122
123 for ( i = 0; i < mn_A; ++i )
124 {
125 double* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
126 double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
127 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
128
129 int mn_behind = i;
130
131 /*------------------------------------------------------------*/
132
133 // FLA_Her_external( FLA_UPPER_TRIANGULAR, FLA_ONE, a01, A00 );
135 mn_behind,
136 buff_1,
137 a01, rs_A,
138 A00, rs_A, cs_A );
139
140 // FLA_Scal_external( alpha11, a01 );
142 mn_behind,
143 alpha11,
144 a01, rs_A );
145
146 // FLA_Absolute_square( alpha11 );
148
149 /*------------------------------------------------------------*/
150
151 }
152
153 return FLA_SUCCESS;
154}
void bl1_dscalv(conj1_t conj, int n, double *alpha, double *x, int incx)
Definition bl1_scalv.c:24
void bl1_dsyr(uplo1_t uplo, int m, double *alpha, double *x, int incx, double *a, int a_rs, int a_cs)
Definition bl1_syr.c:57

References bl1_dscalv(), bl1_dsyr(), BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var1().

◆ FLA_Ttmm_u_opd_var2()

FLA_Error FLA_Ttmm_u_opd_var2 ( int  mn_A,
double A,
int  rs_A,
int  cs_A 
)
132{
133 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
134 int i;
135
136 for ( i = 0; i < mn_A; ++i )
137 {
138 double* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
139 double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
140 double* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
141 double* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
142
143 int mn_ahead = mn_A - i - 1;
144 int mn_behind = i;
145
146 /*------------------------------------------------------------*/
147
148 // FLA_Scal_external( alpha11, a01 );
150 mn_behind,
151 alpha11,
152 a01, rs_A );
153
154 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, A02, a12t, FLA_ONE, a01 );
157 mn_behind,
158 mn_ahead,
159 buff_1,
160 A02, rs_A, cs_A,
161 a12t, cs_A,
162 buff_1,
163 a01, rs_A );
164
165 // FLA_Absolute_square( alpha11 );
167
168 // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a21, a21, FLA_ONE, alpha11 );
170 mn_ahead,
171 buff_1,
172 a12t, cs_A,
173 a12t, cs_A,
174 buff_1,
175 alpha11 );
176
177 /*------------------------------------------------------------*/
178
179 }
180
181 return FLA_SUCCESS;
182}
void bl1_ddots(conj1_t conj, int n, double *alpha, double *x, int incx, double *y, int incy, double *beta, double *rho)
Definition bl1_dots.c:26
void bl1_dgemv(trans1_t transa, conj1_t conjx, int m, int n, double *alpha, double *a, int a_rs, int a_cs, double *x, int incx, double *beta, double *y, int incy)
Definition bl1_gemv.c:69

References bl1_ddots(), bl1_dgemv(), bl1_dscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var2().

◆ FLA_Ttmm_u_opd_var3()

FLA_Error FLA_Ttmm_u_opd_var3 ( int  mn_A,
double A,
int  rs_A,
int  cs_A 
)
123{
124 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
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_Absolute_square( alpha11 );
139
140 // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a12t, a12t, FLA_ONE, alpha11 );
142 mn_ahead,
143 buff_1,
144 a12t, cs_A,
145 a12t, cs_A,
146 buff_1,
147 alpha11 );
148
149 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_CONJ_NO_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a12t );
153 mn_ahead,
154 A22, rs_A, cs_A,
155 a12t, cs_A );
156
157 /*------------------------------------------------------------*/
158
159 }
160
161 return FLA_SUCCESS;
162}
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_ddots(), bl1_dtrmv(), BLIS1_CONJ_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var3().

◆ FLA_Ttmm_u_ops_var1()

FLA_Error FLA_Ttmm_u_ops_var1 ( int  mn_A,
float A,
int  rs_A,
int  cs_A 
)
78{
79 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
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* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
87
88 int mn_behind = i;
89
90 /*------------------------------------------------------------*/
91
92 // FLA_Her_external( FLA_UPPER_TRIANGULAR, FLA_ONE, a01, A00 );
95 buff_1,
96 a01, rs_A,
97 A00, rs_A, cs_A );
98
99 // FLA_Scal_external( alpha11, a01 );
101 mn_behind,
102 alpha11,
103 a01, rs_A );
104
105 // FLA_Absolute_square( alpha11 );
107
108 /*------------------------------------------------------------*/
109
110 }
111
112 return FLA_SUCCESS;
113}
void bl1_sscalv(conj1_t conj, int n, float *alpha, float *x, int incx)
Definition bl1_scalv.c:13
void bl1_ssyr(uplo1_t uplo, int m, float *alpha, float *x, int incx, float *a, int a_rs, int a_cs)
Definition bl1_syr.c:13

References bl1_sscalv(), bl1_ssyr(), BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var1().

◆ FLA_Ttmm_u_ops_var2()

FLA_Error FLA_Ttmm_u_ops_var2 ( int  mn_A,
float A,
int  rs_A,
int  cs_A 
)
76{
77 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
78 int i;
79
80 for ( i = 0; i < mn_A; ++i )
81 {
82 float* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
83 float* alpha11 = buff_A + (i )*cs_A + (i )*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( alpha11, a01 );
95 alpha11,
96 a01, rs_A );
97
98 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, A02, a12t, FLA_ONE, a01 );
101 mn_behind,
102 mn_ahead,
103 buff_1,
104 A02, rs_A, cs_A,
105 a12t, cs_A,
106 buff_1,
107 a01, rs_A );
108
109 // FLA_Absolute_square( alpha11 );
111
112 // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a21, a21, FLA_ONE, alpha11 );
114 mn_ahead,
115 buff_1,
116 a12t, cs_A,
117 a12t, cs_A,
118 buff_1,
119 alpha11 );
120
121 /*------------------------------------------------------------*/
122
123 }
124
125 return FLA_SUCCESS;
126}
void bl1_sdots(conj1_t conj, int n, float *alpha, float *x, int incx, float *y, int incy, float *beta, float *rho)
Definition bl1_dots.c:13
void bl1_sgemv(trans1_t transa, conj1_t conjx, int m, int n, float *alpha, float *a, int a_rs, int a_cs, float *x, int incx, float *beta, float *y, int incy)
Definition bl1_gemv.c:13

References bl1_sdots(), bl1_sgemv(), bl1_sscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var2().

◆ FLA_Ttmm_u_ops_var3()

FLA_Error FLA_Ttmm_u_ops_var3 ( int  mn_A,
float A,
int  rs_A,
int  cs_A 
)
78{
79 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
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_Absolute_square( alpha11 );
94
95 // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a12t, a12t, FLA_ONE, alpha11 );
98 buff_1,
99 a12t, cs_A,
100 a12t, cs_A,
101 buff_1,
102 alpha11 );
103
104 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_CONJ_NO_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a12t );
108 mn_ahead,
109 A22, rs_A, cs_A,
110 a12t, cs_A );
111
112 /*------------------------------------------------------------*/
113
114 }
115
116 return FLA_SUCCESS;
117}
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_sdots(), bl1_strmv(), BLIS1_CONJ_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var3().

◆ FLA_Ttmm_u_opt_var1()

FLA_Error FLA_Ttmm_u_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_Ttmm_u_ops_var1(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var1.c:76
FLA_Error FLA_Ttmm_u_opd_var1(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var1.c:117
FLA_Error FLA_Ttmm_u_opz_var1(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var1.c:200
FLA_Error FLA_Ttmm_u_opc_var1(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var1.c:158
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_Ttmm_u_opc_var1(), FLA_Ttmm_u_opd_var1(), FLA_Ttmm_u_ops_var1(), FLA_Ttmm_u_opz_var1(), and i.

Referenced by FLA_Ttmm_u().

◆ FLA_Ttmm_u_opt_var2()

FLA_Error FLA_Ttmm_u_opt_var2 ( 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_Ttmm_u_ops_var2(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var2.c:74
FLA_Error FLA_Ttmm_u_opc_var2(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var2.c:186
FLA_Error FLA_Ttmm_u_opz_var2(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var2.c:242
FLA_Error FLA_Ttmm_u_opd_var2(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var2.c:130

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Ttmm_u_opc_var2(), FLA_Ttmm_u_opd_var2(), FLA_Ttmm_u_ops_var2(), FLA_Ttmm_u_opz_var2(), and i.

Referenced by FLA_Ttmm_u().

◆ FLA_Ttmm_u_opt_var3()

FLA_Error FLA_Ttmm_u_opt_var3 ( 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_Ttmm_u_opd_var3(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var3.c:121
FLA_Error FLA_Ttmm_u_opc_var3(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var3.c:166
FLA_Error FLA_Ttmm_u_opz_var3(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var3.c:211
FLA_Error FLA_Ttmm_u_ops_var3(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition FLA_Ttmm_u_opt_var3.c:76

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Ttmm_u_opc_var3(), FLA_Ttmm_u_opd_var3(), FLA_Ttmm_u_ops_var3(), FLA_Ttmm_u_opz_var3(), and i.

Referenced by FLA_Ttmm_u().

◆ FLA_Ttmm_u_opz_var1()

FLA_Error FLA_Ttmm_u_opz_var1 ( int  mn_A,
dcomplex A,
int  rs_A,
int  cs_A 
)
202{
203 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
204 int i;
205
206 for ( i = 0; i < mn_A; ++i )
207 {
208 dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
209 dcomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
210 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
211
212 int mn_behind = i;
213
214 /*------------------------------------------------------------*/
215
216 // FLA_Her_external( FLA_UPPER_TRIANGULAR, FLA_ONE, a01, A00 );
219 mn_behind,
220 buff_1,
221 a01, rs_A,
222 A00, rs_A, cs_A );
223
224 // FLA_Scal_external( alpha11, a01 );
226 mn_behind,
227 alpha11,
228 a01, rs_A );
229
230 // FLA_Absolute_square( alpha11 );
232
233 /*------------------------------------------------------------*/
234
235 }
236
237 return FLA_SUCCESS;
238}
void bl1_zher(uplo1_t uplo, conj1_t conj, int m, double *alpha, dcomplex *x, int incx, dcomplex *a, int a_rs, int a_cs)
Definition bl1_her.c:101
void bl1_zscalv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx)
Definition bl1_scalv.c:72

References bl1_zher(), bl1_zscalv(), BLIS1_NO_CONJUGATE, BLIS1_UPPER_TRIANGULAR, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var1().

◆ FLA_Ttmm_u_opz_var2()

FLA_Error FLA_Ttmm_u_opz_var2 ( int  mn_A,
dcomplex A,
int  rs_A,
int  cs_A 
)
244{
246 int i;
247
248 for ( i = 0; i < mn_A; ++i )
249 {
250 dcomplex* a01 = buff_A + (i )*cs_A + (0 )*rs_A;
251 dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A;
252 dcomplex* A02 = buff_A + (i+1)*cs_A + (0 )*rs_A;
253 dcomplex* a12t = buff_A + (i+1)*cs_A + (i )*rs_A;
254
255 int mn_ahead = mn_A - i - 1;
256 int mn_behind = i;
257
258 /*------------------------------------------------------------*/
259
260 // FLA_Scal_external( alpha11, a01 );
262 mn_behind,
263 alpha11,
264 a01, rs_A );
265
266 // FLA_Gemvc_external( FLA_NO_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, A02, a12t, FLA_ONE, a01 );
269 mn_behind,
270 mn_ahead,
271 buff_1,
272 A02, rs_A, cs_A,
273 a12t, cs_A,
274 buff_1,
275 a01, rs_A );
276
277 // FLA_Absolute_square( alpha11 );
279
280 // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a21, a21, FLA_ONE, alpha11 );
282 mn_ahead,
283 buff_1,
284 a12t, cs_A,
285 a12t, cs_A,
286 buff_1,
287 alpha11 );
288
289 /*------------------------------------------------------------*/
290
291 }
292
293 return FLA_SUCCESS;
294}
void bl1_zdots(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *beta, dcomplex *rho)
Definition bl1_dots.c:56
void bl1_zgemv(trans1_t transa, conj1_t conjx, int m, int n, dcomplex *alpha, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx, dcomplex *beta, dcomplex *y, int incy)
Definition bl1_gemv.c:255

References bl1_zdots(), bl1_zgemv(), bl1_zscalv(), BLIS1_CONJUGATE, BLIS1_NO_CONJUGATE, BLIS1_NO_TRANSPOSE, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var2().

◆ FLA_Ttmm_u_opz_var3()

FLA_Error FLA_Ttmm_u_opz_var3 ( int  mn_A,
dcomplex 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_Absolute_square( alpha11 );
229
230 // FLA_Dotcs_external( FLA_CONJUGATE, FLA_ONE, a12t, a12t, FLA_ONE, alpha11 );
232 mn_ahead,
233 buff_1,
234 a12t, cs_A,
235 a12t, cs_A,
236 buff_1,
237 alpha11 );
238
239 // FLA_Trmv_external( FLA_UPPER_TRIANGULAR, FLA_CONJ_NO_TRANSPOSE, FLA_NONUNIT_DIAG, A22, a12t );
243 mn_ahead,
244 A22, rs_A, cs_A,
245 a12t, cs_A );
246
247 /*------------------------------------------------------------*/
248
249 }
250
251 return FLA_SUCCESS;
252}
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_zdots(), bl1_ztrmv(), BLIS1_CONJ_NO_TRANSPOSE, BLIS1_CONJUGATE, BLIS1_NONUNIT_DIAG, BLIS1_UPPER_TRIANGULAR, FLA_ONE, and i.

Referenced by FLA_Ttmm_u_opt_var3().

◆ FLA_Ttmm_u_unb_var1()

FLA_Error FLA_Ttmm_u_unb_var1 ( FLA_Obj  A)
16{
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 // A00 = A00 + a01 * a01'
36
37 // a10t = alpha11 * a01
39
40 // alpha11 = alpha11 * alpha11'
42
43 /*------------------------------------------------------------*/
44
45 FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR, A00, a01, /**/ A02,
46 a10t, alpha11, /**/ a12t,
47 /* ************** */ /* ************************ */
48 &ABL, /**/ &ABR, A20, a21, /**/ A22,
49 FLA_TL );
50
51 }
52
53 return FLA_SUCCESS;
54}
FLA_Error FLA_Scal_external(FLA_Obj alpha, FLA_Obj A)
Definition FLA_Scal_external.c:13
FLA_Error FLA_Her_external(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
Definition FLA_Her_external.c:13
FLA_Error FLA_Absolute_square(FLA_Obj alpha)
Definition FLA_Absolute_square.c:13

References FLA_Absolute_square(), FLA_Cont_with_3x3_to_2x2(), FLA_Her_external(), FLA_Obj_length(), FLA_ONE, FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Scal_external(), and i.

Referenced by FLA_Ttmm_u().

◆ FLA_Ttmm_u_unb_var2()

FLA_Error FLA_Ttmm_u_unb_var2 ( FLA_Obj  A)
16{
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 // a10t = alpha11 * a01
36
37 // a01 = a01 + A02 * a12t'
39
40 // alpha11 = alpha11 * alpha11'
42
43 // alpha11 = alpha11 + a12t * a12t'
45
46 /*------------------------------------------------------------*/
47
48 FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR, A00, a01, /**/ A02,
49 a10t, alpha11, /**/ a12t,
50 /* ************** */ /* ************************ */
51 &ABL, /**/ &ABR, A20, a21, /**/ A22,
52 FLA_TL );
53
54 }
55
56 return FLA_SUCCESS;
57}
FLA_Error FLA_Dotcs_external(FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho)
Definition FLA_Dotcs_external.c:13
FLA_Error FLA_Gemvc_external(FLA_Trans transa, FLA_Conj conjx, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition FLA_Gemvc_external.c:13

References FLA_Absolute_square(), FLA_Cont_with_3x3_to_2x2(), FLA_Dotcs_external(), FLA_Gemvc_external(), FLA_Obj_length(), FLA_ONE, FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Scal_external(), and i.

Referenced by FLA_Ttmm_u().

◆ FLA_Ttmm_u_unb_var3()

FLA_Error FLA_Ttmm_u_unb_var3 ( FLA_Obj  A)
16{
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 // alpha11 = alpha11 * alpha11'
36
37 // alpha11 = alpha11 + a12t * a12t'
39
40 // a12t = a12t * triu( A22 )'
41 // a12t' = triu( A22 ) * a12t'
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}
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_Absolute_square(), FLA_Cont_with_3x3_to_2x2(), FLA_Dotcs_external(), FLA_Obj_length(), FLA_ONE, FLA_Part_2x2(), FLA_Repart_2x2_to_3x3(), FLA_Trmv_external(), and i.

Referenced by FLA_Ttmm_u().