libflame  12600
Functions | Variables
FLA_LU_piv_cntl_init.c File Reference

(r12600)

Functions

void FLA_LU_piv_cntl_init ()
void FLA_LU_piv_cntl_finalize ()

Variables

fla_gemm_tfla_gemm_cntl_blas
fla_trsm_tfla_trsm_cntl_blas
fla_appiv_tfla_appiv_cntl_leaf
fla_lu_tfla_lu_piv_cntl
fla_lu_tfla_lu_piv_cntl2
fla_lu_tfla_lu_piv_cntl_in
fla_lu_tfla_lu_piv_cntl_leaf
fla_blocksize_tfla_lu_piv_var5_bsize
fla_blocksize_tfla_lu_piv_var5_bsize_in
double fla_lu_piv_var5_in_to_ou_bsize_ratio = 0.125

Function Documentation

void FLA_LU_piv_cntl_finalize ( void  )
void FLA_LU_piv_cntl_init ( void  )

References FLA_Blocksize_create_copy(), FLA_Blocksize_scale(), FLA_Cntl_lu_obj_create(), fla_lu_piv_var5_in_to_ou_bsize_ratio, and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

{
    // Set blocksizes with default values for conventional storage.
    fla_lu_piv_var5_bsize    = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
    fla_lu_piv_var5_bsize_in = FLA_Blocksize_create_copy( fla_lu_piv_var5_bsize );
    FLA_Blocksize_scale( fla_lu_piv_var5_bsize_in, fla_lu_piv_var5_in_to_ou_bsize_ratio );

    // Create a control tree to invoke LAPACK.
    fla_lu_piv_cntl_leaf   = FLA_Cntl_lu_obj_create( FLA_FLAT,
#ifdef FLA_ENABLE_EXTERNAL_LAPACK_FOR_SUBPROBLEMS
                                                     FLA_BLOCKED_EXTERN,
#else
                                                     FLA_UNB_OPT_VARIANT4,
#endif
                                                     NULL,
                                                     NULL,
                                                     NULL,
                                                     NULL,
                                                     NULL,
                                                     NULL,
                                                     NULL,
                                                     NULL,
                                                     NULL );

    // Create a control tree for small subproblems.
    fla_lu_piv_cntl_in     = FLA_Cntl_lu_obj_create( FLA_FLAT, 
                                                     FLA_BLOCKED_VARIANT5,
                                                     fla_lu_piv_var5_bsize_in,
                                                     fla_lu_piv_cntl_leaf,
                                                     fla_gemm_cntl_blas,
                                                     fla_gemm_cntl_blas,
                                                     fla_gemm_cntl_blas,
                                                     fla_trsm_cntl_blas,
                                                     fla_trsm_cntl_blas,
                                                     fla_appiv_cntl_leaf,
                                                     fla_appiv_cntl_leaf );

    // Create a control tree for larger problems with one level of recursion.
    fla_lu_piv_cntl2       = FLA_Cntl_lu_obj_create( FLA_FLAT, 
                                                     FLA_BLOCKED_VARIANT5,
                                                     fla_lu_piv_var5_bsize,
                                                     fla_lu_piv_cntl_in,
                                                     fla_gemm_cntl_blas,
                                                     fla_gemm_cntl_blas,
                                                     fla_gemm_cntl_blas,
                                                     fla_trsm_cntl_blas,
                                                     fla_trsm_cntl_blas,
                                                     fla_appiv_cntl_leaf,
                                                     fla_appiv_cntl_leaf );

    // Create a control tree for large problems with no extra recursion.
    fla_lu_piv_cntl        = FLA_Cntl_lu_obj_create( FLA_FLAT, 
                                                     FLA_BLOCKED_VARIANT5,
                                                     fla_lu_piv_var5_bsize,
                                                     fla_lu_piv_cntl_leaf,
                                                     fla_gemm_cntl_blas,
                                                     fla_gemm_cntl_blas,
                                                     fla_gemm_cntl_blas,
                                                     fla_trsm_cntl_blas,
                                                     fla_trsm_cntl_blas,
                                                     fla_appiv_cntl_leaf,
                                                     fla_appiv_cntl_leaf );
}

Variable Documentation

Referenced by FLA_LU_piv_cntl_init().