libflame revision_anchor
FLA_Blocksize.c File Reference

(r)

Functions

void blas_set_parameter (void)
 
fla_blocksize_t * FLA_Blocksize_create (dim_t b_s, dim_t b_d, dim_t b_c, dim_t b_z)
 
void FLA_Blocksize_set (fla_blocksize_t *bp, dim_t b_s, dim_t b_d, dim_t b_c, dim_t b_z)
 
void FLA_Blocksize_scale (fla_blocksize_t *bp, double factor)
 
fla_blocksize_t * FLA_Blocksize_create_copy (fla_blocksize_t *bp)
 
void FLA_Blocksize_free (fla_blocksize_t *bp)
 
dim_t FLA_Blocksize_extract (FLA_Datatype dt, fla_blocksize_t *bp)
 
fla_blocksize_t * FLA_Query_blocksizes (FLA_Dimension dim)
 
dim_t FLA_Query_blocksize (FLA_Datatype dt, FLA_Dimension dim)
 
dim_t FLA_Determine_blocksize (FLA_Obj A_unproc, FLA_Quadrant to_dir, fla_blocksize_t *bp)
 
dim_t FLA_determine_matrix_size (FLA_Obj A_unproc, FLA_Quadrant to_dir)
 

Variables

long sgemm_p
 
long sgemm_q
 
long sgemm_r
 
long dgemm_p
 
long dgemm_q
 
long dgemm_r
 
long cgemm_p
 
long cgemm_q
 
long cgemm_r
 
long zgemm_p
 
long zgemm_q
 
long zgemm_r
 
long fla_goto_gemm_blocksize [4][4]
 

Function Documentation

◆ blas_set_parameter()

void blas_set_parameter ( void )
extern

◆ FLA_Blocksize_create()

fla_blocksize_t * FLA_Blocksize_create ( dim_t b_s,
dim_t b_d,
dim_t b_c,
dim_t b_z )
37{
39
40 // Allocate memory for the blocksize structure.
41 bp = ( fla_blocksize_t* ) FLA_malloc( sizeof(fla_blocksize_t) );
42
43 // Assign the provided blocksize values into the corresponding fields.
44 bp->s = b_s;
45 bp->d = b_d;
46 bp->c = b_c;
47 bp->z = b_z;
48
49 // Return a pointer to the structure.
50 return bp;
51}
void * FLA_malloc(size_t size)
Definition FLA_Memory.c:111
Definition FLA_Cntl.h:14
dim_t s
Definition FLA_Cntl.h:15
dim_t z
Definition FLA_Cntl.h:18
dim_t d
Definition FLA_Cntl.h:16
dim_t c
Definition FLA_Cntl.h:17

References FLA_Blocksize_s::c, FLA_Blocksize_s::d, FLA_malloc(), FLA_Blocksize_s::s, and FLA_Blocksize_s::z.

Referenced by FLA_Query_blocksizes(), FLASH_Apply_CAQ2_UT_cntl_init(), FLASH_Apply_CAQ_UT_inc_cntl_init(), FLASH_Apply_pivots_cntl_init(), FLASH_Apply_Q2_UT_cntl_init(), FLASH_Apply_Q_UT_cntl_init(), FLASH_Apply_Q_UT_inc_cntl_init(), FLASH_Apply_QUD_UT_cntl_init(), FLASH_Apply_QUD_UT_inc_cntl_init(), FLASH_Axpy_cntl_init(), FLASH_Axpyt_cntl_init(), FLASH_CAQR2_UT_cntl_init(), FLASH_CAQR_UT_inc_cntl_init(), FLASH_Chol_cntl_init(), FLASH_Copy_cntl_init(), FLASH_Copyr_cntl_init(), FLASH_Copyt_cntl_init(), FLASH_Eig_gest_cntl_init(), FLASH_Gemm_cntl_init(), FLASH_Gemv_cntl_init(), FLASH_Hemm_cntl_init(), FLASH_Her2k_cntl_init(), FLASH_Herk_cntl_init(), FLASH_LQ_UT_cntl_init(), FLASH_LU_incpiv_cntl_init(), FLASH_LU_nopiv_cntl_init(), FLASH_LU_piv_cntl_init(), FLASH_Lyap_cntl_init(), FLASH_QR2_UT_cntl_init(), FLASH_QR_UT_cntl_init(), FLASH_QR_UT_inc_cntl_init(), FLASH_Scal_cntl_init(), FLASH_Scalr_cntl_init(), FLASH_Sylv_cntl_init(), FLASH_Symm_cntl_init(), FLASH_Syr2k_cntl_init(), FLASH_Syrk_cntl_init(), FLASH_Trinv_cntl_init(), FLASH_Trmm_cntl_init(), FLASH_Trsm_cntl_init(), FLASH_Trsv_cntl_init(), FLASH_Ttmm_cntl_init(), FLASH_UDdate_UT_cntl_init(), and FLASH_UDdate_UT_inc_cntl_init().

◆ FLA_Blocksize_create_copy()

fla_blocksize_t * FLA_Blocksize_create_copy ( fla_blocksize_t * bp)
84{
85 fla_blocksize_t* bp_copy;
86 FLA_Error e_val;
87
88 // Verify that the given blocksize pointer is valid.
89 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
90 {
91 e_val = FLA_Check_null_pointer( bp );
92 FLA_Check_error_code( e_val );
93 }
94
95 // Allocate memory for the blocksize structure.
96 bp_copy = ( fla_blocksize_t* ) FLA_malloc( sizeof(fla_blocksize_t) );
97
98 // Assign the provided blocksize object's values into the corresponding
99 // fields of the new object.
100 bp_copy->s = bp->s;
101 bp_copy->d = bp->d;
102 bp_copy->c = bp->c;
103 bp_copy->z = bp->z;
104
105 // Return a pointer to the structure.
106 return bp_copy;
107}
FLA_Error FLA_Check_null_pointer(void *ptr)
Definition FLA_Check.c:518
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18
int FLA_Error
Definition FLA_type_defs.h:47

References FLA_Blocksize_s::c, FLA_Blocksize_s::d, FLA_Check_error_level(), FLA_Check_null_pointer(), FLA_malloc(), FLA_Blocksize_s::s, and FLA_Blocksize_s::z.

Referenced by FLA_Chol_cntl_init(), FLA_LU_nopiv_cntl_init(), and FLA_LU_piv_cntl_init().

◆ FLA_Blocksize_extract()

dim_t FLA_Blocksize_extract ( FLA_Datatype dt,
fla_blocksize_t * bp )
117{
118 dim_t b = 0;
119 FLA_Error e_val;
120
121 // Verify that the given blocksize pointer is valid.
122 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
123 {
124 e_val = FLA_Check_null_pointer( bp );
125 FLA_Check_error_code( e_val );
126 }
127
128 if ( dt == FLA_FLOAT )
129 b = bp->s;
130 else if ( dt == FLA_DOUBLE )
131 b = bp->d;
132 else if ( dt == FLA_COMPLEX )
133 b = bp->c;
134 else if ( dt == FLA_DOUBLE_COMPLEX )
135 b = bp->z;
136
137 // Return the blocksize corresponding with the datatype.
138 return b;
139}
unsigned long dim_t
Definition FLA_type_defs.h:71

References FLA_Blocksize_s::c, FLA_Blocksize_s::d, FLA_Check_error_level(), FLA_Check_null_pointer(), FLA_Blocksize_s::s, and FLA_Blocksize_s::z.

Referenced by FLA_Check_blocksize_object(), FLA_Determine_blocksize(), FLA_Trinv(), and FLA_Ttmm().

◆ FLA_Blocksize_free()

void FLA_Blocksize_free ( fla_blocksize_t * bp)
111{
112 FLA_free( bp );
113}
void FLA_free(void *ptr)
Definition FLA_Memory.c:247

References FLA_free().

Referenced by FLA_Apply_CAQ2_UT_cntl_finalize(), FLA_Apply_Q2_UT_cntl_finalize(), FLA_Apply_Q_UT_cntl_finalize(), FLA_Apply_QUD_UT_cntl_finalize(), FLA_Bidiag_UT_cntl_finalize(), FLA_CAQR2_UT_cntl_finalize(), FLA_Chol_cntl_finalize(), FLA_Eig_gest_cntl_finalize(), FLA_Gemm_cntl_finalize(), FLA_Hemm_cntl_finalize(), FLA_Her2k_cntl_finalize(), FLA_Herk_cntl_finalize(), FLA_Hess_UT_cntl_finalize(), FLA_LQ_UT_cntl_finalize(), FLA_LU_nopiv_cntl_finalize(), FLA_LU_piv_cntl_finalize(), FLA_Lyap_cntl_finalize(), FLA_QR2_UT_cntl_finalize(), FLA_QR_UT_cntl_finalize(), FLA_SPDinv_cntl_finalize(), FLA_Sylv_cntl_finalize(), FLA_Symm_cntl_finalize(), FLA_Syr2k_cntl_finalize(), FLA_Syrk_cntl_finalize(), FLA_Transpose_cntl_finalize(), FLA_Tridiag_UT_cntl_finalize(), FLA_Trinv_cntl_finalize(), FLA_Trmm_cntl_finalize(), FLA_Trsm_cntl_finalize(), FLA_Ttmm_cntl_finalize(), FLA_UDdate_UT_cntl_finalize(), FLASH_Apply_CAQ2_UT_cntl_finalize(), FLASH_Apply_CAQ_UT_inc_cntl_finalize(), FLASH_Apply_pivots_cntl_finalize(), FLASH_Apply_Q2_UT_cntl_finalize(), FLASH_Apply_Q_UT_cntl_finalize(), FLASH_Apply_Q_UT_inc_cntl_finalize(), FLASH_Apply_QUD_UT_cntl_finalize(), FLASH_Apply_QUD_UT_inc_cntl_finalize(), FLASH_Axpy_cntl_finalize(), FLASH_Axpyt_cntl_finalize(), FLASH_CAQR2_UT_cntl_finalize(), FLASH_CAQR_UT_inc_cntl_finalize(), FLASH_Chol_cntl_finalize(), FLASH_Copy_cntl_finalize(), FLASH_Copyr_cntl_finalize(), FLASH_Copyt_cntl_finalize(), FLASH_Eig_gest_cntl_finalize(), FLASH_Gemm_cntl_finalize(), FLASH_Gemv_cntl_finalize(), FLASH_Hemm_cntl_finalize(), FLASH_Her2k_cntl_finalize(), FLASH_Herk_cntl_finalize(), FLASH_LQ_UT_cntl_finalize(), FLASH_LU_incpiv_cntl_finalize(), FLASH_LU_nopiv_cntl_finalize(), FLASH_LU_piv_cntl_finalize(), FLASH_Lyap_cntl_finalize(), FLASH_QR2_UT_cntl_finalize(), FLASH_QR_UT_cntl_finalize(), FLASH_QR_UT_inc_cntl_finalize(), FLASH_Scal_cntl_finalize(), FLASH_Scalr_cntl_finalize(), FLASH_SPDinv_cntl_finalize(), FLASH_Sylv_cntl_finalize(), FLASH_Symm_cntl_finalize(), FLASH_Syr2k_cntl_finalize(), FLASH_Syrk_cntl_finalize(), FLASH_Trinv_cntl_finalize(), FLASH_Trmm_cntl_finalize(), FLASH_Trsm_cntl_finalize(), FLASH_Trsv_cntl_finalize(), FLASH_Ttmm_cntl_finalize(), FLASH_UDdate_UT_cntl_finalize(), and FLASH_UDdate_UT_inc_cntl_finalize().

◆ FLA_Blocksize_scale()

void FLA_Blocksize_scale ( fla_blocksize_t * bp,
double factor )
65{
66 FLA_Error e_val;
67
68 // Verify that the given blocksize pointer is valid.
69 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
70 {
71 e_val = FLA_Check_null_pointer( bp );
72 FLA_Check_error_code( e_val );
73 }
74
75 // Assign the provided blocksize values into the corresponding fields.
76 bp->s = ( dim_t )( ( double ) bp->s * factor );
77 bp->d = ( dim_t )( ( double ) bp->d * factor );
78 bp->c = ( dim_t )( ( double ) bp->c * factor );
79 bp->z = ( dim_t )( ( double ) bp->z * factor );
80}

References FLA_Blocksize_s::c, FLA_Blocksize_s::d, FLA_Check_error_level(), FLA_Check_null_pointer(), FLA_Blocksize_s::s, and FLA_Blocksize_s::z.

Referenced by FLA_Apply_CAQ2_UT_cntl_init(), FLA_Apply_Q2_UT_cntl_init(), FLA_Apply_Q_UT_cntl_init(), FLA_Apply_QUD_UT_cntl_init(), FLA_Bidiag_UT_cntl_init(), FLA_CAQR2_UT_cntl_init(), FLA_Chol_cntl_init(), FLA_Hess_UT_cntl_init(), FLA_LQ_UT_cntl_init(), FLA_LU_nopiv_cntl_init(), FLA_LU_piv_cntl_init(), FLA_QR2_UT_cntl_init(), FLA_QR_UT_cntl_init(), FLA_Tridiag_UT_cntl_init(), and FLA_UDdate_UT_cntl_init().

◆ FLA_Blocksize_set()

void FLA_Blocksize_set ( fla_blocksize_t * bp,
dim_t b_s,
dim_t b_d,
dim_t b_c,
dim_t b_z )
55{
56 // Assign the provided blocksize values into the corresponding fields.
57 if ( b_s != 0 ) bp->s = b_s;
58 if ( b_d != 0 ) bp->d = b_d;
59 if ( b_c != 0 ) bp->c = b_c;
60 if ( b_z != 0 ) bp->z = b_z;
61}

References FLA_Blocksize_s::c, FLA_Blocksize_s::d, FLA_Blocksize_s::s, and FLA_Blocksize_s::z.

Referenced by FLASH_Apply_Q_UT().

◆ FLA_Determine_blocksize()

dim_t FLA_Determine_blocksize ( FLA_Obj A_unproc,
FLA_Quadrant to_dir,
fla_blocksize_t * bp )
235{
236 FLA_Error e_val;
237 FLA_Datatype datatype;
238 dim_t A_unproc_size;
239 dim_t typed_blocksize;
240 dim_t b;
241
242 // Determine the size of the remaining portion of the matrix.
243 A_unproc_size = FLA_determine_matrix_size( A_unproc, to_dir );
244
245 // Determine the datatype of the matrix.
246 datatype = FLA_Obj_datatype( A_unproc );
247
248 // Determine the raw blocksize value from the blocksize structure.
249 typed_blocksize = FLA_Blocksize_extract( datatype, bp );
250
251 // Check blocksize for zero value.
252 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
253 {
254 e_val = FLA_Check_blocksize_value( typed_blocksize );
255 FLA_Check_error_code( e_val );
256 }
257
258 // If the unprocessed partition is smaller than our blocksize allows,
259 // we have to use it's length/width instead.
260 b = min( A_unproc_size, typed_blocksize );
261
262 // Return the computed blocksize.
263 return b;
264}
dim_t FLA_determine_matrix_size(FLA_Obj A_unproc, FLA_Quadrant to_dir)
Definition FLA_Blocksize.c:267
dim_t FLA_Blocksize_extract(FLA_Datatype dt, fla_blocksize_t *bp)
Definition FLA_Blocksize.c:116
FLA_Error FLA_Check_blocksize_value(dim_t b)
Definition FLA_Check.c:645
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition FLA_Query.c:13
int FLA_Datatype
Definition FLA_type_defs.h:49

References FLA_Blocksize_extract(), FLA_Check_blocksize_value(), FLA_Check_error_level(), FLA_determine_matrix_size(), and FLA_Obj_datatype().

Referenced by FLA_Apply_CAQ2_UT_lhfc_blk_var2(), FLA_Apply_CAQ2_UT_lhfc_blk_var3(), FLA_Apply_CAQ_UT_inc_lhfc_blk_var1(), FLA_Apply_pivots_ln_blk_var1(), FLA_Apply_pivots_ln_blk_var2(), FLA_Apply_Q2_UT_lhfc_blk_var2(), FLA_Apply_Q2_UT_lhfc_blk_var3(), FLA_Apply_Q2_UT_lnfc_blk_var2(), FLA_Apply_Q2_UT_lnfc_blk_var3(), FLA_Apply_Q_UT_inc_lhfc_blk_var1(), FLA_Apply_Q_UT_inc_lnfc_blk_var1(), FLA_Apply_Q_UT_lhbc_blk_var2(), FLA_Apply_Q_UT_lhbc_blk_var3(), FLA_Apply_Q_UT_lhbr_blk_var2(), FLA_Apply_Q_UT_lhbr_blk_var3(), FLA_Apply_Q_UT_lhfc_blk_var2(), FLA_Apply_Q_UT_lhfc_blk_var3(), FLA_Apply_Q_UT_lhfr_blk_var2(), FLA_Apply_Q_UT_lhfr_blk_var3(), FLA_Apply_Q_UT_lnbc_blk_var2(), FLA_Apply_Q_UT_lnbc_blk_var3(), FLA_Apply_Q_UT_lnbr_blk_var2(), FLA_Apply_Q_UT_lnbr_blk_var3(), FLA_Apply_Q_UT_lnfc_blk_var2(), FLA_Apply_Q_UT_lnfc_blk_var3(), FLA_Apply_Q_UT_lnfr_blk_var2(), FLA_Apply_Q_UT_lnfr_blk_var3(), FLA_Apply_Q_UT_rhbc_blk_var2(), FLA_Apply_Q_UT_rhbc_blk_var3(), FLA_Apply_Q_UT_rhbr_blk_var2(), FLA_Apply_Q_UT_rhbr_blk_var3(), FLA_Apply_Q_UT_rhfc_blk_var2(), FLA_Apply_Q_UT_rhfc_blk_var3(), FLA_Apply_Q_UT_rhfr_blk_var2(), FLA_Apply_Q_UT_rhfr_blk_var3(), FLA_Apply_Q_UT_rnbc_blk_var2(), FLA_Apply_Q_UT_rnbc_blk_var3(), FLA_Apply_Q_UT_rnbr_blk_var2(), FLA_Apply_Q_UT_rnbr_blk_var3(), FLA_Apply_Q_UT_rnfc_blk_var2(), FLA_Apply_Q_UT_rnfc_blk_var3(), FLA_Apply_Q_UT_rnfr_blk_var2(), FLA_Apply_Q_UT_rnfr_blk_var3(), FLA_Apply_QUD_UT_inc_lhfc_blk_var1(), FLA_Apply_QUD_UT_lhfc_blk_var2(), FLA_Apply_QUD_UT_lhfc_blk_var3(), FLA_Axpy_blk_var1(), FLA_Axpy_blk_var2(), FLA_Axpy_blk_var3(), FLA_Axpy_blk_var4(), FLA_Axpyt_c_blk_var1(), FLA_Axpyt_c_blk_var2(), FLA_Axpyt_c_blk_var3(), FLA_Axpyt_c_blk_var4(), FLA_Axpyt_h_blk_var1(), FLA_Axpyt_h_blk_var2(), FLA_Axpyt_h_blk_var3(), FLA_Axpyt_h_blk_var4(), FLA_Axpyt_n_blk_var1(), FLA_Axpyt_n_blk_var2(), FLA_Axpyt_n_blk_var3(), FLA_Axpyt_n_blk_var4(), FLA_Axpyt_t_blk_var1(), FLA_Axpyt_t_blk_var2(), FLA_Axpyt_t_blk_var3(), FLA_Axpyt_t_blk_var4(), FLA_CAQR2_UT_blk_var2(), FLA_CAQR_UT_inc_blk_var1(), FLA_Chol_l_blk_var1(), FLA_Chol_l_blk_var2(), FLA_Chol_l_blk_var3(), FLA_Chol_u_blk_var1(), FLA_Chol_u_blk_var2(), FLA_Chol_u_blk_var3(), FLA_Copy_blk_var1(), FLA_Copy_blk_var2(), FLA_Copy_blk_var3(), FLA_Copy_blk_var4(), FLA_Copyr_l_blk_var1(), FLA_Copyr_l_blk_var2(), FLA_Copyr_l_blk_var3(), FLA_Copyr_l_blk_var4(), FLA_Copyr_u_blk_var1(), FLA_Copyr_u_blk_var2(), FLA_Copyr_u_blk_var3(), FLA_Copyr_u_blk_var4(), FLA_Copyt_c_blk_var1(), FLA_Copyt_c_blk_var2(), FLA_Copyt_c_blk_var3(), FLA_Copyt_c_blk_var4(), FLA_Copyt_h_blk_var1(), FLA_Copyt_h_blk_var2(), FLA_Copyt_h_blk_var3(), FLA_Copyt_h_blk_var4(), FLA_Copyt_n_blk_var1(), FLA_Copyt_n_blk_var2(), FLA_Copyt_n_blk_var3(), FLA_Copyt_n_blk_var4(), FLA_Copyt_t_blk_var1(), FLA_Copyt_t_blk_var2(), FLA_Copyt_t_blk_var3(), FLA_Copyt_t_blk_var4(), FLA_Eig_gest_il_blk_var1(), FLA_Eig_gest_il_blk_var2(), FLA_Eig_gest_il_blk_var3(), FLA_Eig_gest_il_blk_var4(), FLA_Eig_gest_il_blk_var5(), FLA_Eig_gest_iu_blk_var1(), FLA_Eig_gest_iu_blk_var2(), FLA_Eig_gest_iu_blk_var3(), FLA_Eig_gest_iu_blk_var4(), FLA_Eig_gest_iu_blk_var5(), FLA_Eig_gest_nl_blk_var1(), FLA_Eig_gest_nl_blk_var2(), FLA_Eig_gest_nl_blk_var4(), FLA_Eig_gest_nl_blk_var5(), FLA_Eig_gest_nu_blk_var1(), FLA_Eig_gest_nu_blk_var2(), FLA_Eig_gest_nu_blk_var4(), FLA_Eig_gest_nu_blk_var5(), FLA_Gemm_cc_blk_var1(), FLA_Gemm_cc_blk_var2(), FLA_Gemm_cc_blk_var3(), FLA_Gemm_cc_blk_var4(), FLA_Gemm_cc_blk_var5(), FLA_Gemm_cc_blk_var6(), FLA_Gemm_ch_blk_var1(), FLA_Gemm_ch_blk_var2(), FLA_Gemm_ch_blk_var3(), FLA_Gemm_ch_blk_var4(), FLA_Gemm_ch_blk_var5(), FLA_Gemm_ch_blk_var6(), FLA_Gemm_cn_blk_var1(), FLA_Gemm_cn_blk_var2(), FLA_Gemm_cn_blk_var3(), FLA_Gemm_cn_blk_var4(), FLA_Gemm_cn_blk_var5(), FLA_Gemm_cn_blk_var6(), FLA_Gemm_ct_blk_var1(), FLA_Gemm_ct_blk_var2(), FLA_Gemm_ct_blk_var3(), FLA_Gemm_ct_blk_var4(), FLA_Gemm_ct_blk_var5(), FLA_Gemm_ct_blk_var6(), FLA_Gemm_hc_blk_var1(), FLA_Gemm_hc_blk_var2(), FLA_Gemm_hc_blk_var3(), FLA_Gemm_hc_blk_var4(), FLA_Gemm_hc_blk_var5(), FLA_Gemm_hc_blk_var6(), FLA_Gemm_hh_blk_var1(), FLA_Gemm_hh_blk_var2(), FLA_Gemm_hh_blk_var3(), FLA_Gemm_hh_blk_var4(), FLA_Gemm_hh_blk_var5(), FLA_Gemm_hh_blk_var6(), FLA_Gemm_hn_blk_var1(), FLA_Gemm_hn_blk_var2(), FLA_Gemm_hn_blk_var3(), FLA_Gemm_hn_blk_var4(), FLA_Gemm_hn_blk_var5(), FLA_Gemm_hn_blk_var6(), FLA_Gemm_ht_blk_var1(), FLA_Gemm_ht_blk_var2(), FLA_Gemm_ht_blk_var3(), FLA_Gemm_ht_blk_var4(), FLA_Gemm_ht_blk_var5(), FLA_Gemm_ht_blk_var6(), FLA_Gemm_nc_blk_var1(), FLA_Gemm_nc_blk_var2(), FLA_Gemm_nc_blk_var3(), FLA_Gemm_nc_blk_var4(), FLA_Gemm_nc_blk_var5(), FLA_Gemm_nc_blk_var6(), FLA_Gemm_nh_blk_var1(), FLA_Gemm_nh_blk_var2(), FLA_Gemm_nh_blk_var3(), FLA_Gemm_nh_blk_var4(), FLA_Gemm_nh_blk_var5(), FLA_Gemm_nh_blk_var6(), FLA_Gemm_nn_blk_var1(), FLA_Gemm_nn_blk_var2(), FLA_Gemm_nn_blk_var3(), FLA_Gemm_nn_blk_var4(), FLA_Gemm_nn_blk_var5(), FLA_Gemm_nn_blk_var6(), FLA_Gemm_nt_blk_var1(), FLA_Gemm_nt_blk_var2(), FLA_Gemm_nt_blk_var3(), FLA_Gemm_nt_blk_var4(), FLA_Gemm_nt_blk_var5(), FLA_Gemm_nt_blk_var6(), FLA_Gemm_tc_blk_var1(), FLA_Gemm_tc_blk_var2(), FLA_Gemm_tc_blk_var3(), FLA_Gemm_tc_blk_var4(), FLA_Gemm_tc_blk_var5(), FLA_Gemm_tc_blk_var6(), FLA_Gemm_th_blk_var1(), FLA_Gemm_th_blk_var2(), FLA_Gemm_th_blk_var3(), FLA_Gemm_th_blk_var4(), FLA_Gemm_th_blk_var5(), FLA_Gemm_th_blk_var6(), FLA_Gemm_tn_blk_var1(), FLA_Gemm_tn_blk_var2(), FLA_Gemm_tn_blk_var3(), FLA_Gemm_tn_blk_var4(), FLA_Gemm_tn_blk_var5(), FLA_Gemm_tn_blk_var6(), FLA_Gemm_tt_blk_var1(), FLA_Gemm_tt_blk_var2(), FLA_Gemm_tt_blk_var3(), FLA_Gemm_tt_blk_var4(), FLA_Gemm_tt_blk_var5(), FLA_Gemm_tt_blk_var6(), FLA_Gemv_h_blk_var1(), FLA_Gemv_h_blk_var2(), FLA_Gemv_h_blk_var5(), FLA_Gemv_h_blk_var6(), FLA_Gemv_n_blk_var1(), FLA_Gemv_n_blk_var2(), FLA_Gemv_n_blk_var5(), FLA_Gemv_n_blk_var6(), FLA_Gemv_t_blk_var1(), FLA_Gemv_t_blk_var2(), FLA_Gemv_t_blk_var5(), FLA_Gemv_t_blk_var6(), FLA_Hemm_ll_blk_var1(), FLA_Hemm_ll_blk_var10(), FLA_Hemm_ll_blk_var2(), FLA_Hemm_ll_blk_var3(), FLA_Hemm_ll_blk_var4(), FLA_Hemm_ll_blk_var5(), FLA_Hemm_ll_blk_var6(), FLA_Hemm_ll_blk_var7(), FLA_Hemm_ll_blk_var8(), FLA_Hemm_ll_blk_var9(), FLA_Hemm_lu_blk_var1(), FLA_Hemm_lu_blk_var10(), FLA_Hemm_lu_blk_var2(), FLA_Hemm_lu_blk_var3(), FLA_Hemm_lu_blk_var4(), FLA_Hemm_lu_blk_var5(), FLA_Hemm_lu_blk_var6(), FLA_Hemm_lu_blk_var7(), FLA_Hemm_lu_blk_var8(), FLA_Hemm_lu_blk_var9(), FLA_Hemm_rl_blk_var1(), FLA_Hemm_rl_blk_var10(), FLA_Hemm_rl_blk_var2(), FLA_Hemm_rl_blk_var3(), FLA_Hemm_rl_blk_var4(), FLA_Hemm_rl_blk_var5(), FLA_Hemm_rl_blk_var6(), FLA_Hemm_rl_blk_var7(), FLA_Hemm_rl_blk_var8(), FLA_Hemm_rl_blk_var9(), FLA_Hemm_ru_blk_var1(), FLA_Hemm_ru_blk_var10(), FLA_Hemm_ru_blk_var2(), FLA_Hemm_ru_blk_var3(), FLA_Hemm_ru_blk_var4(), FLA_Hemm_ru_blk_var5(), FLA_Hemm_ru_blk_var6(), FLA_Hemm_ru_blk_var7(), FLA_Hemm_ru_blk_var8(), FLA_Hemm_ru_blk_var9(), FLA_Her2k_lh_blk_var1(), FLA_Her2k_lh_blk_var10(), FLA_Her2k_lh_blk_var2(), FLA_Her2k_lh_blk_var3(), FLA_Her2k_lh_blk_var4(), FLA_Her2k_lh_blk_var5(), FLA_Her2k_lh_blk_var6(), FLA_Her2k_lh_blk_var7(), FLA_Her2k_lh_blk_var8(), FLA_Her2k_lh_blk_var9(), FLA_Her2k_ln_blk_var1(), FLA_Her2k_ln_blk_var10(), FLA_Her2k_ln_blk_var2(), FLA_Her2k_ln_blk_var3(), FLA_Her2k_ln_blk_var4(), FLA_Her2k_ln_blk_var5(), FLA_Her2k_ln_blk_var6(), FLA_Her2k_ln_blk_var7(), FLA_Her2k_ln_blk_var8(), FLA_Her2k_ln_blk_var9(), FLA_Her2k_uh_blk_var1(), FLA_Her2k_uh_blk_var10(), FLA_Her2k_uh_blk_var2(), FLA_Her2k_uh_blk_var3(), FLA_Her2k_uh_blk_var4(), FLA_Her2k_uh_blk_var5(), FLA_Her2k_uh_blk_var6(), FLA_Her2k_uh_blk_var7(), FLA_Her2k_uh_blk_var8(), FLA_Her2k_uh_blk_var9(), FLA_Her2k_un_blk_var1(), FLA_Her2k_un_blk_var10(), FLA_Her2k_un_blk_var2(), FLA_Her2k_un_blk_var3(), FLA_Her2k_un_blk_var4(), FLA_Her2k_un_blk_var5(), FLA_Her2k_un_blk_var6(), FLA_Her2k_un_blk_var7(), FLA_Her2k_un_blk_var8(), FLA_Her2k_un_blk_var9(), FLA_Herk_lh_blk_var1(), FLA_Herk_lh_blk_var2(), FLA_Herk_lh_blk_var3(), FLA_Herk_lh_blk_var4(), FLA_Herk_lh_blk_var5(), FLA_Herk_lh_blk_var6(), FLA_Herk_ln_blk_var1(), FLA_Herk_ln_blk_var2(), FLA_Herk_ln_blk_var3(), FLA_Herk_ln_blk_var4(), FLA_Herk_ln_blk_var5(), FLA_Herk_ln_blk_var6(), FLA_Herk_uh_blk_var1(), FLA_Herk_uh_blk_var2(), FLA_Herk_uh_blk_var3(), FLA_Herk_uh_blk_var4(), FLA_Herk_uh_blk_var5(), FLA_Herk_uh_blk_var6(), FLA_Herk_un_blk_var1(), FLA_Herk_un_blk_var2(), FLA_Herk_un_blk_var3(), FLA_Herk_un_blk_var4(), FLA_Herk_un_blk_var5(), FLA_Herk_un_blk_var6(), FLA_LQ_UT_blk_var2(), FLA_LQ_UT_blk_var3(), FLA_LU_nopiv_blk_var1(), FLA_LU_nopiv_blk_var2(), FLA_LU_nopiv_blk_var3(), FLA_LU_nopiv_blk_var4(), FLA_LU_nopiv_blk_var5(), FLA_LU_piv_blk_var3(), FLA_LU_piv_blk_var4(), FLA_LU_piv_blk_var5(), FLA_Lyap_h_blk_var1(), FLA_Lyap_h_blk_var2(), FLA_Lyap_h_blk_var3(), FLA_Lyap_h_blk_var4(), FLA_Lyap_n_blk_var1(), FLA_Lyap_n_blk_var2(), FLA_Lyap_n_blk_var3(), FLA_Lyap_n_blk_var4(), FLA_QR2_UT_blk_var2(), FLA_QR_UT_blk_var2(), FLA_QR_UT_blk_var3(), FLA_QR_UT_inc_blk_var1(), FLA_QR_UT_inc_blk_var2(), FLA_Scal_blk_var1(), FLA_Scal_blk_var2(), FLA_Scal_blk_var3(), FLA_Scal_blk_var4(), FLA_Scalr_l_blk_var1(), FLA_Scalr_l_blk_var2(), FLA_Scalr_l_blk_var3(), FLA_Scalr_l_blk_var4(), FLA_Scalr_u_blk_var1(), FLA_Scalr_u_blk_var2(), FLA_Scalr_u_blk_var3(), FLA_Scalr_u_blk_var4(), FLA_Swap_t_blk_var1(), FLA_Swap_t_blk_var2(), FLA_Sylv_hh_blk_var1(), FLA_Sylv_hh_blk_var10(), FLA_Sylv_hh_blk_var11(), FLA_Sylv_hh_blk_var12(), FLA_Sylv_hh_blk_var13(), FLA_Sylv_hh_blk_var14(), FLA_Sylv_hh_blk_var15(), FLA_Sylv_hh_blk_var16(), FLA_Sylv_hh_blk_var17(), FLA_Sylv_hh_blk_var18(), FLA_Sylv_hh_blk_var2(), FLA_Sylv_hh_blk_var3(), FLA_Sylv_hh_blk_var4(), FLA_Sylv_hh_blk_var5(), FLA_Sylv_hh_blk_var6(), FLA_Sylv_hh_blk_var7(), FLA_Sylv_hh_blk_var8(), FLA_Sylv_hh_blk_var9(), FLA_Sylv_hn_blk_var1(), FLA_Sylv_hn_blk_var10(), FLA_Sylv_hn_blk_var11(), FLA_Sylv_hn_blk_var12(), FLA_Sylv_hn_blk_var13(), FLA_Sylv_hn_blk_var14(), FLA_Sylv_hn_blk_var15(), FLA_Sylv_hn_blk_var16(), FLA_Sylv_hn_blk_var17(), FLA_Sylv_hn_blk_var18(), FLA_Sylv_hn_blk_var2(), FLA_Sylv_hn_blk_var3(), FLA_Sylv_hn_blk_var4(), FLA_Sylv_hn_blk_var5(), FLA_Sylv_hn_blk_var6(), FLA_Sylv_hn_blk_var7(), FLA_Sylv_hn_blk_var8(), FLA_Sylv_hn_blk_var9(), FLA_Sylv_nh_blk_var1(), FLA_Sylv_nh_blk_var10(), FLA_Sylv_nh_blk_var11(), FLA_Sylv_nh_blk_var12(), FLA_Sylv_nh_blk_var13(), FLA_Sylv_nh_blk_var14(), FLA_Sylv_nh_blk_var15(), FLA_Sylv_nh_blk_var16(), FLA_Sylv_nh_blk_var17(), FLA_Sylv_nh_blk_var18(), FLA_Sylv_nh_blk_var2(), FLA_Sylv_nh_blk_var3(), FLA_Sylv_nh_blk_var4(), FLA_Sylv_nh_blk_var5(), FLA_Sylv_nh_blk_var6(), FLA_Sylv_nh_blk_var7(), FLA_Sylv_nh_blk_var8(), FLA_Sylv_nh_blk_var9(), FLA_Sylv_nn_blk_var1(), FLA_Sylv_nn_blk_var10(), FLA_Sylv_nn_blk_var11(), FLA_Sylv_nn_blk_var12(), FLA_Sylv_nn_blk_var13(), FLA_Sylv_nn_blk_var14(), FLA_Sylv_nn_blk_var15(), FLA_Sylv_nn_blk_var16(), FLA_Sylv_nn_blk_var17(), FLA_Sylv_nn_blk_var18(), FLA_Sylv_nn_blk_var2(), FLA_Sylv_nn_blk_var3(), FLA_Sylv_nn_blk_var4(), FLA_Sylv_nn_blk_var5(), FLA_Sylv_nn_blk_var6(), FLA_Sylv_nn_blk_var7(), FLA_Sylv_nn_blk_var8(), FLA_Sylv_nn_blk_var9(), FLA_Symm_ll_blk_var1(), FLA_Symm_ll_blk_var10(), FLA_Symm_ll_blk_var2(), FLA_Symm_ll_blk_var3(), FLA_Symm_ll_blk_var4(), FLA_Symm_ll_blk_var5(), FLA_Symm_ll_blk_var6(), FLA_Symm_ll_blk_var7(), FLA_Symm_ll_blk_var8(), FLA_Symm_ll_blk_var9(), FLA_Symm_lu_blk_var1(), FLA_Symm_lu_blk_var10(), FLA_Symm_lu_blk_var2(), FLA_Symm_lu_blk_var3(), FLA_Symm_lu_blk_var4(), FLA_Symm_lu_blk_var5(), FLA_Symm_lu_blk_var6(), FLA_Symm_lu_blk_var7(), FLA_Symm_lu_blk_var8(), FLA_Symm_lu_blk_var9(), FLA_Symm_rl_blk_var1(), FLA_Symm_rl_blk_var10(), FLA_Symm_rl_blk_var2(), FLA_Symm_rl_blk_var3(), FLA_Symm_rl_blk_var4(), FLA_Symm_rl_blk_var5(), FLA_Symm_rl_blk_var6(), FLA_Symm_rl_blk_var7(), FLA_Symm_rl_blk_var8(), FLA_Symm_rl_blk_var9(), FLA_Symm_ru_blk_var1(), FLA_Symm_ru_blk_var10(), FLA_Symm_ru_blk_var2(), FLA_Symm_ru_blk_var3(), FLA_Symm_ru_blk_var4(), FLA_Symm_ru_blk_var5(), FLA_Symm_ru_blk_var6(), FLA_Symm_ru_blk_var7(), FLA_Symm_ru_blk_var8(), FLA_Symm_ru_blk_var9(), FLA_Syr2k_ln_blk_var1(), FLA_Syr2k_ln_blk_var10(), FLA_Syr2k_ln_blk_var2(), FLA_Syr2k_ln_blk_var3(), FLA_Syr2k_ln_blk_var4(), FLA_Syr2k_ln_blk_var5(), FLA_Syr2k_ln_blk_var6(), FLA_Syr2k_ln_blk_var7(), FLA_Syr2k_ln_blk_var8(), FLA_Syr2k_ln_blk_var9(), FLA_Syr2k_lt_blk_var1(), FLA_Syr2k_lt_blk_var10(), FLA_Syr2k_lt_blk_var2(), FLA_Syr2k_lt_blk_var3(), FLA_Syr2k_lt_blk_var4(), FLA_Syr2k_lt_blk_var5(), FLA_Syr2k_lt_blk_var6(), FLA_Syr2k_lt_blk_var7(), FLA_Syr2k_lt_blk_var8(), FLA_Syr2k_lt_blk_var9(), FLA_Syr2k_un_blk_var1(), FLA_Syr2k_un_blk_var10(), FLA_Syr2k_un_blk_var2(), FLA_Syr2k_un_blk_var3(), FLA_Syr2k_un_blk_var4(), FLA_Syr2k_un_blk_var5(), FLA_Syr2k_un_blk_var6(), FLA_Syr2k_un_blk_var7(), FLA_Syr2k_un_blk_var8(), FLA_Syr2k_un_blk_var9(), FLA_Syr2k_ut_blk_var1(), FLA_Syr2k_ut_blk_var10(), FLA_Syr2k_ut_blk_var2(), FLA_Syr2k_ut_blk_var3(), FLA_Syr2k_ut_blk_var4(), FLA_Syr2k_ut_blk_var5(), FLA_Syr2k_ut_blk_var6(), FLA_Syr2k_ut_blk_var7(), FLA_Syr2k_ut_blk_var8(), FLA_Syr2k_ut_blk_var9(), FLA_Syrk_ln_blk_var1(), FLA_Syrk_ln_blk_var2(), FLA_Syrk_ln_blk_var3(), FLA_Syrk_ln_blk_var4(), FLA_Syrk_ln_blk_var5(), FLA_Syrk_ln_blk_var6(), FLA_Syrk_lt_blk_var1(), FLA_Syrk_lt_blk_var2(), FLA_Syrk_lt_blk_var3(), FLA_Syrk_lt_blk_var4(), FLA_Syrk_lt_blk_var5(), FLA_Syrk_lt_blk_var6(), FLA_Syrk_un_blk_var1(), FLA_Syrk_un_blk_var2(), FLA_Syrk_un_blk_var3(), FLA_Syrk_un_blk_var4(), FLA_Syrk_un_blk_var5(), FLA_Syrk_un_blk_var6(), FLA_Syrk_ut_blk_var1(), FLA_Syrk_ut_blk_var2(), FLA_Syrk_ut_blk_var3(), FLA_Syrk_ut_blk_var4(), FLA_Syrk_ut_blk_var5(), FLA_Syrk_ut_blk_var6(), FLA_Transpose_blk_var1(), FLA_Transpose_blk_var2(), FLA_Trinv_ln_blk_var1(), FLA_Trinv_ln_blk_var2(), FLA_Trinv_ln_blk_var3(), FLA_Trinv_ln_blk_var4(), FLA_Trinv_lu_blk_var1(), FLA_Trinv_lu_blk_var2(), FLA_Trinv_lu_blk_var3(), FLA_Trinv_lu_blk_var4(), FLA_Trinv_un_blk_var1(), FLA_Trinv_un_blk_var2(), FLA_Trinv_un_blk_var3(), FLA_Trinv_un_blk_var4(), FLA_Trinv_uu_blk_var1(), FLA_Trinv_uu_blk_var2(), FLA_Trinv_uu_blk_var3(), FLA_Trinv_uu_blk_var4(), FLA_Trmm_llc_blk_var1(), FLA_Trmm_llc_blk_var2(), FLA_Trmm_llc_blk_var3(), FLA_Trmm_llc_blk_var4(), FLA_Trmm_llh_blk_var1(), FLA_Trmm_llh_blk_var2(), FLA_Trmm_llh_blk_var3(), FLA_Trmm_llh_blk_var4(), FLA_Trmm_lln_blk_var1(), FLA_Trmm_lln_blk_var2(), FLA_Trmm_lln_blk_var3(), FLA_Trmm_lln_blk_var4(), FLA_Trmm_llt_blk_var1(), FLA_Trmm_llt_blk_var2(), FLA_Trmm_llt_blk_var3(), FLA_Trmm_llt_blk_var4(), FLA_Trmm_luc_blk_var1(), FLA_Trmm_luc_blk_var2(), FLA_Trmm_luc_blk_var3(), FLA_Trmm_luc_blk_var4(), FLA_Trmm_luh_blk_var1(), FLA_Trmm_luh_blk_var2(), FLA_Trmm_luh_blk_var3(), FLA_Trmm_luh_blk_var4(), FLA_Trmm_lun_blk_var1(), FLA_Trmm_lun_blk_var2(), FLA_Trmm_lun_blk_var3(), FLA_Trmm_lun_blk_var4(), FLA_Trmm_lut_blk_var1(), FLA_Trmm_lut_blk_var2(), FLA_Trmm_lut_blk_var3(), FLA_Trmm_lut_blk_var4(), FLA_Trmm_rlc_blk_var1(), FLA_Trmm_rlc_blk_var2(), FLA_Trmm_rlc_blk_var3(), FLA_Trmm_rlc_blk_var4(), FLA_Trmm_rlh_blk_var1(), FLA_Trmm_rlh_blk_var2(), FLA_Trmm_rlh_blk_var3(), FLA_Trmm_rlh_blk_var4(), FLA_Trmm_rln_blk_var1(), FLA_Trmm_rln_blk_var2(), FLA_Trmm_rln_blk_var3(), FLA_Trmm_rln_blk_var4(), FLA_Trmm_rlt_blk_var1(), FLA_Trmm_rlt_blk_var2(), FLA_Trmm_rlt_blk_var3(), FLA_Trmm_rlt_blk_var4(), FLA_Trmm_ruc_blk_var1(), FLA_Trmm_ruc_blk_var2(), FLA_Trmm_ruc_blk_var3(), FLA_Trmm_ruc_blk_var4(), FLA_Trmm_ruh_blk_var1(), FLA_Trmm_ruh_blk_var2(), FLA_Trmm_ruh_blk_var3(), FLA_Trmm_ruh_blk_var4(), FLA_Trmm_run_blk_var1(), FLA_Trmm_run_blk_var2(), FLA_Trmm_run_blk_var3(), FLA_Trmm_run_blk_var4(), FLA_Trmm_rut_blk_var1(), FLA_Trmm_rut_blk_var2(), FLA_Trmm_rut_blk_var3(), FLA_Trmm_rut_blk_var4(), FLA_Trsm_llc_blk_var1(), FLA_Trsm_llc_blk_var2(), FLA_Trsm_llc_blk_var3(), FLA_Trsm_llc_blk_var4(), FLA_Trsm_llh_blk_var1(), FLA_Trsm_llh_blk_var2(), FLA_Trsm_llh_blk_var3(), FLA_Trsm_llh_blk_var4(), FLA_Trsm_lln_blk_var1(), FLA_Trsm_lln_blk_var2(), FLA_Trsm_lln_blk_var3(), FLA_Trsm_lln_blk_var4(), FLA_Trsm_llt_blk_var1(), FLA_Trsm_llt_blk_var2(), FLA_Trsm_llt_blk_var3(), FLA_Trsm_llt_blk_var4(), FLA_Trsm_luc_blk_var1(), FLA_Trsm_luc_blk_var2(), FLA_Trsm_luc_blk_var3(), FLA_Trsm_luc_blk_var4(), FLA_Trsm_luh_blk_var1(), FLA_Trsm_luh_blk_var2(), FLA_Trsm_luh_blk_var3(), FLA_Trsm_luh_blk_var4(), FLA_Trsm_lun_blk_var1(), FLA_Trsm_lun_blk_var2(), FLA_Trsm_lun_blk_var3(), FLA_Trsm_lun_blk_var4(), FLA_Trsm_lut_blk_var1(), FLA_Trsm_lut_blk_var2(), FLA_Trsm_lut_blk_var3(), FLA_Trsm_lut_blk_var4(), FLA_Trsm_rlc_blk_var1(), FLA_Trsm_rlc_blk_var2(), FLA_Trsm_rlc_blk_var3(), FLA_Trsm_rlc_blk_var4(), FLA_Trsm_rlh_blk_var1(), FLA_Trsm_rlh_blk_var2(), FLA_Trsm_rlh_blk_var3(), FLA_Trsm_rlh_blk_var4(), FLA_Trsm_rln_blk_var1(), FLA_Trsm_rln_blk_var2(), FLA_Trsm_rln_blk_var3(), FLA_Trsm_rln_blk_var4(), FLA_Trsm_rlt_blk_var1(), FLA_Trsm_rlt_blk_var2(), FLA_Trsm_rlt_blk_var3(), FLA_Trsm_rlt_blk_var4(), FLA_Trsm_ruc_blk_var1(), FLA_Trsm_ruc_blk_var2(), FLA_Trsm_ruc_blk_var3(), FLA_Trsm_ruc_blk_var4(), FLA_Trsm_ruh_blk_var1(), FLA_Trsm_ruh_blk_var2(), FLA_Trsm_ruh_blk_var3(), FLA_Trsm_ruh_blk_var4(), FLA_Trsm_run_blk_var1(), FLA_Trsm_run_blk_var2(), FLA_Trsm_run_blk_var3(), FLA_Trsm_run_blk_var4(), FLA_Trsm_rut_blk_var1(), FLA_Trsm_rut_blk_var2(), FLA_Trsm_rut_blk_var3(), FLA_Trsm_rut_blk_var4(), FLA_Trsv_lc_blk_var1(), FLA_Trsv_lc_blk_var2(), FLA_Trsv_ln_blk_var1(), FLA_Trsv_ln_blk_var2(), FLA_Trsv_lt_blk_var1(), FLA_Trsv_lt_blk_var2(), FLA_Trsv_uc_blk_var1(), FLA_Trsv_uc_blk_var2(), FLA_Trsv_un_blk_var1(), FLA_Trsv_un_blk_var2(), FLA_Trsv_ut_blk_var1(), FLA_Trsv_ut_blk_var2(), FLA_Ttmm_l_blk_var1(), FLA_Ttmm_l_blk_var2(), FLA_Ttmm_l_blk_var3(), FLA_Ttmm_u_blk_var1(), FLA_Ttmm_u_blk_var2(), FLA_Ttmm_u_blk_var3(), FLA_UDdate_UT_blk_var2(), and FLA_UDdate_UT_inc_blk_var1().

◆ FLA_determine_matrix_size()

dim_t FLA_determine_matrix_size ( FLA_Obj A_unproc,
FLA_Quadrant to_dir )
268{
269 dim_t r_val = 0;
270
271 // Determine the size of the matrix dimension along which we are moving.
272 switch( to_dir )
273 {
274 case FLA_TOP:
275 case FLA_BOTTOM:
276 {
277 r_val = FLA_Obj_length( A_unproc );
278 break;
279 }
280 case FLA_LEFT:
281 case FLA_RIGHT:
282 {
283 r_val = FLA_Obj_width( A_unproc );
284 break;
285 }
286 case FLA_TL:
287 case FLA_TR:
288 case FLA_BL:
289 case FLA_BR:
290 {
291 // We need to use min_dim() here because the matrix might be
292 // rectangular.
293 r_val = FLA_Obj_min_dim( A_unproc );
294 break;
295 }
296 }
297
298 return r_val;
299}
dim_t FLA_Obj_width(FLA_Obj obj)
Definition FLA_Query.c:123
dim_t FLA_Obj_length(FLA_Obj obj)
Definition FLA_Query.c:116
dim_t FLA_Obj_min_dim(FLA_Obj obj)
Definition FLA_Query.c:153

References FLA_Obj_length(), FLA_Obj_min_dim(), and FLA_Obj_width().

Referenced by FLA_Determine_blocksize().

◆ FLA_Query_blocksize()

dim_t FLA_Query_blocksize ( FLA_Datatype dt,
FLA_Dimension dim )
162{
163 dim_t b_val = 0;
164
165#ifdef FLA_ENABLE_GOTO_INTERFACES
166
167 int dt_index;
168 int dim_index;
169
170 if ( first_time )
171 {
172 long sgemm_min, dgemm_min, cgemm_min, zgemm_min;
173
174 // Find the blocksizes associated with FLA_DIMENSION_MIN.
175 sgemm_min = min( sgemm_p, sgemm_q );
176 dgemm_min = min( dgemm_p, dgemm_q );
177 cgemm_min = min( cgemm_p, cgemm_q );
178 zgemm_min = min( zgemm_p, zgemm_q );
179
180 // Set the values for each datatype and dimension constant.
181 fla_goto_gemm_blocksize[FLA_S_INDEX][FLA_DIM_M_INDEX] = sgemm_p;
182 fla_goto_gemm_blocksize[FLA_S_INDEX][FLA_DIM_K_INDEX] = sgemm_q;
183 fla_goto_gemm_blocksize[FLA_S_INDEX][FLA_DIM_N_INDEX] = sgemm_r;
184 fla_goto_gemm_blocksize[FLA_S_INDEX][FLA_DIM_MIN_INDEX] = sgemm_min;
185
186 fla_goto_gemm_blocksize[FLA_D_INDEX][FLA_DIM_M_INDEX] = dgemm_p;
187 fla_goto_gemm_blocksize[FLA_D_INDEX][FLA_DIM_K_INDEX] = dgemm_q;
188 fla_goto_gemm_blocksize[FLA_D_INDEX][FLA_DIM_N_INDEX] = dgemm_r;
189 fla_goto_gemm_blocksize[FLA_D_INDEX][FLA_DIM_MIN_INDEX] = dgemm_min;
190
191 fla_goto_gemm_blocksize[FLA_C_INDEX][FLA_DIM_M_INDEX] = cgemm_p;
192 fla_goto_gemm_blocksize[FLA_C_INDEX][FLA_DIM_K_INDEX] = cgemm_q;
193 fla_goto_gemm_blocksize[FLA_C_INDEX][FLA_DIM_N_INDEX] = cgemm_r;
194 fla_goto_gemm_blocksize[FLA_C_INDEX][FLA_DIM_MIN_INDEX] = cgemm_min;
195
196 fla_goto_gemm_blocksize[FLA_Z_INDEX][FLA_DIM_M_INDEX] = zgemm_p;
197 fla_goto_gemm_blocksize[FLA_Z_INDEX][FLA_DIM_K_INDEX] = zgemm_q;
198 fla_goto_gemm_blocksize[FLA_Z_INDEX][FLA_DIM_N_INDEX] = zgemm_r;
199 fla_goto_gemm_blocksize[FLA_Z_INDEX][FLA_DIM_MIN_INDEX] = zgemm_min;
200
201 first_time = FALSE;
202 }
203
204 // Compute the index of the requested datatype.
205 dt_index = dt & FLA_DTYPE_INDEX_MASK;
206 dim_index = dim & FLA_DIM_INDEX_MASK;
207
208 // Index into the array and choose the appropriate blocksize.
209 b_val = ( dim_t ) fla_goto_gemm_blocksize[dt_index][dim_index];
210
211#else
212
213 // Assign the return value to a default sane blocksize in case
214 // we cannot access the libgoto symbols.
215 if ( dim == FLA_DIMENSION_M )
216 b_val = FLA_DEFAULT_M_BLOCKSIZE;
217 else if ( dim == FLA_DIMENSION_K )
218 b_val = FLA_DEFAULT_K_BLOCKSIZE;
219 else if ( dim == FLA_DIMENSION_N )
220 b_val = FLA_DEFAULT_N_BLOCKSIZE;
221 else if ( dim == FLA_DIMENSION_MIN )
222 {
223 b_val = min( FLA_DEFAULT_M_BLOCKSIZE, FLA_DEFAULT_K_BLOCKSIZE );
224 b_val = min( b_val, FLA_DEFAULT_N_BLOCKSIZE );
225 }
226
227#endif
228
229 // Return the blocksize.
230 return b_val;
231}
long zgemm_q
Definition FLA_Blocksize.c:28
long dgemm_q
Definition FLA_Blocksize.c:26
long cgemm_q
Definition FLA_Blocksize.c:27
long cgemm_r
Definition FLA_Blocksize.c:27
long sgemm_r
Definition FLA_Blocksize.c:25
long zgemm_p
long sgemm_p
long dgemm_p
long dgemm_r
Definition FLA_Blocksize.c:26
long cgemm_p
long sgemm_q
Definition FLA_Blocksize.c:25
long zgemm_r
Definition FLA_Blocksize.c:28
long fla_goto_gemm_blocksize[4][4]
Definition FLA_Blocksize.c:30

References cgemm_p, cgemm_q, cgemm_r, dgemm_p, dgemm_q, dgemm_r, fla_goto_gemm_blocksize, sgemm_p, sgemm_q, sgemm_r, zgemm_p, zgemm_q, and zgemm_r.

Referenced by FLA_Apply_Q_blk_external(), FLA_Bidiag_blk_external(), FLA_Bidiag_UT_create_T(), FLA_Check_householder_panel_dims(), FLA_Hess_blk_external(), FLA_Hess_UT_create_T(), FLA_LQ_blk_external(), FLA_LQ_UT_create_T(), FLA_QR_blk_external(), FLA_QR_UT_create_T(), FLA_Query_blocksizes(), FLA_Tridiag_blk_external(), FLA_Tridiag_form_Q_external(), FLA_Tridiag_UT_create_T(), and FLA_UDdate_UT_create_T().

◆ FLA_Query_blocksizes()

fla_blocksize_t * FLA_Query_blocksizes ( FLA_Dimension dim)
143{
144 fla_blocksize_t* bp;
145
146 // Create an FLA_Blocksize_t object.
147 bp = FLA_Blocksize_create( 0, 0, 0, 0 );
148
149 // Query the requested blocksize (m, k, or n dimension) for all of the
150 // datatypes and package the results in an FLA_Blocksize_t structure.
151 bp->s = FLA_Query_blocksize( FLA_FLOAT, dim );
152 bp->d = FLA_Query_blocksize( FLA_DOUBLE, dim );
153 bp->c = FLA_Query_blocksize( FLA_COMPLEX, dim );
154 bp->z = FLA_Query_blocksize( FLA_DOUBLE_COMPLEX, dim );
155
156 // Return a pointer to the structure.
157 return bp;
158}
fla_blocksize_t * FLA_Blocksize_create(dim_t b_s, dim_t b_d, dim_t b_c, dim_t b_z)
Definition FLA_Blocksize.c:36
dim_t FLA_Query_blocksize(FLA_Datatype dt, FLA_Dimension dim)
Definition FLA_Blocksize.c:161

References FLA_Blocksize_s::c, FLA_Blocksize_s::d, FLA_Blocksize_create(), FLA_Query_blocksize(), FLA_Blocksize_s::s, and FLA_Blocksize_s::z.

Referenced by FLA_Apply_CAQ2_UT_cntl_init(), FLA_Apply_Q2_UT_cntl_init(), FLA_Apply_Q_UT_cntl_init(), FLA_Apply_QUD_UT_cntl_init(), FLA_Bidiag_UT_cntl_init(), FLA_CAQR2_UT_cntl_init(), FLA_Chol_cntl_init(), FLA_Eig_gest_cntl_init(), FLA_Gemm_cntl_init(), FLA_Hemm_cntl_init(), FLA_Her2k_cntl_init(), FLA_Herk_cntl_init(), FLA_Hess_UT_cntl_init(), FLA_LQ_UT_cntl_init(), FLA_LU_nopiv_cntl_init(), FLA_LU_piv_cntl_init(), FLA_Lyap_cntl_init(), FLA_QR2_UT_cntl_init(), FLA_QR_UT_cntl_init(), FLA_SPDinv_cntl_init(), FLA_Sylv_cntl_init(), FLA_Symm_cntl_init(), FLA_Syr2k_cntl_init(), FLA_Syrk_cntl_init(), FLA_Transpose_cntl_init(), FLA_Tridiag_UT_cntl_init(), FLA_Trinv_cntl_init(), FLA_Trmm_cntl_init(), FLA_Trsm_cntl_init(), FLA_Ttmm_cntl_init(), FLA_UDdate_UT_cntl_init(), and FLASH_SPDinv_cntl_init().

Variable Documentation

◆ cgemm_p

long cgemm_p
extern

Referenced by FLA_Query_blocksize().

◆ cgemm_q

long cgemm_q

Referenced by FLA_Query_blocksize().

◆ cgemm_r

long cgemm_r

Referenced by FLA_Query_blocksize().

◆ dgemm_p

long dgemm_p
extern

Referenced by FLA_Query_blocksize().

◆ dgemm_q

long dgemm_q

Referenced by FLA_Query_blocksize().

◆ dgemm_r

long dgemm_r

Referenced by FLA_Query_blocksize().

◆ fla_goto_gemm_blocksize

long fla_goto_gemm_blocksize[4][4]

Referenced by FLA_Query_blocksize().

◆ sgemm_p

long sgemm_p
extern

Referenced by FLA_Query_blocksize().

◆ sgemm_q

long sgemm_q

Referenced by FLA_Query_blocksize().

◆ sgemm_r

long sgemm_r

Referenced by FLA_Query_blocksize().

◆ zgemm_p

long zgemm_p
extern

Referenced by FLA_Query_blocksize().

◆ zgemm_q

long zgemm_q

Referenced by FLA_Query_blocksize().

◆ zgemm_r

long zgemm_r

Referenced by FLA_Query_blocksize().