libflame  12600
Functions | Variables
FLA_Chol_cntl_init.c File Reference

(r12600)

Functions

void FLA_Chol_cntl_init ()
void FLA_Chol_cntl_finalize ()

Variables

fla_herk_tfla_herk_cntl_blas
fla_trsm_tfla_trsm_cntl_blas
fla_chol_tfla_chol_cntl
fla_chol_tfla_chol_cntl2
fla_chol_tfla_chol_cntl_in
fla_chol_tfla_chol_cntl_leaf
fla_blocksize_tfla_chol_var3_bsize
fla_blocksize_tfla_chol_var3_bsize_in
double fla_chol_var3_in_to_ou_bsize_ratio = 0.25

Function Documentation

void FLA_Chol_cntl_finalize ( void  )
void FLA_Chol_cntl_init ( void  )

References FLA_Blocksize_create_copy(), FLA_Blocksize_scale(), fla_chol_var3_in_to_ou_bsize_ratio, FLA_Cntl_chol_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

{
    // Set blocksize with default values for conventional storage.
    fla_chol_var3_bsize  = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
    fla_chol_var3_bsize_in = FLA_Blocksize_create_copy( fla_chol_var3_bsize );
    FLA_Blocksize_scale( fla_chol_var3_bsize_in, fla_chol_var3_in_to_ou_bsize_ratio );

    // Create a control tree to invoke LAPACK.
    fla_chol_cntl_leaf    = FLA_Cntl_chol_obj_create( FLA_FLAT,
#ifdef FLA_ENABLE_EXTERNAL_LAPACK_FOR_SUBPROBLEMS
                                                      FLA_BLOCKED_EXTERN,
#else
                                                      FLA_UNB_OPT_VARIANT2,
#endif
                                                      NULL,
                                                      NULL,
                                                      NULL,
                                                      NULL,
                                                      NULL );

    // Create a control tree for small subproblems.
    fla_chol_cntl_in     = FLA_Cntl_chol_obj_create( FLA_FLAT,
                                                     FLA_BLOCKED_VARIANT3, 
                                                     fla_chol_var3_bsize_in,
                                                     fla_chol_cntl_leaf,
                                                     fla_herk_cntl_blas,
                                                     fla_trsm_cntl_blas,
                                                     NULL );

    // Create a control tree for larger problems with one level of recursion.
    fla_chol_cntl2       = FLA_Cntl_chol_obj_create( FLA_FLAT,
                                                     FLA_BLOCKED_VARIANT3, 
                                                     fla_chol_var3_bsize,
                                                     fla_chol_cntl_in,
                                                     fla_herk_cntl_blas,
                                                     fla_trsm_cntl_blas,
                                                     NULL );

    // Create a control tree for large problems with no extra recursion.
    fla_chol_cntl        = FLA_Cntl_chol_obj_create( FLA_FLAT,
                                                     FLA_BLOCKED_VARIANT3, 
                                                     fla_chol_var3_bsize,
                                                     fla_chol_cntl_leaf,
                                                     fla_herk_cntl_blas,
                                                     fla_trsm_cntl_blas,
                                                     NULL );
}

Variable Documentation

Referenced by FLA_Chol_internal().

Referenced by FLA_Chol_cntl_init().