FLA_Cntl_init_flash.h File Reference

(r)

Go to the source code of this file.

Functions

void FLA_Cntl_init_flash (void)
void FLA_Cntl_finalize_flash (void)
void FLASH_Transpose_cntl_init (void)
void FLASH_Transpose_cntl_finalize (void)
void FLASH_Axpy_cntl_init (void)
void FLASH_Copy_cntl_init (void)
void FLASH_Axpy_cntl_finalize (void)
void FLASH_Copy_cntl_finalize (void)
void FLASH_Gemv_cntl_init (void)
void FLASH_Trsv_cntl_init (void)
void FLASH_Gemv_cntl_finalize (void)
void FLASH_Trsv_cntl_finalize (void)
void FLASH_Gemm_cntl_init (void)
void FLASH_Hemm_cntl_init (void)
void FLASH_Herk_cntl_init (void)
void FLASH_Her2k_cntl_init (void)
void FLASH_Symm_cntl_init (void)
void FLASH_Syrk_cntl_init (void)
void FLASH_Syr2k_cntl_init (void)
void FLASH_Trmm_cntl_init (void)
void FLASH_Trsm_cntl_init (void)
void FLASH_Gemm_cntl_finalize (void)
void FLASH_Hemm_cntl_finalize (void)
void FLASH_Herk_cntl_finalize (void)
void FLASH_Her2k_cntl_finalize (void)
void FLASH_Symm_cntl_finalize (void)
void FLASH_Syrk_cntl_finalize (void)
void FLASH_Syr2k_cntl_finalize (void)
void FLASH_Trmm_cntl_finalize (void)
void FLASH_Trsm_cntl_finalize (void)
void FLASH_Chol_cntl_init (void)
void FLASH_LU_nopiv_cntl_init (void)
void FLASH_Trinv_cntl_init (void)
void FLASH_Ttmm_cntl_init (void)
void FLASH_SPDinv_cntl_init (void)
void FLASH_Sylv_cntl_init (void)
void FLASH_QR_UT_cntl_init (void)
void FLASH_QR_UT_UD_cntl_init (void)
void FLASH_QR_UT_inc_cntl_init (void)
void FLASH_Apply_Q_UT_cntl_init (void)
void FLASH_Apply_Q_UT_UD_cntl_init (void)
void FLASH_Apply_Q_UT_inc_cntl_init (void)
void FLASH_LQ_cntl_init (void)
void FLASH_LQ_UT_cntl_init (void)
void FLASH_Hess_cntl_init (void)
void FLASH_Chol_cntl_finalize (void)
void FLASH_LU_nopiv_cntl_finalize (void)
void FLASH_Trinv_cntl_finalize (void)
void FLASH_Ttmm_cntl_finalize (void)
void FLASH_SPDinv_cntl_finalize (void)
void FLASH_Sylv_cntl_finalize (void)
void FLASH_QR_UT_cntl_finalize (void)
void FLASH_QR_UT_UD_cntl_finalize (void)
void FLASH_QR_UT_inc_cntl_finalize (void)
void FLASH_Apply_Q_UT_cntl_finalize (void)
void FLASH_Apply_Q_UT_UD_cntl_finalize (void)
void FLASH_Apply_Q_UT_inc_cntl_finalize (void)
void FLASH_LQ_cntl_finalize (void)
void FLASH_LQ_UT_cntl_finalize (void)
void FLASH_Hess_cntl_finalize (void)


Function Documentation

void FLA_Cntl_finalize_flash ( void   ) 

References FLASH_Apply_Q_UT_cntl_finalize(), FLASH_Apply_Q_UT_inc_cntl_finalize(), FLASH_Apply_Q_UT_UD_cntl_finalize(), FLASH_Axpy_cntl_finalize(), FLASH_Chol_cntl_finalize(), FLASH_Copy_cntl_finalize(), FLASH_Gemm_cntl_finalize(), FLASH_Gemv_cntl_finalize(), FLASH_Hemm_cntl_finalize(), FLASH_Her2k_cntl_finalize(), FLASH_Herk_cntl_finalize(), FLASH_LU_nopiv_cntl_finalize(), FLASH_QR_UT_cntl_finalize(), FLASH_QR_UT_inc_cntl_finalize(), FLASH_QR_UT_UD_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(), and FLASH_Ttmm_cntl_finalize().

Referenced by FLA_Cntl_finalize().

void FLA_Cntl_init_flash ( void   ) 

References FLASH_Apply_Q_UT_cntl_init(), FLASH_Apply_Q_UT_inc_cntl_init(), FLASH_Apply_Q_UT_UD_cntl_init(), FLASH_Axpy_cntl_init(), FLASH_Chol_cntl_init(), FLASH_Copy_cntl_init(), FLASH_Gemm_cntl_init(), FLASH_Gemv_cntl_init(), FLASH_Hemm_cntl_init(), FLASH_Her2k_cntl_init(), FLASH_Herk_cntl_init(), FLASH_LU_nopiv_cntl_init(), FLASH_QR_UT_cntl_init(), FLASH_QR_UT_inc_cntl_init(), FLASH_QR_UT_UD_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(), and FLASH_Ttmm_cntl_init().

Referenced by FLA_Cntl_init().

00036 {
00037   // Level-1 BLAS
00038   FLASH_Axpy_cntl_init();
00039   FLASH_Copy_cntl_init();
00040 
00041   // Level-2 BLAS
00042   FLASH_Gemv_cntl_init();
00043   FLASH_Trsv_cntl_init();
00044 
00045   // Level-3 BLAS
00046   // Note gemm must be first since it is used by all other level-3 BLAS.
00047   FLASH_Gemm_cntl_init();
00048   FLASH_Hemm_cntl_init();
00049   FLASH_Herk_cntl_init();
00050   FLASH_Her2k_cntl_init();
00051   FLASH_Symm_cntl_init();
00052   FLASH_Syrk_cntl_init();
00053   FLASH_Syr2k_cntl_init();
00054   FLASH_Trmm_cntl_init();
00055   FLASH_Trsm_cntl_init();
00056 
00057   // LAPACK-level
00058   // These require level-3 BLAS operations to be initialized.
00059   FLASH_Chol_cntl_init();
00060   FLASH_LU_nopiv_cntl_init();
00061   FLASH_Trinv_cntl_init();
00062   FLASH_Ttmm_cntl_init();
00063   FLASH_Sylv_cntl_init();
00064   FLASH_QR_UT_cntl_init();
00065   FLASH_QR_UT_UD_cntl_init();
00066   FLASH_Apply_Q_UT_cntl_init();
00067   FLASH_Apply_Q_UT_UD_cntl_init();
00068 
00069   // Compound LAPACK operations
00070   // These require previous LAPACK operations to already be initialized.
00071   FLASH_SPDinv_cntl_init();
00072   FLASH_QR_UT_inc_cntl_init();
00073   FLASH_Apply_Q_UT_inc_cntl_init();
00074 }

void FLASH_Apply_Q_UT_cntl_finalize ( void   ) 

void FLASH_Apply_Q_UT_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_apqut_obj_create().

Referenced by FLA_Cntl_init_flash().

00040 {
00041     // Set blocksize for hierarchical storage.
00042     flash_apqut_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
00043 
00044     // Create a control tree to invoke variant 1.
00045     flash_apqut_cntl_leaf = FLA_Cntl_apqut_obj_create( FLA_HIER,
00046                                                        FLA_SUBPROBLEM, 
00047                                                        NULL,
00048                                                        NULL,
00049                                                        NULL,
00050                                                        NULL,
00051                                                        NULL,
00052                                                        NULL,
00053                                                        NULL,
00054                                                        NULL,
00055                                                        NULL );
00056 
00057     // Create a control tree to invoke variant 2.
00058     flash_apqut_cntl    = FLA_Cntl_apqut_obj_create( FLA_HIER,
00059                                                      FLA_BLOCKED_VARIANT2, 
00060                                                      flash_apqut_var2_bsize,
00061                                                      flash_apqut_cntl_leaf,
00062                                                      NULL,
00063                                                      NULL,
00064                                                      NULL,
00065                                                      NULL,
00066                                                      NULL,
00067                                                      NULL,
00068                                                      NULL );
00069 }

void FLASH_Apply_Q_UT_inc_cntl_finalize ( void   ) 

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().

00042 {
00043     // Set blocksizes for hierarchical storage.
00044     flash_apqutinc_var1_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
00045 
00046     // Create a control tree to invoke variant 1.
00047     flash_apqutinc_cntl = FLA_Cntl_apqutinc_obj_create( FLA_HIER,
00048                                                         FLA_BLOCKED_VARIANT1, 
00049                                                         flash_apqutinc_var1_bsize,
00050                                                         flash_apqut_cntl,
00051                                                         flash_apqutud_cntl );
00052 }

void FLASH_Apply_Q_UT_UD_cntl_finalize ( void   ) 

void FLASH_Apply_Q_UT_UD_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_apqutud_obj_create().

Referenced by FLA_Cntl_init_flash().

00042 {
00043     // Set blocksizes for hierarchical storage.
00044     flash_apqutud_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
00045     flash_apqutud_var3_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
00046 
00047     // Create a control tree to invoke variant 1.
00048     flash_apqutud_cntl_leaf = FLA_Cntl_apqutud_obj_create( FLA_HIER,
00049                                                            FLA_SUBPROBLEM, 
00050                                                            NULL,
00051                                                            NULL,
00052                                                            NULL,
00053                                                            NULL,
00054                                                            NULL,
00055                                                            NULL,
00056                                                            NULL );
00057 
00058     // Create a control tree to invoke variant 2.
00059     flash_apqutud_cntl_mid  = FLA_Cntl_apqutud_obj_create( FLA_HIER,
00060                                                            FLA_BLOCKED_VARIANT2, 
00061                                                            flash_apqutud_var2_bsize,
00062                                                            flash_apqutud_cntl_leaf,
00063                                                            NULL,
00064                                                            NULL,
00065                                                            NULL,
00066                                                            NULL,
00067                                                            NULL );
00068 
00069     // Create a control tree to invoke variant 3.
00070     flash_apqutud_cntl      = FLA_Cntl_apqutud_obj_create( FLA_HIER,
00071                                                            FLA_BLOCKED_VARIANT3, 
00072                                                            flash_apqutud_var3_bsize,
00073                                                            flash_apqutud_cntl_mid,
00074                                                            NULL,
00075                                                            NULL,
00076                                                            NULL,
00077                                                            NULL,
00078                                                            NULL );
00079 }

void FLASH_Axpy_cntl_finalize ( void   ) 

void FLASH_Axpy_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_axpy_obj_create().

Referenced by FLA_Cntl_init_flash().

00041 {
00042     // Set blocksize for hierarchical storage.
00043     flash_axpy_bsize     = FLA_Blocksize_create( 1, 1, 1, 1 );
00044 
00045     // Create a control tree that assumes A and B are small.
00046     flash_axpy_cntl_blas = FLA_Cntl_axpy_obj_create( FLA_HIER,
00047                                                      FLA_SUBPROBLEM,
00048                                                      NULL,
00049                                                      NULL );
00050 
00051     // Create a control tree that marches through A and B vertically.
00052     flash_axpy_cntl_tb   = FLA_Cntl_axpy_obj_create( FLA_HIER,
00053                                                      FLA_BLOCKED_VARIANT1,
00054                                                      flash_axpy_bsize,
00055                                                      flash_axpy_cntl_blas );
00056 
00057     // Create a control tree that marches through A and B horizontally, then
00058     // vertically.
00059     flash_axpy_cntl      = FLA_Cntl_axpy_obj_create( FLA_HIER,
00060                                                      FLA_BLOCKED_VARIANT3,
00061                                                      flash_axpy_bsize,
00062                                                      flash_axpy_cntl_tb );
00063 }

void FLASH_Chol_cntl_finalize ( void   ) 

void FLASH_Chol_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_chol_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set blocksize for hierarchical storage.
00046     flash_chol_bsize       = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree that assumes A is a b x b block.
00049     flash_chol_cntl_lapack = FLA_Cntl_chol_obj_create( FLA_HIER,
00050                                                        FLA_SUBPROBLEM,
00051                                                        NULL,
00052                                                        NULL,
00053                                                        NULL,
00054                                                        NULL,
00055                                                        NULL,
00056                                                        NULL );
00057 
00058     // Create a control tree that assumes A is large.
00059     flash_chol_cntl        = FLA_Cntl_chol_obj_create( FLA_HIER,
00060                                                        FLA_BLOCKED_VARIANT3, 
00061                                                        flash_chol_bsize,
00062                                                        flash_chol_cntl_lapack,
00063                                                        flash_syrk_cntl_op,
00064                                                        flash_herk_cntl_op,
00065                                                        flash_trsm_cntl_bp,
00066                                                        NULL );
00067 }

void FLASH_Copy_cntl_finalize ( void   ) 

void FLASH_Copy_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_copy_obj_create().

Referenced by FLA_Cntl_init_flash().

00041 {
00042     // Set blocksize for hierarchical storage.
00043     flash_copy_bsize     = FLA_Blocksize_create( 1, 1, 1, 1 );
00044 
00045     // Create a control tree that assumes A and B are small.
00046     flash_copy_cntl_blas = FLA_Cntl_copy_obj_create( FLA_HIER,
00047                                                      FLA_SUBPROBLEM,
00048                                                      NULL,
00049                                                      NULL );
00050 
00051     // Create a control tree that marches through A and B vertically.
00052     flash_copy_cntl_tb   = FLA_Cntl_copy_obj_create( FLA_HIER,
00053                                                      FLA_BLOCKED_VARIANT1,
00054                                                      flash_copy_bsize,
00055                                                      flash_copy_cntl_blas );
00056 
00057     // Create a control tree that marches through A and B horizontally, then
00058     // vertically.
00059     flash_copy_cntl      = FLA_Cntl_copy_obj_create( FLA_HIER,
00060                                                      FLA_BLOCKED_VARIANT3,
00061                                                      flash_copy_bsize,
00062                                                      flash_copy_cntl_tb );
00063 }

void FLASH_Gemm_cntl_finalize ( void   ) 

void FLASH_Gemm_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_gemm_obj_create().

Referenced by FLA_Cntl_init_flash().

00051 {
00052     // Set gemm blocksize for hierarchical storage.
00053     flash_gemm_bsize      = FLA_Blocksize_create( 1, 1, 1, 1 );
00054 
00055     // Create a control tree node that executes a gemm subproblem.
00056     flash_gemm_cntl_blas  = FLA_Cntl_gemm_obj_create( FLA_HIER,
00057                                                       FLA_SUBPROBLEM,
00058                                                       NULL,
00059                                                       NULL );
00060 
00061     // Create control trees for situations where one dimension is large.
00062     flash_gemm_cntl_pb_bb = FLA_Cntl_gemm_obj_create( FLA_HIER,
00063                                                       FLA_BLOCKED_VARIANT1,
00064                                                       flash_gemm_bsize,
00065                                                       flash_gemm_cntl_blas );
00066     flash_gemm_cntl_bp_bb = FLA_Cntl_gemm_obj_create( FLA_HIER,
00067                                                       FLA_BLOCKED_VARIANT3,
00068                                                       flash_gemm_bsize,
00069                                                       flash_gemm_cntl_blas );
00070     flash_gemm_cntl_ip_bb = FLA_Cntl_gemm_obj_create( FLA_HIER,
00071                                                       FLA_BLOCKED_VARIANT5,
00072                                                       flash_gemm_bsize,
00073                                                       flash_gemm_cntl_blas );
00074 
00075     // Create control trees for situations where two dimensions are large.
00076     flash_gemm_cntl_mp_ip = FLA_Cntl_gemm_obj_create( FLA_HIER,
00077                                                       FLA_BLOCKED_VARIANT1,
00078                                                       flash_gemm_bsize,
00079                                                       flash_gemm_cntl_ip_bb );
00080     flash_gemm_cntl_op_bp = FLA_Cntl_gemm_obj_create( FLA_HIER,
00081                                                       FLA_BLOCKED_VARIANT1,
00082                                                       flash_gemm_bsize,
00083                                                       flash_gemm_cntl_bp_bb );
00084     flash_gemm_cntl_pm_ip = FLA_Cntl_gemm_obj_create( FLA_HIER,
00085                                                       FLA_BLOCKED_VARIANT3,
00086                                                       flash_gemm_bsize,
00087                                                       flash_gemm_cntl_ip_bb );
00088     flash_gemm_cntl_op_pb = FLA_Cntl_gemm_obj_create( FLA_HIER,
00089                                                       FLA_BLOCKED_VARIANT3,
00090                                                       flash_gemm_bsize,
00091                                                       flash_gemm_cntl_pb_bb );
00092     flash_gemm_cntl_mp_pb = FLA_Cntl_gemm_obj_create( FLA_HIER,
00093                                                       FLA_BLOCKED_VARIANT5,
00094                                                       flash_gemm_bsize,
00095                                                       flash_gemm_cntl_pb_bb );
00096     flash_gemm_cntl_pm_bp = FLA_Cntl_gemm_obj_create( FLA_HIER,
00097                                                       FLA_BLOCKED_VARIANT5,
00098                                                       flash_gemm_bsize,
00099                                                       flash_gemm_cntl_bp_bb );
00100 
00101     // Create control trees for situations where all dimensions are large.
00102     flash_gemm_cntl_mm_pm = FLA_Cntl_gemm_obj_create( FLA_HIER,
00103                                                       FLA_BLOCKED_VARIANT1,
00104                                                       flash_gemm_bsize,
00105                                                       flash_gemm_cntl_pm_ip );
00106     flash_gemm_cntl_mm_mp = FLA_Cntl_gemm_obj_create( FLA_HIER,
00107                                                       FLA_BLOCKED_VARIANT3,
00108                                                       flash_gemm_bsize,
00109                                                       flash_gemm_cntl_mp_ip );
00110     flash_gemm_cntl_mm_op = FLA_Cntl_gemm_obj_create( FLA_HIER,
00111                                                       FLA_BLOCKED_VARIANT5,
00112                                                       flash_gemm_bsize,
00113                                                       flash_gemm_cntl_op_bp );
00114 }

void FLASH_Gemv_cntl_finalize ( void   ) 

void FLASH_Gemv_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_gemv_obj_create().

Referenced by FLA_Cntl_init_flash().

00043 {
00044     // Set gemv blocksize for hierarchical storage.
00045     flash_gemv_bsize       = FLA_Blocksize_create( 1, 1, 1, 1 );
00046 
00047     // Create a control tree node that executes a gemv subproblem.
00048     flash_gemv_cntl_blas   = FLA_Cntl_gemv_obj_create( FLA_HIER,
00049                                                        FLA_SUBPROBLEM,
00050                                                        NULL,
00051                                                        NULL );
00052 
00053     // Create control trees for situations where one dimension is large.
00054     flash_gemv_cntl_cp_bv = FLA_Cntl_gemv_obj_create( FLA_HIER,
00055                                                       FLA_BLOCKED_VARIANT1,
00056                                                       flash_gemv_bsize,
00057                                                       flash_gemv_cntl_blas );
00058     flash_gemv_cntl_rp_bv = FLA_Cntl_gemv_obj_create( FLA_HIER,
00059                                                       FLA_BLOCKED_VARIANT5,
00060                                                       flash_gemv_bsize,
00061                                                       flash_gemv_cntl_blas );
00062 
00063     // Create control trees for situations where both dimensions are large.
00064     flash_gemv_cntl_fm_rp = FLA_Cntl_gemv_obj_create( FLA_HIER,
00065                                                       FLA_BLOCKED_VARIANT1,
00066                                                       flash_gemv_bsize,
00067                                                       flash_gemv_cntl_rp_bv );
00068     flash_gemv_cntl_fm_cp = FLA_Cntl_gemv_obj_create( FLA_HIER,
00069                                                       FLA_BLOCKED_VARIANT5,
00070                                                       flash_gemv_bsize,
00071                                                       flash_gemv_cntl_cp_bv );
00072 }

void FLASH_Hemm_cntl_finalize ( void   ) 

void FLASH_Hemm_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_hemm_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set hemm blocksize for hierarchical storage.
00046     flash_hemm_bsize      = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree that assumes A and B are b x b blocks.
00049     flash_hemm_cntl_blas  = FLA_Cntl_hemm_obj_create( FLA_HIER, 
00050                                                       FLA_SUBPROBLEM,
00051                                                       NULL,
00052                                                       NULL,
00053                                                       NULL,
00054                                                       NULL );
00055 
00056     // Create a control tree that assumes A is a block and B is a panel.
00057     flash_hemm_cntl_bp    = FLA_Cntl_hemm_obj_create( FLA_HIER,
00058                                                       FLA_BLOCKED_VARIANT9,
00059                                                       flash_hemm_bsize,
00060                                                       flash_hemm_cntl_blas,
00061                                                       NULL,
00062                                                       NULL );
00063 
00064     // Create a control tree that assumes A is large and B is a panel.
00065     flash_hemm_cntl_mp    = FLA_Cntl_hemm_obj_create( FLA_HIER,
00066                                                       FLA_BLOCKED_VARIANT4,
00067                                                       flash_hemm_bsize,
00068                                                       flash_hemm_cntl_blas,
00069                                                       flash_gemm_cntl_op_bp,
00070                                                       flash_gemm_cntl_op_bp );
00071 
00072     // Create a control tree that assumes A and B are both large.
00073     flash_hemm_cntl_mm    = FLA_Cntl_hemm_obj_create( FLA_HIER,
00074                                                       FLA_BLOCKED_VARIANT9,
00075                                                       flash_hemm_bsize,
00076                                                       flash_hemm_cntl_mp,
00077                                                       NULL,
00078                                                       NULL );
00079 }

void FLASH_Her2k_cntl_finalize ( void   ) 

void FLASH_Her2k_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_her2k_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set her2k blocksize for hierarchical storage.
00046     flash_her2k_bsize      = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree that assumes A and B are b x b blocks.
00049     flash_her2k_cntl_blas  = FLA_Cntl_her2k_obj_create( FLA_HIER,
00050                                                         FLA_SUBPROBLEM,
00051                                                         NULL,
00052                                                         NULL,
00053                                                         NULL,
00054                                                         NULL );
00055  
00056     // Create a control tree that assumes A and B form an inner panel product.
00057     flash_her2k_cntl_ip    = FLA_Cntl_her2k_obj_create( FLA_HIER,
00058                                                         FLA_BLOCKED_VARIANT9,
00059                                                         flash_her2k_bsize,
00060                                                         flash_her2k_cntl_blas,
00061                                                         NULL,
00062                                                         NULL );
00063 
00064     // Create a control tree that assumes A and B form an outer panel product.
00065     flash_her2k_cntl_op    = FLA_Cntl_her2k_obj_create( FLA_HIER,
00066                                                         FLA_BLOCKED_VARIANT4,
00067                                                         flash_her2k_bsize,
00068                                                         flash_her2k_cntl_blas,
00069                                                         flash_gemm_cntl_pb_bb,
00070                                                         flash_gemm_cntl_pb_bb );
00071 
00072     // Create a control tree that assumes A and B are both large.
00073     flash_her2k_cntl_sq    = FLA_Cntl_her2k_obj_create( FLA_HIER,
00074                                                         FLA_BLOCKED_VARIANT9,
00075                                                         flash_her2k_bsize,
00076                                                         flash_her2k_cntl_op,
00077                                                         NULL,
00078                                                         NULL );
00079 }

void FLASH_Herk_cntl_finalize ( void   ) 

void FLASH_Herk_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_herk_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set herk blocksize for hierarchical storage.
00046     flash_herk_bsize      = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree that assumes A is a b x b block.
00049     flash_herk_cntl_blas  = FLA_Cntl_herk_obj_create( FLA_HIER,
00050                                                       FLA_SUBPROBLEM,
00051                                                       NULL,
00052                                                       NULL,
00053                                                       NULL );
00054 
00055     // Create a control tree that assumes A * A' forms an inner panel product.
00056     flash_herk_cntl_ip    = FLA_Cntl_herk_obj_create( FLA_HIER,
00057                                                       FLA_BLOCKED_VARIANT5,
00058                                                       flash_herk_bsize,
00059                                                       flash_herk_cntl_blas,
00060                                                       NULL );
00061 
00062     // Create a control tree that assumes A * A' forms an outer panel product.
00063     flash_herk_cntl_op    = FLA_Cntl_herk_obj_create( FLA_HIER,
00064                                                       FLA_BLOCKED_VARIANT2,
00065                                                       flash_herk_bsize,
00066                                                       flash_herk_cntl_blas,
00067                                                       flash_gemm_cntl_pb_bb );
00068 
00069     // Create a control tree that assumes A is large.
00070     flash_herk_cntl_sq    = FLA_Cntl_herk_obj_create( FLA_HIER,
00071                                                       FLA_BLOCKED_VARIANT5,
00072                                                       flash_herk_bsize,
00073                                                       flash_herk_cntl_op,
00074                                                       NULL );
00075 }

void FLASH_Hess_cntl_finalize ( void   ) 

void FLASH_Hess_cntl_init ( void   ) 

void FLASH_LQ_cntl_finalize ( void   ) 

void FLASH_LQ_cntl_init ( void   ) 

void FLASH_LQ_UT_cntl_finalize ( void   ) 

void FLASH_LQ_UT_cntl_init ( void   ) 

void FLASH_LU_nopiv_cntl_finalize ( void   ) 

void FLASH_LU_nopiv_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_lu_obj_create().

Referenced by FLA_Cntl_init_flash().

00043 {
00044     // Set blocksize for hierarchical storage.
00045     flash_lu_nopiv_bsize       = FLA_Blocksize_create( 1, 1, 1, 1 );
00046 
00047     // Create a control tree that assumes A is a b x b block.
00048     flash_lu_nopiv_cntl_lapack = FLA_Cntl_lu_obj_create( FLA_HIER,
00049                                                          FLA_SUBPROBLEM,
00050                                                          NULL,
00051                                                          NULL,
00052                                                          NULL,
00053                                                          NULL,
00054                                                          NULL,
00055                                                          NULL,
00056                                                          NULL );
00057 
00058     // Create a control tree that assumes A is large.
00059     flash_lu_nopiv_cntl        = FLA_Cntl_lu_obj_create( FLA_HIER,
00060                                                          FLA_BLOCKED_VARIANT5,
00061                                                          flash_lu_nopiv_bsize,
00062                                                          flash_lu_nopiv_cntl_lapack,
00063                                                          flash_gemm_cntl_op_bp,
00064                                                          NULL,
00065                                                          NULL,
00066                                                          flash_trsm_cntl_bp,
00067                                                          flash_trsm_cntl_bp );
00068 }

void FLASH_QR_UT_cntl_finalize ( void   ) 

References FLA_Cntl_obj_free().

Referenced by FLA_Cntl_finalize_flash().

00058 {
00059     FLA_Cntl_obj_free( flash_qrut_cntl_leaf );
00060 }

void FLASH_QR_UT_cntl_init ( void   ) 

References FLA_Cntl_qrut_obj_create().

Referenced by FLA_Cntl_init_flash().

00039 {
00040     // Create a control tree to compute the subproblem.
00041     flash_qrut_cntl_leaf = FLA_Cntl_qrut_obj_create( FLA_HIER,
00042                                                      FLA_SUBPROBLEM, 
00043                                                      NULL,
00044                                                      NULL,
00045                                                      NULL,
00046                                                      NULL,
00047                                                      NULL,
00048                                                      NULL,
00049                                                      NULL,
00050                                                      NULL,
00051                                                      NULL );
00052 
00053     // Alias the leaf control tree.
00054     flash_qrut_cntl = flash_qrut_cntl_leaf;
00055 }

void FLASH_QR_UT_inc_cntl_finalize ( void   ) 

void FLASH_QR_UT_inc_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_qrutinc_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set blocksizes for hierarchical storage.
00046     flash_qrutinc_var1_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree to invoke variant 1.
00049     flash_qrutinc_cntl = FLA_Cntl_qrutinc_obj_create( FLA_HIER,
00050                                                       FLA_BLOCKED_VARIANT1, 
00051                                                       flash_qrutinc_var1_bsize,
00052                                                       flash_qrut_cntl,
00053                                                       flash_apqut_cntl,
00054                                                       flash_qrutud_cntl,
00055                                                       flash_apqutud_cntl );
00056 }

void FLASH_QR_UT_UD_cntl_finalize ( void   ) 

void FLASH_QR_UT_UD_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_qrutud_obj_create().

Referenced by FLA_Cntl_init_flash().

00040 {
00041     // Set blocksize for hierarchical storage.
00042     flash_qrutud_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 );
00043 
00044     // Create a control tree to invoke variant 1.
00045     flash_qrutud_cntl_leaf = FLA_Cntl_qrutud_obj_create( FLA_HIER,
00046                                                          FLA_SUBPROBLEM, 
00047                                                          NULL,
00048                                                          NULL,
00049                                                          NULL,
00050                                                          NULL,
00051                                                          NULL,
00052                                                          NULL,
00053                                                          NULL );
00054 
00055     // Create a control tree to invoke variant 2.
00056     flash_qrutud_cntl    = FLA_Cntl_qrutud_obj_create( FLA_HIER,
00057                                                        FLA_BLOCKED_VARIANT2, 
00058                                                        flash_qrutud_var2_bsize,
00059                                                        flash_qrutud_cntl_leaf,
00060                                                        NULL,
00061                                                        NULL,
00062                                                        NULL,
00063                                                        NULL,
00064                                                        NULL );
00065 }

void FLASH_SPDinv_cntl_finalize ( void   ) 

void FLASH_SPDinv_cntl_init ( void   ) 

References FLA_Cntl_spdinv_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flash().

00043 {
00044     // Rather than embed a blocksize, we store the cutoff matrix size for
00045     // switching from external routines to internal FLAME variants.
00046     flash_spdinv_size_cutoff = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00047 
00048     // Initialize a control tree node that calls the top-level Cholesky
00049     // factorization, Trinagular inversion, and Triangular-transpose matrix
00050     // multiply control trees. 
00051     flash_spdinv_cntl        = FLA_Cntl_spdinv_obj_create( FLA_HIER,
00052                                                            FLA_BLOCKED_VARIANT1, 
00053                                                            flash_spdinv_size_cutoff,
00054                                                            flash_chol_cntl,
00055                                                            flash_trinv_cntl,
00056                                                            flash_ttmm_cntl );
00057 }

void FLASH_Sylv_cntl_finalize ( void   ) 

void FLASH_Sylv_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_sylv_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set blocksize for hierarchical storage.
00046     flash_sylv_bsize       = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree that assumes A and B are b x b blocks.
00049     flash_sylv_cntl_lapack = FLA_Cntl_sylv_obj_create( FLA_HIER,
00050                                                        FLA_SUBPROBLEM,
00051                                                        NULL,
00052                                                        NULL,
00053                                                        NULL,
00054                                                        NULL,
00055                                                        NULL,
00056                                                        NULL,
00057                                                        NULL,
00058                                                        NULL,
00059                                                        NULL,
00060                                                        NULL,
00061                                                        NULL,
00062                                                        NULL );
00063 
00064     // Create a control tree that assumes A is a matrix and B is a block.
00065     flash_sylv_cntl_mb     = FLA_Cntl_sylv_obj_create( FLA_HIER, 
00066                                                        FLA_BLOCKED_VARIANT17,
00067                                                        flash_sylv_bsize,
00068                                                        flash_sylv_cntl_lapack,
00069                                                        NULL,
00070                                                        NULL,
00071                                                        flash_gemm_cntl_ip_bb,
00072                                                        NULL,
00073                                                        NULL,
00074                                                        NULL,
00075                                                        NULL,
00076                                                        NULL,
00077                                                        NULL,
00078                                                        NULL );
00079 
00080     // Create a control tree that assumes A is a matrix and B is a matrix.
00081     flash_sylv_cntl        = FLA_Cntl_sylv_obj_create( FLA_HIER, 
00082                                                        FLA_BLOCKED_VARIANT15,
00083                                                        flash_sylv_bsize,
00084                                                        flash_sylv_cntl_mb,
00085                                                        NULL,
00086                                                        NULL,
00087                                                        flash_gemm_cntl_pm_bp,
00088                                                        NULL,
00089                                                        NULL,
00090                                                        NULL,
00091                                                        NULL,
00092                                                        NULL,
00093                                                        NULL,
00094                                                        NULL );
00095 }

void FLASH_Symm_cntl_finalize ( void   ) 

void FLASH_Symm_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_symm_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set symm blocksize for hierarchical storage.
00046     flash_symm_bsize      = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree that assumes A and B are b x b blocks.
00049     flash_symm_cntl_blas  = FLA_Cntl_symm_obj_create( FLA_HIER,
00050                                                       FLA_SUBPROBLEM,
00051                                                       NULL,
00052                                                       NULL,
00053                                                       NULL,
00054                                                       NULL );
00055 
00056     // Create a control tree that assumes A is a block and B is a panel.
00057     flash_symm_cntl_bp    = FLA_Cntl_symm_obj_create( FLA_HIER,
00058                                                       FLA_BLOCKED_VARIANT9,
00059                                                       flash_symm_bsize,
00060                                                       flash_symm_cntl_blas,
00061                                                       NULL,
00062                                                       NULL );
00063 
00064     // Create a control tree that assumes A is large and B is a panel.
00065     flash_symm_cntl_mp    = FLA_Cntl_symm_obj_create( FLA_HIER,
00066                                                       FLA_BLOCKED_VARIANT4,
00067                                                       flash_symm_bsize,
00068                                                       flash_symm_cntl_blas,
00069                                                       flash_gemm_cntl_op_bp,
00070                                                       flash_gemm_cntl_op_bp );
00071 
00072     // Create a control tree that assumes A and B are both large.
00073     flash_symm_cntl_mm    = FLA_Cntl_symm_obj_create( FLA_HIER,
00074                                                       FLA_BLOCKED_VARIANT9,
00075                                                       flash_symm_bsize,
00076                                                       flash_symm_cntl_mp,
00077                                                       NULL,
00078                                                       NULL );
00079 }

void FLASH_Syr2k_cntl_finalize ( void   ) 

void FLASH_Syr2k_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_syr2k_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set syr2k blocksize for hierarchical storage.
00046     flash_syr2k_bsize      = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree that assumes A and B are b x b blocks.
00049     flash_syr2k_cntl_blas  = FLA_Cntl_syr2k_obj_create( FLA_HIER,
00050                                                         FLA_SUBPROBLEM,
00051                                                         NULL,
00052                                                         NULL,
00053                                                         NULL,
00054                                                         NULL );
00055 
00056     // Create a control tree that assumes A and B form an inner panel product.
00057     flash_syr2k_cntl_ip    = FLA_Cntl_syr2k_obj_create( FLA_HIER,
00058                                                         FLA_BLOCKED_VARIANT9,
00059                                                         flash_syr2k_bsize,
00060                                                         flash_syr2k_cntl_blas,
00061                                                         NULL,
00062                                                         NULL );
00063 
00064     // Create a control tree that assumes A and B form an outer panel product.
00065     flash_syr2k_cntl_op    = FLA_Cntl_syr2k_obj_create( FLA_HIER,
00066                                                         FLA_BLOCKED_VARIANT4,
00067                                                         flash_syr2k_bsize,
00068                                                         flash_syr2k_cntl_blas,
00069                                                         flash_gemm_cntl_pb_bb,
00070                                                         flash_gemm_cntl_pb_bb );
00071 
00072     // Create a control tree that assumes A and B are both large.
00073     flash_syr2k_cntl_sq    = FLA_Cntl_syr2k_obj_create( FLA_HIER,
00074                                                         FLA_BLOCKED_VARIANT9,
00075                                                         flash_syr2k_bsize,
00076                                                         flash_syr2k_cntl_op,
00077                                                         NULL,
00078                                                         NULL );
00079 }

void FLASH_Syrk_cntl_finalize ( void   ) 

void FLASH_Syrk_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_syrk_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set syrk blocksize for hierarchical storage.
00046     flash_syrk_bsize      = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree that assumes A is a b x b block.
00049     flash_syrk_cntl_blas  = FLA_Cntl_syrk_obj_create( FLA_HIER,
00050                                                       FLA_SUBPROBLEM,
00051                                                       NULL,
00052                                                       NULL,
00053                                                       NULL );
00054 
00055     // Create a control tree that assumes A * A' forms an inner panel product.
00056     flash_syrk_cntl_ip    = FLA_Cntl_syrk_obj_create( FLA_HIER,
00057                                                       FLA_BLOCKED_VARIANT5,
00058                                                       flash_syrk_bsize,
00059                                                       flash_syrk_cntl_blas,
00060                                                       NULL );
00061 
00062     // Create a control tree that assumes A * A' forms an outer panel product.
00063     flash_syrk_cntl_op    = FLA_Cntl_syrk_obj_create( FLA_HIER,
00064                                                       FLA_BLOCKED_VARIANT2,
00065                                                       flash_syrk_bsize,
00066                                                       flash_syrk_cntl_blas,
00067                                                       flash_gemm_cntl_pb_bb );
00068 
00069     // Create a control tree that assumes A is large.
00070     flash_syrk_cntl_sq    = FLA_Cntl_syrk_obj_create( FLA_HIER,
00071                                                       FLA_BLOCKED_VARIANT5,
00072                                                       flash_syrk_bsize,
00073                                                       flash_syrk_cntl_op,
00074                                                       NULL );
00075 }

void FLASH_Transpose_cntl_finalize ( void   ) 

void FLASH_Transpose_cntl_init ( void   ) 

void FLASH_Trinv_cntl_finalize ( void   ) 

void FLASH_Trinv_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_trinv_obj_create().

Referenced by FLA_Cntl_init_flash().

00043 {
00044     // Set blocksize for hierarchical storage.
00045     flash_trinv_bsize       = FLA_Blocksize_create( 1, 1, 1, 1 );
00046 
00047     // Create a control tree that assumes A is a b x b block.
00048     flash_trinv_cntl_lapack = FLA_Cntl_trinv_obj_create( FLA_HIER,
00049                                                          FLA_SUBPROBLEM,
00050                                                          NULL,
00051                                                          NULL,
00052                                                          NULL,
00053                                                          NULL,
00054                                                          NULL,
00055                                                          NULL );
00056 
00057     // Create a control tree that assumes A is large.
00058     flash_trinv_cntl        = FLA_Cntl_trinv_obj_create( FLA_HIER,
00059                                                          FLA_BLOCKED_VARIANT3, 
00060                                                          flash_trinv_bsize,
00061                                                          flash_trinv_cntl_lapack,
00062                                                          NULL,
00063                                                          flash_trsm_cntl_bp,
00064                                                          flash_trsm_cntl_bp,
00065                                                          flash_gemm_cntl_op_bp );
00066 }

void FLASH_Trmm_cntl_finalize ( void   ) 

void FLASH_Trmm_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_trmm_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set trmm blocksize for hierarchical storage.
00046     flash_trmm_bsize      = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree that assumes A and B are b x b blocks.
00049     flash_trmm_cntl_blas  = FLA_Cntl_trmm_obj_create( FLA_HIER,
00050                                                       FLA_SUBPROBLEM,
00051                                                       NULL,
00052                                                       NULL,
00053                                                       NULL );
00054 
00055     // Create a control tree that assumes A is a block and B is a panel.
00056     flash_trmm_cntl_bp    = FLA_Cntl_trmm_obj_create( FLA_HIER,
00057                                                       FLA_BLOCKED_VARIANT3,
00058                                                       flash_trmm_bsize,
00059                                                       flash_trmm_cntl_blas,
00060                                                       NULL );
00061 
00062     // Create a control tree that assumes A is large and B is a panel.
00063     flash_trmm_cntl_mp    = FLA_Cntl_trmm_obj_create( FLA_HIER,
00064                                                       FLA_BLOCKED_VARIANT2,
00065                                                       flash_trmm_bsize,
00066                                                       flash_trmm_cntl_blas,
00067                                                       flash_gemm_cntl_op_bp );
00068 
00069     // Create a control tree that assumes A and B are both large.
00070     flash_trmm_cntl_mm    = FLA_Cntl_trmm_obj_create( FLA_HIER,
00071                                                       FLA_BLOCKED_VARIANT3,
00072                                                       flash_trmm_bsize,
00073                                                       flash_trmm_cntl_mp,
00074                                                       NULL );
00075 }

void FLASH_Trsm_cntl_finalize ( void   ) 

void FLASH_Trsm_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_trsm_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set trsm blocksize for hierarchical storage.
00046     flash_trsm_bsize      = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree that assumes A and B are b x b blocks.
00049     flash_trsm_cntl_blas  = FLA_Cntl_trsm_obj_create( FLA_HIER,
00050                                                       FLA_SUBPROBLEM,
00051                                                       NULL,
00052                                                       NULL,
00053                                                       NULL );
00054 
00055     // Create a control tree that assumes A is a block and B is a panel.
00056     flash_trsm_cntl_bp    = FLA_Cntl_trsm_obj_create( FLA_HIER,
00057                                                       FLA_BLOCKED_VARIANT3,
00058                                                       flash_trsm_bsize,
00059                                                       flash_trsm_cntl_blas,
00060                                                       NULL );
00061 
00062     // Create a control tree that assumes A is large and B is a panel.
00063     flash_trsm_cntl_mp    = FLA_Cntl_trsm_obj_create( FLA_HIER,
00064                                                       FLA_BLOCKED_VARIANT2,
00065                                                       flash_trsm_bsize,
00066                                                       flash_trsm_cntl_blas,
00067                                                       flash_gemm_cntl_op_bp );
00068 
00069     // Create a control tree that assumes A and B are both large.
00070     flash_trsm_cntl_mm    = FLA_Cntl_trsm_obj_create( FLA_HIER,
00071                                                       FLA_BLOCKED_VARIANT3,
00072                                                       flash_trsm_bsize,
00073                                                       flash_trsm_cntl_mp,
00074                                                       NULL );
00075 }

void FLASH_Trsv_cntl_finalize ( void   ) 

void FLASH_Trsv_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_trsv_obj_create().

Referenced by FLA_Cntl_init_flash().

00042 {
00043     // Set trsv blocksize for hierarchical storage.
00044     flash_trsv_bsize      = FLA_Blocksize_create( 1, 1, 1, 1 );
00045 
00046     // Create a control tree that assumes A is a b x b block.
00047     flash_trsv_cntl_blas  = FLA_Cntl_trsv_obj_create( FLA_HIER,
00048                                                       FLA_SUBPROBLEM,
00049                                                       NULL,
00050                                                       NULL,
00051                                                       NULL );
00052 
00053     // Create a control tree that assumes A is large.
00054     flash_trsv_cntl       = FLA_Cntl_trsv_obj_create( FLA_HIER,
00055                                                       FLA_BLOCKED_VARIANT2,
00056                                                       flash_trsv_bsize,
00057                                                       flash_trsv_cntl_blas,
00058                                                       flash_gemv_cntl_cp_bv );
00059 }

void FLASH_Ttmm_cntl_finalize ( void   ) 

void FLASH_Ttmm_cntl_init ( void   ) 

References FLA_Blocksize_create(), and FLA_Cntl_ttmm_obj_create().

Referenced by FLA_Cntl_init_flash().

00044 {
00045     // Set blocksize for hierarchical storage.
00046     flash_ttmm_bsize       = FLA_Blocksize_create( 1, 1, 1, 1 );
00047 
00048     // Create a control tree that assumes A is a b x b block.
00049     flash_ttmm_cntl_lapack = FLA_Cntl_ttmm_obj_create( FLA_HIER,
00050                                                        FLA_SUBPROBLEM,
00051                                                        NULL,
00052                                                        NULL,
00053                                                        NULL,
00054                                                        NULL,
00055                                                        NULL,
00056                                                        NULL );
00057 
00058     // Create a control tree that assumes A is large.
00059     flash_ttmm_cntl        = FLA_Cntl_ttmm_obj_create( FLA_HIER,
00060                                                        FLA_BLOCKED_VARIANT1, 
00061                                                        flash_ttmm_bsize,
00062                                                        flash_ttmm_cntl_lapack,
00063                                                        flash_syrk_cntl_op,
00064                                                        flash_herk_cntl_op,
00065                                                        flash_trmm_cntl_bp,
00066                                                        NULL );
00067 }


Generated on Mon Jul 6 05:45:51 2009 for libflame by  doxygen 1.5.9