|
libflame
12600
|
Go to the source code of this file.
| void FLA_Cntl_finalize_flash | ( | void | ) |
References 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().
Referenced by FLA_Cntl_finalize().
{
// Level-1 BLAS
FLASH_Axpy_cntl_finalize();
FLASH_Axpyt_cntl_finalize();
FLASH_Copy_cntl_finalize();
FLASH_Copyt_cntl_finalize();
FLASH_Copyr_cntl_finalize();
FLASH_Scal_cntl_finalize();
FLASH_Scalr_cntl_finalize();
// Level-2 BLAS
FLASH_Gemv_cntl_finalize();
FLASH_Trsv_cntl_finalize();
// Level-3 BLAS
FLASH_Gemm_cntl_finalize();
FLASH_Hemm_cntl_finalize();
FLASH_Herk_cntl_finalize();
FLASH_Her2k_cntl_finalize();
FLASH_Symm_cntl_finalize();
FLASH_Syrk_cntl_finalize();
FLASH_Syr2k_cntl_finalize();
FLASH_Trmm_cntl_finalize();
FLASH_Trsm_cntl_finalize();
// LAPACK-level
FLASH_Apply_pivots_cntl_finalize();
FLASH_Chol_cntl_finalize();
FLASH_LU_nopiv_cntl_finalize();
FLASH_LU_piv_cntl_finalize();
FLASH_LU_incpiv_cntl_finalize();
FLASH_Trinv_cntl_finalize();
FLASH_Ttmm_cntl_finalize();
FLASH_Sylv_cntl_finalize();
FLASH_QR2_UT_cntl_finalize();
FLASH_CAQR2_UT_cntl_finalize();
FLASH_Apply_Q_UT_cntl_finalize();
FLASH_Apply_Q2_UT_cntl_finalize();
FLASH_Apply_CAQ2_UT_cntl_finalize();
FLASH_Apply_QUD_UT_cntl_finalize();
FLASH_Eig_gest_cntl_finalize();
// Compound LAPACK operations
FLASH_Lyap_cntl_finalize();
FLASH_SPDinv_cntl_finalize();
FLASH_QR_UT_cntl_finalize();
FLASH_QR_UT_inc_cntl_finalize();
FLASH_LQ_UT_cntl_finalize();
FLASH_CAQR_UT_inc_cntl_finalize();
FLASH_Apply_Q_UT_inc_cntl_finalize();
FLASH_Apply_CAQ_UT_inc_cntl_finalize();
FLASH_UDdate_UT_cntl_finalize();
FLASH_UDdate_UT_inc_cntl_finalize();
FLASH_Apply_QUD_UT_inc_cntl_finalize();
}
| void FLA_Cntl_init_flash | ( | void | ) |
References 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_SPDinv_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().
Referenced by FLA_Cntl_init().
{
// Level-1 BLAS
FLASH_Axpy_cntl_init();
FLASH_Axpyt_cntl_init();
FLASH_Copy_cntl_init();
FLASH_Copyt_cntl_init();
FLASH_Copyr_cntl_init();
FLASH_Scal_cntl_init();
FLASH_Scalr_cntl_init();
// Level-2 BLAS
FLASH_Gemv_cntl_init();
FLASH_Trsv_cntl_init();
// Level-3 BLAS
// Note gemm must be first since it is used by all other level-3 BLAS.
FLASH_Gemm_cntl_init();
FLASH_Hemm_cntl_init();
FLASH_Herk_cntl_init();
FLASH_Her2k_cntl_init();
FLASH_Symm_cntl_init();
FLASH_Syrk_cntl_init();
FLASH_Syr2k_cntl_init();
FLASH_Trmm_cntl_init();
FLASH_Trsm_cntl_init();
// LAPACK-level
// These require level-3 BLAS operations to be initialized.
FLASH_Apply_pivots_cntl_init();
FLASH_Chol_cntl_init();
FLASH_LU_nopiv_cntl_init();
FLASH_LU_piv_cntl_init();
FLASH_LU_incpiv_cntl_init();
FLASH_Trinv_cntl_init();
FLASH_Ttmm_cntl_init();
FLASH_Sylv_cntl_init();
FLASH_QR2_UT_cntl_init();
FLASH_CAQR2_UT_cntl_init();
FLASH_Apply_Q_UT_cntl_init();
FLASH_Apply_Q2_UT_cntl_init();
FLASH_Apply_CAQ2_UT_cntl_init();
FLASH_Apply_QUD_UT_cntl_init();
FLASH_Eig_gest_cntl_init();
// Compound LAPACK operations
// These require previous LAPACK operations to already be initialized.
FLASH_Lyap_cntl_init();
FLASH_SPDinv_cntl_init();
FLASH_QR_UT_cntl_init();
FLASH_QR_UT_inc_cntl_init();
FLASH_LQ_UT_cntl_init();
FLASH_CAQR_UT_inc_cntl_init();
FLASH_Apply_Q_UT_inc_cntl_init();
FLASH_Apply_CAQ_UT_inc_cntl_init();
FLASH_UDdate_UT_cntl_init();
FLASH_UDdate_UT_inc_cntl_init();
FLASH_Apply_QUD_UT_inc_cntl_init();
}
| void FLASH_Apply_CAQ2_UT_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Apply_CAQ2_UT_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_apcaq2ut_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksizes for hierarchical storage.
flash_apcaq2ut_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
flash_apcaq2ut_var3_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_apcaq2ut_cntl_leaf = FLA_Cntl_apcaq2ut_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 2.
flash_apcaq2ut_cntl_mid = FLA_Cntl_apcaq2ut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_apcaq2ut_var2_bsize,
flash_apcaq2ut_cntl_leaf,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 3.
flash_apcaq2ut_cntl = FLA_Cntl_apcaq2ut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_apcaq2ut_var3_bsize,
flash_apcaq2ut_cntl_mid,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
}
| void FLASH_Apply_CAQ_UT_inc_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Apply_CAQ_UT_inc_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_apcaqutinc_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksizes for hierarchical storage.
flash_apcaqutinc_var1_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_apcaqutinc_cntl = FLA_Cntl_apcaqutinc_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_apcaqutinc_var1_bsize,
flash_apcaq2ut_cntl );
}
| void FLASH_Apply_pivots_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Apply_pivots_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_appiv_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_appiv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is a b x b block.
flash_appiv_cntl_leaf = FLA_Cntl_appiv_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL );
// Create a control tree that assumes A is large.
flash_appiv_cntl_bp = FLA_Cntl_appiv_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_appiv_bsize,
flash_appiv_cntl_leaf );
// Create a control tree that assumes A and p are large.
flash_appiv_cntl = FLA_Cntl_appiv_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_appiv_bsize,
flash_appiv_cntl_bp );
}
| void FLASH_Apply_Q2_UT_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Apply_Q2_UT_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_apq2ut_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksizes for hierarchical storage.
flash_apq2ut_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
flash_apq2ut_var3_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_apq2ut_cntl_leaf = FLA_Cntl_apq2ut_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 2.
flash_apq2ut_cntl_mid = FLA_Cntl_apq2ut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_apq2ut_var2_bsize,
flash_apq2ut_cntl_leaf,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 3.
flash_apq2ut_cntl = FLA_Cntl_apq2ut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_apq2ut_var3_bsize,
flash_apq2ut_cntl_mid,
NULL,
NULL,
NULL,
NULL,
NULL );
}
| void FLASH_Apply_Q_UT_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Apply_Q_UT_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_apqut_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_apqut_var1_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
flash_apqut_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to dereference block operands and perform
// flat subproblem.
flash_apqut_cntl_leaf = FLA_Cntl_apqut_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 2 to further partition blocks.
flash_apqut_cntl = FLA_Cntl_apqut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_apqut_var2_bsize,
flash_apqut_cntl_leaf,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 3, using hierarchical level-3
// BLAS control trees.
flash_apqut_cntl_blas = FLA_Cntl_apqut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_apqut_var1_bsize,
NULL,
flash_trmm_cntl_bp,
flash_trmm_cntl_bp,
flash_gemm_cntl_pm,
flash_gemm_cntl_op,
flash_trsm_cntl_bp,
flash_copyt_cntl,
flash_axpyt_cntl );
}
| void FLASH_Apply_Q_UT_inc_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Apply_Q_UT_inc_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_apqutinc_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksizes for hierarchical storage.
flash_apqutinc_var1_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_apqutinc_cntl = FLA_Cntl_apqutinc_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_apqutinc_var1_bsize,
flash_apqut_cntl,
flash_apq2ut_cntl );
}
| void FLASH_Apply_QUD_UT_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Apply_QUD_UT_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_apqudut_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksizes for hierarchical storage.
flash_apqudut_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
flash_apqudut_var3_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_apqudut_cntl_leaf = FLA_Cntl_apqudut_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 2.
flash_apqudut_cntl_mid = FLA_Cntl_apqudut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_apqudut_var2_bsize,
flash_apqudut_cntl_leaf,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 3.
flash_apqudut_cntl = FLA_Cntl_apqudut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_apqudut_var3_bsize,
flash_apqudut_cntl_mid,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
}
| void FLASH_Apply_QUD_UT_inc_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Apply_QUD_UT_inc_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_apqudutinc_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksizes for hierarchical storage.
flash_apqudutinc_var1_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_apqudutinc_cntl = FLA_Cntl_apqudutinc_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_apqudutinc_var1_bsize,
flash_apqudut_cntl );
}
| void FLASH_Axpy_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Axpy_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_axpy_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_axpy_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are small.
flash_axpy_cntl_blas = FLA_Cntl_axpy_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL );
// Create a control tree that marches through A and B vertically.
flash_axpy_cntl_tb = FLA_Cntl_axpy_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_axpy_bsize,
flash_axpy_cntl_blas );
// Create a control tree that marches through A and B horizontally, then
// vertically.
flash_axpy_cntl = FLA_Cntl_axpy_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_axpy_bsize,
flash_axpy_cntl_tb );
}
| void FLASH_Axpyt_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Axpyt_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_axpyt_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_axpyt_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are small.
flash_axpyt_cntl_blas = FLA_Cntl_axpyt_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL );
// Create a control tree that marches through A and B vertically.
flash_axpyt_cntl_tb = FLA_Cntl_axpyt_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_axpyt_bsize,
flash_axpyt_cntl_blas );
// Create a control tree that marches through A and B horizontally.
flash_axpyt_cntl_lr = FLA_Cntl_axpyt_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_axpyt_bsize,
flash_axpyt_cntl_blas );
// Create a control tree that marches through A and B horizontally, then
// vertically.
flash_axpyt_cntl = FLA_Cntl_axpyt_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_axpyt_bsize,
flash_axpyt_cntl_tb );
}
| void FLASH_CAQR2_UT_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_CAQR2_UT_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_caqr2ut_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_caqr2ut_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_caqr2ut_cntl_leaf = FLA_Cntl_caqr2ut_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 2.
flash_caqr2ut_cntl = FLA_Cntl_caqr2ut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_caqr2ut_var2_bsize,
flash_caqr2ut_cntl_leaf,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
}
| void FLASH_CAQR_UT_inc_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_CAQR_UT_inc_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_caqrutinc_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksizes for hierarchical storage.
flash_caqrutinc_var1_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_caqrutinc_cntl = FLA_Cntl_caqrutinc_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_caqrutinc_var1_bsize,
flash_caqr2ut_cntl,
flash_apcaq2ut_cntl );
}
| void FLASH_Chol_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Chol_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_chol_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_chol_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is a b x b block.
flash_chol_cntl_leaf = FLA_Cntl_chol_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is large.
flash_chol_cntl = FLA_Cntl_chol_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_chol_bsize,
flash_chol_cntl_leaf,
flash_herk_cntl_op,
flash_trsm_cntl_bp,
NULL );
}
| void FLASH_Copy_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Copy_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_copy_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_copy_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are small.
flash_copy_cntl_blas = FLA_Cntl_copy_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL );
// Create a control tree that marches through A and B vertically.
flash_copy_cntl_tb = FLA_Cntl_copy_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_copy_bsize,
flash_copy_cntl_blas );
// Create a control tree that marches through A and B horizontally, then
// vertically.
flash_copy_cntl = FLA_Cntl_copy_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_copy_bsize,
flash_copy_cntl_tb );
}
| void FLASH_Copyr_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Copyr_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_copyr_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_copyr_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are small.
flash_copyr_cntl_blas = FLA_Cntl_copyr_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL );
// Create a control tree that marches through A and B from TL to BR.
flash_copyr_cntl = FLA_Cntl_copyr_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_copyr_bsize,
flash_copyr_cntl_blas,
flash_copy_cntl_tb );
}
| void FLASH_Copyt_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Copyt_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_copyt_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_copyt_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are small.
flash_copyt_cntl_blas = FLA_Cntl_copyt_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL );
// Create a control tree that marches through A and B vertically.
flash_copyt_cntl_tb = FLA_Cntl_copyt_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_copyt_bsize,
flash_copyt_cntl_blas );
// Create a control tree that marches through A and B horizontally.
flash_copyt_cntl_lr = FLA_Cntl_copyt_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_copyt_bsize,
flash_copyt_cntl_blas );
// Create a control tree that marches through A and B horizontally, then
// vertically.
flash_copyt_cntl = FLA_Cntl_copyt_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_copyt_bsize,
flash_copyt_cntl_tb );
}
| void FLASH_Eig_gest_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Eig_gest_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_eig_gest_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_eig_gest_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is a b x b block.
flash_eig_gest_cntl_leaf = FLA_Cntl_eig_gest_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is large.
flash_eig_gest_cntl = FLA_Cntl_eig_gest_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_eig_gest_bsize,
flash_eig_gest_cntl_leaf,
flash_axpy_cntl,
flash_axpy_cntl,
NULL,
NULL,
NULL,
flash_hemm_cntl_mm,
flash_her2k_cntl_mm,
flash_trmm_cntl_mm,
flash_trmm_cntl_mm,
flash_trsm_cntl_mm,
flash_trsm_cntl_mm );
}
| void FLASH_Gemm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
{
FLA_Cntl_obj_free( flash_gemm_cntl_blas );
FLA_Cntl_obj_free( flash_gemm_cntl_pb_bb );
FLA_Cntl_obj_free( flash_gemm_cntl_bp_bb );
FLA_Cntl_obj_free( flash_gemm_cntl_ip_bb );
FLA_Cntl_obj_free( flash_gemm_cntl_mp_ip );
FLA_Cntl_obj_free( flash_gemm_cntl_op_bp );
FLA_Cntl_obj_free( flash_gemm_cntl_pm_ip );
FLA_Cntl_obj_free( flash_gemm_cntl_op_pb );
FLA_Cntl_obj_free( flash_gemm_cntl_mp_pb );
FLA_Cntl_obj_free( flash_gemm_cntl_pm_bp );
FLA_Cntl_obj_free( flash_gemm_cntl_mm_pm );
FLA_Cntl_obj_free( flash_gemm_cntl_mm_mp );
FLA_Cntl_obj_free( flash_gemm_cntl_mm_op );
FLA_Blocksize_free( flash_gemm_bsize );
}
| void FLASH_Gemm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), FLA_Cntl_gemm_obj_create(), flash_gemm_cntl_bp_bb, flash_gemm_cntl_ip_bb, flash_gemm_cntl_mm_op, flash_gemm_cntl_mp_pb, flash_gemm_cntl_op_pb, flash_gemm_cntl_pb_bb, and flash_gemm_cntl_pm_bp.
Referenced by FLA_Cntl_init_flash().
{
// Set gemm blocksize for hierarchical storage.
flash_gemm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree node that executes a gemm subproblem.
flash_gemm_cntl_blas = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL );
// Create control trees for situations where one dimension is large.
flash_gemm_cntl_pb_bb = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_blas );
flash_gemm_cntl_bp_bb = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_blas );
flash_gemm_cntl_ip_bb = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_blas );
// Create control trees for situations where two dimensions are large.
flash_gemm_cntl_mp_ip = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_ip_bb );
flash_gemm_cntl_op_bp = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_bp_bb );
flash_gemm_cntl_pm_ip = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_ip_bb );
flash_gemm_cntl_op_pb = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_pb_bb );
flash_gemm_cntl_mp_pb = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_pb_bb );
flash_gemm_cntl_pm_bp = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_bp_bb );
// Create control trees for situations where all dimensions are large.
flash_gemm_cntl_mm_pm = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_pm_ip );
flash_gemm_cntl_mm_mp = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_mp_ip );
flash_gemm_cntl_mm_op = FLA_Cntl_gemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_gemm_bsize,
flash_scal_cntl,
flash_gemm_cntl_op_bp );
// Alias select control trees for convenience, when the caller doesn't
// care (as he usually doesn't when partitioning hierarchical matricies)
// which order the matrix is partitioned into blocks
flash_gemm_cntl_mm = flash_gemm_cntl_mm_op;
flash_gemm_cntl_mp = flash_gemm_cntl_mp_pb;
flash_gemm_cntl_pm = flash_gemm_cntl_pm_bp;
flash_gemm_cntl_op = flash_gemm_cntl_op_pb;
flash_gemm_cntl_pb = flash_gemm_cntl_pb_bb;
flash_gemm_cntl_bp = flash_gemm_cntl_bp_bb;
flash_gemm_cntl_ip = flash_gemm_cntl_ip_bb;
}
| void FLASH_Gemv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Gemv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_gemv_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set gemv blocksize for hierarchical storage.
flash_gemv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree node that executes a gemv subproblem.
flash_gemv_cntl_blas = FLA_Cntl_gemv_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL );
// Create control trees for situations where one dimension is large.
flash_gemv_cntl_cp_bv = FLA_Cntl_gemv_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_gemv_bsize,
flash_scal_cntl,
flash_gemv_cntl_blas );
flash_gemv_cntl_rp_bv = FLA_Cntl_gemv_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_gemv_bsize,
flash_scal_cntl,
flash_gemv_cntl_blas );
// Create control trees for situations where both dimensions are large.
flash_gemv_cntl_fm_rp = FLA_Cntl_gemv_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_gemv_bsize,
flash_scal_cntl,
flash_gemv_cntl_rp_bv );
flash_gemv_cntl_fm_cp = FLA_Cntl_gemv_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_gemv_bsize,
flash_scal_cntl,
flash_gemv_cntl_cp_bv );
}
| void FLASH_Hemm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Hemm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_hemm_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set hemm blocksize for hierarchical storage.
flash_hemm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are b x b blocks.
flash_hemm_cntl_blas = FLA_Cntl_hemm_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is a block and B is a panel.
flash_hemm_cntl_bp = FLA_Cntl_hemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT9,
flash_hemm_bsize,
flash_scal_cntl,
flash_hemm_cntl_blas,
NULL,
NULL );
// Create a control tree that assumes A is large and B is a panel.
flash_hemm_cntl_mp = FLA_Cntl_hemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_hemm_bsize,
flash_scal_cntl,
flash_hemm_cntl_blas,
flash_gemm_cntl_op_bp,
flash_gemm_cntl_mm_mp );
// Create a control tree that assumes A and B are both large.
flash_hemm_cntl_mm = FLA_Cntl_hemm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT9,
flash_hemm_bsize,
flash_scal_cntl,
flash_hemm_cntl_mp,
NULL,
NULL );
}
| void FLASH_Her2k_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Her2k_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_her2k_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set her2k blocksize for hierarchical storage.
flash_her2k_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are b x b blocks.
flash_her2k_cntl_blas = FLA_Cntl_her2k_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A and B form an inner panel product.
flash_her2k_cntl_ip = FLA_Cntl_her2k_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT9,
flash_her2k_bsize,
flash_scalr_cntl,
flash_her2k_cntl_blas,
NULL,
NULL );
// Create a control tree that assumes A and B form an outer panel product.
flash_her2k_cntl_op = FLA_Cntl_her2k_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT4,
flash_her2k_bsize,
flash_scalr_cntl,
flash_her2k_cntl_blas,
flash_gemm_cntl_pb_bb,
flash_gemm_cntl_pb_bb );
// Create a control tree that assumes A and B are both large.
flash_her2k_cntl_mm = FLA_Cntl_her2k_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT9,
flash_her2k_bsize,
flash_scalr_cntl,
flash_her2k_cntl_op,
NULL,
NULL );
}
| void FLASH_Herk_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Herk_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_herk_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set herk blocksize for hierarchical storage.
flash_herk_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is a b x b block.
flash_herk_cntl_blas = FLA_Cntl_herk_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A * A' forms an inner panel product.
flash_herk_cntl_ip = FLA_Cntl_herk_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_herk_bsize,
flash_scalr_cntl,
flash_herk_cntl_blas,
NULL );
// Create a control tree that assumes A * A' forms an outer panel product.
flash_herk_cntl_op = FLA_Cntl_herk_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_herk_bsize,
flash_scalr_cntl,
flash_herk_cntl_blas,
flash_gemm_cntl_pb_bb );
// Create a control tree that assumes A is large.
flash_herk_cntl_mm = FLA_Cntl_herk_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_herk_bsize,
flash_scalr_cntl,
flash_herk_cntl_op,
NULL );
}
| void FLASH_LQ_UT_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_LQ_UT_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_lqut_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksizes for hierarchical storage.
flash_lqut_var3_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to compute the subproblem.
flash_lqut_cntl_leaf = FLA_Cntl_lqut_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 2.
flash_lqut_cntl = FLA_Cntl_lqut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_lqut_var3_bsize,
flash_lqut_cntl_leaf,
flash_apqut_cntl_blas );
}
| void FLASH_LU_incpiv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_LU_incpiv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_lu_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_lu_incpiv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is a b x b block.
flash_lu_incpiv_cntl_leaf = FLA_Cntl_lu_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is large.
flash_lu_incpiv_cntl = FLA_Cntl_lu_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_lu_incpiv_bsize,
flash_lu_incpiv_cntl_leaf,
flash_gemm_cntl_bp_bb,
NULL,
NULL,
flash_trsm_cntl_bp,
flash_trsm_cntl_bp,
flash_appiv_cntl_bp,
NULL );
}
| void FLASH_LU_nopiv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_LU_nopiv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_lu_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_lu_nopiv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is a b x b block.
flash_lu_nopiv_cntl_leaf = FLA_Cntl_lu_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is large.
flash_lu_nopiv_cntl = FLA_Cntl_lu_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_lu_nopiv_bsize,
flash_lu_nopiv_cntl_leaf,
flash_gemm_cntl_op_bp,
NULL,
NULL,
flash_trsm_cntl_bp,
flash_trsm_cntl_bp,
NULL,
NULL );
}
| void FLASH_LU_piv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_LU_piv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_lu_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_lu_piv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is a b x b block.
flash_lu_piv_cntl_leaf = FLA_Cntl_lu_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is large.
flash_lu_piv_cntl = FLA_Cntl_lu_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_lu_piv_bsize,
flash_lu_piv_cntl_leaf,
flash_gemm_cntl_op_bp,
NULL,
NULL,
flash_trsm_cntl_bp,
flash_trsm_cntl_bp,
flash_appiv_cntl_bp,
NULL );
}
| void FLASH_Lyap_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Lyap_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_lyap_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_lyap_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and C are b x b blocks.
flash_lyap_cntl_leaf = FLA_Cntl_lyap_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is a matrix and C is a matrix.
flash_lyap_cntl = FLA_Cntl_lyap_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_lyap_bsize,
flash_scal_cntl,
flash_lyap_cntl_leaf,
flash_sylv_cntl,
NULL, //flash_gemm_cntl_pm,
NULL, //flash_gemm_cntl_pm,
flash_hemm_cntl_mp,
flash_her2k_cntl_ip );
}
| void FLASH_QR2_UT_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_QR2_UT_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_qr2ut_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_qr2ut_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_qr2ut_cntl_leaf = FLA_Cntl_qr2ut_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 2.
flash_qr2ut_cntl = FLA_Cntl_qr2ut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_qr2ut_var2_bsize,
flash_qr2ut_cntl_leaf,
NULL,
NULL,
NULL,
NULL,
NULL );
}
| void FLASH_QR_UT_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_QR_UT_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_qrut_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksizes for hierarchical storage.
flash_qrut_var3_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to compute the subproblem.
flash_qrut_cntl_leaf = FLA_Cntl_qrut_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 3.
flash_qrut_cntl = FLA_Cntl_qrut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_qrut_var3_bsize,
flash_qrut_cntl_leaf,
flash_apqut_cntl_blas );
}
| void FLASH_QR_UT_inc_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_QR_UT_inc_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_qrutinc_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksizes for hierarchical storage.
flash_qrutinc_var1_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_qrutinc_cntl = FLA_Cntl_qrutinc_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_qrutinc_var1_bsize,
flash_qrut_cntl_leaf,
flash_apqut_cntl,
flash_qr2ut_cntl,
flash_apq2ut_cntl );
}
| void FLASH_Scal_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Scal_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_scal_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_scal_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is small.
flash_scal_cntl_blas = FLA_Cntl_scal_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL );
// Create a control tree that marches through A vertically.
flash_scal_cntl_tb = FLA_Cntl_scal_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_scal_bsize,
flash_scal_cntl_blas );
// Create a control tree that marches through A horizontally.
flash_scal_cntl_lr = FLA_Cntl_scal_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_scal_bsize,
flash_scal_cntl_blas );
// Create a control tree that marches through A horizontally, then
// vertically.
flash_scal_cntl = FLA_Cntl_scal_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_scal_bsize,
flash_scal_cntl_tb );
}
| void FLASH_Scalr_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Scalr_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_scalr_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_scalr_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is small.
flash_scalr_cntl_blas = FLA_Cntl_scalr_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL );
// Create a control tree that computes column panels, top-left to
// bottom-right.
flash_scalr_cntl = FLA_Cntl_scalr_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_scalr_bsize,
flash_scalr_cntl_blas,
flash_scal_cntl_tb );
}
| void FLASH_SPDinv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_SPDinv_cntl_init | ( | void | ) |
References FLA_Cntl_spdinv_obj_create(), and FLA_Query_blocksizes().
Referenced by FLA_Cntl_init_flash().
{
// Rather than embed a blocksize, we store the cutoff matrix size for
// switching from external routines to internal FLAME variants.
flash_spdinv_size_cutoff = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
// Initialize a control tree node that calls the top-level Cholesky
// factorization, Trinagular inversion, and Triangular-transpose matrix
// multiply control trees.
flash_spdinv_cntl = FLA_Cntl_spdinv_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_spdinv_size_cutoff,
flash_chol_cntl,
flash_trinv_cntl,
flash_ttmm_cntl );
}
| void FLASH_Sylv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Sylv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_sylv_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_sylv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are b x b blocks.
flash_sylv_cntl_leaf = FLA_Cntl_sylv_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is a matrix and B is a block.
flash_sylv_cntl_mb = FLA_Cntl_sylv_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT17,
flash_sylv_bsize,
flash_sylv_cntl_leaf,
NULL,
NULL,
flash_gemm_cntl_ip_bb,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is a matrix and B is a matrix.
flash_sylv_cntl = FLA_Cntl_sylv_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT15,
flash_sylv_bsize,
flash_sylv_cntl_mb,
NULL,
NULL,
flash_gemm_cntl_pm_bp,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
}
| void FLASH_Symm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Symm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_symm_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set symm blocksize for hierarchical storage.
flash_symm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are b x b blocks.
flash_symm_cntl_blas = FLA_Cntl_symm_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is a block and B is a panel.
flash_symm_cntl_bp = FLA_Cntl_symm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT9,
flash_symm_bsize,
flash_scal_cntl,
flash_symm_cntl_blas,
NULL,
NULL );
// Create a control tree that assumes A is large and B is a panel.
flash_symm_cntl_mp = FLA_Cntl_symm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_symm_bsize,
flash_scal_cntl,
flash_symm_cntl_blas,
flash_gemm_cntl_op_bp,
flash_gemm_cntl_mm_mp );
// Create a control tree that assumes A and B are both large.
flash_symm_cntl_mm = FLA_Cntl_symm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT9,
flash_symm_bsize,
flash_scal_cntl,
flash_symm_cntl_mp,
NULL,
NULL );
}
| void FLASH_Syr2k_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Syr2k_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_syr2k_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set syr2k blocksize for hierarchical storage.
flash_syr2k_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are b x b blocks.
flash_syr2k_cntl_blas = FLA_Cntl_syr2k_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A and B form an inner panel product.
flash_syr2k_cntl_ip = FLA_Cntl_syr2k_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT9,
flash_syr2k_bsize,
flash_scalr_cntl,
flash_syr2k_cntl_blas,
NULL,
NULL );
// Create a control tree that assumes A and B form an outer panel product.
flash_syr2k_cntl_op = FLA_Cntl_syr2k_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT4,
flash_syr2k_bsize,
flash_scalr_cntl,
flash_syr2k_cntl_blas,
flash_gemm_cntl_pb_bb,
flash_gemm_cntl_pb_bb );
// Create a control tree that assumes A and B are both large.
flash_syr2k_cntl_mm = FLA_Cntl_syr2k_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT9,
flash_syr2k_bsize,
flash_scalr_cntl,
flash_syr2k_cntl_op,
NULL,
NULL );
}
| void FLASH_Syrk_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Syrk_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_syrk_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set syrk blocksize for hierarchical storage.
flash_syrk_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is a b x b block.
flash_syrk_cntl_blas = FLA_Cntl_syrk_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A * A' forms an inner panel product.
flash_syrk_cntl_ip = FLA_Cntl_syrk_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_syrk_bsize,
flash_scalr_cntl,
flash_syrk_cntl_blas,
NULL );
// Create a control tree that assumes A * A' forms an outer panel product.
flash_syrk_cntl_op = FLA_Cntl_syrk_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_syrk_bsize,
flash_scalr_cntl,
flash_syrk_cntl_blas,
flash_gemm_cntl_pb_bb );
// Create a control tree that assumes A is large.
flash_syrk_cntl_mm = FLA_Cntl_syrk_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT5,
flash_syrk_bsize,
flash_scalr_cntl,
flash_syrk_cntl_op,
NULL );
}
| void FLASH_Transpose_cntl_finalize | ( | void | ) |
| void FLASH_Transpose_cntl_init | ( | void | ) |
| void FLASH_Trinv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Trinv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_trinv_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_trinv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is a b x b block.
flash_trinv_cntl_leaf = FLA_Cntl_trinv_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is large.
flash_trinv_cntl = FLA_Cntl_trinv_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_trinv_bsize,
flash_trinv_cntl_leaf,
NULL,
flash_trsm_cntl_bp,
flash_trsm_cntl_bp,
flash_gemm_cntl_op_bp );
}
| void FLASH_Trmm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Trmm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_trmm_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set trmm blocksize for hierarchical storage.
flash_trmm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are b x b blocks.
flash_trmm_cntl_blas = FLA_Cntl_trmm_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is a block and B is a panel.
flash_trmm_cntl_bp = FLA_Cntl_trmm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_trmm_bsize,
flash_scal_cntl,
flash_trmm_cntl_blas,
NULL );
// Create a control tree that assumes A is large and B is a panel.
flash_trmm_cntl_mp = FLA_Cntl_trmm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_trmm_bsize,
flash_scal_cntl,
flash_trmm_cntl_blas,
flash_gemm_cntl_op_bp );
// Create a control tree that assumes A and B are both large.
flash_trmm_cntl_mm = FLA_Cntl_trmm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_trmm_bsize,
flash_scal_cntl,
flash_trmm_cntl_mp,
NULL );
}
| void FLASH_Trsm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Trsm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_trsm_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set trsm blocksize for hierarchical storage.
flash_trsm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A and B are b x b blocks.
flash_trsm_cntl_blas = FLA_Cntl_trsm_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is a block and B is a panel.
flash_trsm_cntl_bp = FLA_Cntl_trsm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_trsm_bsize,
flash_scal_cntl,
flash_trsm_cntl_blas,
NULL );
// Create a control tree that assumes A is large and B is a panel.
flash_trsm_cntl_mp = FLA_Cntl_trsm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_trsm_bsize,
flash_scal_cntl,
flash_trsm_cntl_blas,
flash_gemm_cntl_op_bp );
// Create a control tree that assumes A and B are both large.
flash_trsm_cntl_mm = FLA_Cntl_trsm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT3,
flash_trsm_bsize,
flash_scal_cntl,
flash_trsm_cntl_mp,
NULL );
}
| void FLASH_Trsv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Trsv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_trsv_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set trsv blocksize for hierarchical storage.
flash_trsv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is a b x b block.
flash_trsv_cntl_blas = FLA_Cntl_trsv_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is large.
flash_trsv_cntl = FLA_Cntl_trsv_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_trsv_bsize,
flash_trsv_cntl_blas,
flash_gemv_cntl_cp_bv );
}
| void FLASH_Ttmm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_Ttmm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_ttmm_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_ttmm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree that assumes A is a b x b block.
flash_ttmm_cntl_leaf = FLA_Cntl_ttmm_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL,
NULL,
NULL );
// Create a control tree that assumes A is large.
flash_ttmm_cntl = FLA_Cntl_ttmm_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_ttmm_bsize,
flash_ttmm_cntl_leaf,
flash_herk_cntl_op,
flash_trmm_cntl_bp,
NULL );
}
| void FLASH_UDdate_UT_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_UDdate_UT_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_uddateut_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksize for hierarchical storage.
flash_uddateut_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_uddateut_cntl_leaf = FLA_Cntl_uddateut_obj_create( FLA_HIER,
FLA_SUBPROBLEM,
NULL,
NULL,
NULL );
// Create a control tree to invoke variant 2.
flash_uddateut_cntl = FLA_Cntl_uddateut_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT2,
flash_uddateut_var2_bsize,
flash_uddateut_cntl_leaf,
NULL );
}
| void FLASH_UDdate_UT_inc_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
| void FLASH_UDdate_UT_inc_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_uddateutinc_obj_create().
Referenced by FLA_Cntl_init_flash().
{
// Set blocksizes for hierarchical storage.
flash_uddateutinc_var1_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
// Create a control tree to invoke variant 1.
flash_uddateutinc_cntl = FLA_Cntl_uddateutinc_obj_create( FLA_HIER,
FLA_BLOCKED_VARIANT1,
flash_uddateutinc_var1_bsize,
flash_uddateut_cntl,
flash_apqudut_cntl );
}
1.7.6.1