FLA_Cntl_init_flamec.h File Reference

(r)

Go to the source code of this file.

Functions

void FLA_Cntl_init_flamec (void)
void FLA_Cntl_finalize_flamec (void)
void FLA_Transpose_cntl_init (void)
void FLA_Transpose_cntl_finalize (void)
void FLA_Axpy_cntl_init (void)
void FLA_Copy_cntl_init (void)
void FLA_Axpy_cntl_finalize (void)
void FLA_Copy_cntl_finalize (void)
void FLA_Gemv_cntl_init (void)
void FLA_Trsv_cntl_init (void)
void FLA_Gemv_cntl_finalize (void)
void FLA_Trsv_cntl_finalize (void)
void FLA_Gemm_cntl_init (void)
void FLA_Hemm_cntl_init (void)
void FLA_Herk_cntl_init (void)
void FLA_Her2k_cntl_init (void)
void FLA_Symm_cntl_init (void)
void FLA_Syrk_cntl_init (void)
void FLA_Syr2k_cntl_init (void)
void FLA_Trmm_cntl_init (void)
void FLA_Trsm_cntl_init (void)
void FLA_Gemm_cntl_finalize (void)
void FLA_Hemm_cntl_finalize (void)
void FLA_Herk_cntl_finalize (void)
void FLA_Her2k_cntl_finalize (void)
void FLA_Symm_cntl_finalize (void)
void FLA_Syrk_cntl_finalize (void)
void FLA_Syr2k_cntl_finalize (void)
void FLA_Trmm_cntl_finalize (void)
void FLA_Trsm_cntl_finalize (void)
void FLA_Chol_cntl_init (void)
void FLA_LU_piv_cntl_init (void)
void FLA_LU_nopiv_cntl_init (void)
void FLA_QR_UT_cntl_init (void)
void FLA_QR_UT_UD_cntl_init (void)
void FLA_LQ_UT_cntl_init (void)
void FLA_Trinv_cntl_init (void)
void FLA_Hess_cntl_init (void)
void FLA_Ttmm_cntl_init (void)
void FLA_Sylv_cntl_init (void)
void FLA_SPDinv_cntl_init (void)
void FLA_Apply_Q_UT_cntl_init (void)
void FLA_Apply_Q_UT_UD_cntl_init (void)
void FLA_Chol_cntl_finalize (void)
void FLA_LU_piv_cntl_finalize (void)
void FLA_LU_nopiv_cntl_finalize (void)
void FLA_QR_UT_cntl_finalize (void)
void FLA_QR_UT_UD_cntl_finalize (void)
void FLA_LQ_UT_cntl_finalize (void)
void FLA_Trinv_cntl_finalize (void)
void FLA_Hess_cntl_finalize (void)
void FLA_Ttmm_cntl_finalize (void)
void FLA_Sylv_cntl_finalize (void)
void FLA_SPDinv_cntl_finalize (void)
void FLA_Apply_Q_UT_cntl_finalize (void)
void FLA_Apply_Q_UT_UD_cntl_finalize (void)


Function Documentation

void FLA_Apply_Q_UT_cntl_finalize ( void   ) 

void FLA_Apply_Q_UT_cntl_init ( void   ) 

References FLA_Blocksize_scale(), FLA_Cntl_apqut_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00047 {
00048     // Set the outer blocksize to the default value for conventional storage,
00049     // and the inner blocksize to the same value but scaled down.
00050     fla_apqut_var2_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00051     fla_apqut_var1_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00052     FLA_Blocksize_scale( fla_apqut_var1_bsize, FLA_QR_INNER_TO_OUTER_B_RATIO );
00053 
00054     // Create a control tree to invoke variant 1.
00055     fla_apqut_cntl_leaf = FLA_Cntl_apqut_obj_create( FLA_FLAT,
00056                                                      FLA_BLOCKED_VARIANT1, 
00057                                                      fla_apqut_var1_bsize,
00058                                                      NULL,
00059                                                      fla_trmm_cntl_blas,
00060                                                      fla_trmm_cntl_blas,
00061                                                      fla_gemm_cntl_blas,
00062                                                      fla_gemm_cntl_blas,
00063                                                      fla_trsm_cntl_blas,
00064                                                      fla_copy_cntl_blas,
00065                                                      fla_axpy_cntl_blas );
00066 /*
00067     // Create a control tree to invoke variant 2.
00068     fla_apqut_cntl      = FLA_Cntl_apqut_obj_create( FLA_FLAT,
00069                                                      FLA_BLOCKED_VARIANT2, 
00070                                                      fla_apqut_var2_bsize,
00071                                                      fla_apqut_cntl_leaf,
00072                                                      NULL,
00073                                                      NULL,
00074                                                      NULL,
00075                                                      NULL,
00076                                                      NULL,
00077                                                      NULL,
00078                                                      NULL );
00079 */
00080 }

void FLA_Apply_Q_UT_UD_cntl_finalize ( void   ) 

void FLA_Apply_Q_UT_UD_cntl_init ( void   ) 

References FLA_Blocksize_scale(), FLA_Cntl_apqutud_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00044 {
00045     // Set the blocksize to the default value for conventional storage,
00046     // but scaled down.
00047     fla_apqutud_var1_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00048     FLA_Blocksize_scale( fla_apqutud_var1_bsize, FLA_QR_INNER_TO_OUTER_B_RATIO );
00049 
00050     // Create a control tree to invoke variant 1.
00051     fla_apqutud_cntl_leaf = FLA_Cntl_apqutud_obj_create( FLA_FLAT,
00052                                                          FLA_BLOCKED_VARIANT1, 
00053                                                          fla_apqutud_var1_bsize,
00054                                                          NULL,
00055                                                          fla_gemm_cntl_blas,
00056                                                          fla_gemm_cntl_blas,
00057                                                          fla_trsm_cntl_blas,
00058                                                          fla_copy_cntl_blas,
00059                                                          fla_axpy_cntl_blas );
00060 }

void FLA_Axpy_cntl_finalize ( void   ) 

References FLA_Cntl_obj_free().

Referenced by FLA_Cntl_finalize_flamec().

00047 {
00048     FLA_Cntl_obj_free( fla_axpy_cntl_blas );
00049 }

void FLA_Axpy_cntl_init ( void   ) 

References FLA_Cntl_axpy_obj_create().

Referenced by FLA_Cntl_init_flamec().

00038 {
00039     // Create a control tree that assumes A and B are small.
00040     fla_axpy_cntl_blas  = FLA_Cntl_axpy_obj_create( FLA_FLAT,
00041                                                     FLA_SUBPROBLEM,
00042                                                     NULL,
00043                                                     NULL );
00044 }

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

00049 {
00050     // Set blocksize with default values for conventional storage.
00051     fla_chol_var3_bsize  = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00052     fla_chol_var3_bsize_in = FLA_Blocksize_create_copy( fla_chol_var3_bsize );
00053     FLA_Blocksize_scale( fla_chol_var3_bsize_in, fla_chol_var3_in_to_ou_bsize_ratio );
00054 
00055     // Create a control tree to invoke LAPACK.
00056     fla_chol_cntl_lapack = FLA_Cntl_chol_obj_create( FLA_FLAT, FLA_SUBPROBLEM, NULL, NULL, NULL, NULL, NULL, NULL );
00057 
00058     // Create a control tree for small subproblems.
00059     fla_chol_cntl_in     = FLA_Cntl_chol_obj_create( FLA_FLAT,
00060                                                      FLA_BLOCKED_VARIANT3, 
00061                                                      fla_chol_var3_bsize_in,
00062                                                      fla_chol_cntl_lapack,
00063                                                      fla_syrk_cntl_blas,
00064                                                      fla_herk_cntl_blas,
00065                                                      fla_trsm_cntl_blas,
00066                                                      NULL );
00067 
00068     // Create a control tree for larger problems with one level of recursion.
00069     fla_chol_cntl2       = FLA_Cntl_chol_obj_create( FLA_FLAT,
00070                                                      FLA_BLOCKED_VARIANT3, 
00071                                                      fla_chol_var3_bsize,
00072                                                      fla_chol_cntl_in,
00073                                                      fla_syrk_cntl_blas,
00074                                                      fla_herk_cntl_blas,
00075                                                      fla_trsm_cntl_blas,
00076                                                      NULL );
00077 
00078     // Create a control tree for large problems with no extra recursion.
00079     fla_chol_cntl        = FLA_Cntl_chol_obj_create( FLA_FLAT,
00080                                                      FLA_BLOCKED_VARIANT3, 
00081                                                      fla_chol_var3_bsize,
00082                                                      fla_chol_cntl_lapack,
00083                                                      fla_syrk_cntl_blas,
00084                                                      fla_herk_cntl_blas,
00085                                                      fla_trsm_cntl_blas,
00086                                                      NULL );
00087 }

void FLA_Cntl_finalize_flamec ( void   ) 

References FLA_Apply_Q_UT_cntl_finalize(), FLA_Apply_Q_UT_UD_cntl_finalize(), FLA_Axpy_cntl_finalize(), FLA_Chol_cntl_finalize(), FLA_Copy_cntl_finalize(), FLA_Gemm_cntl_finalize(), FLA_Gemv_cntl_finalize(), FLA_Hemm_cntl_finalize(), FLA_Her2k_cntl_finalize(), FLA_Herk_cntl_finalize(), FLA_Hess_cntl_finalize(), FLA_LQ_UT_cntl_finalize(), FLA_LU_nopiv_cntl_finalize(), FLA_LU_piv_cntl_finalize(), FLA_QR_UT_cntl_finalize(), FLA_QR_UT_UD_cntl_finalize(), FLA_SPDinv_cntl_finalize(), FLA_Sylv_cntl_finalize(), FLA_Symm_cntl_finalize(), FLA_Syr2k_cntl_finalize(), FLA_Syrk_cntl_finalize(), FLA_Transpose_cntl_finalize(), FLA_Trinv_cntl_finalize(), FLA_Trmm_cntl_finalize(), FLA_Trsm_cntl_finalize(), FLA_Trsv_cntl_finalize(), and FLA_Ttmm_cntl_finalize().

Referenced by FLA_Cntl_finalize().

void FLA_Cntl_init_flamec ( void   ) 

References FLA_Apply_Q_UT_cntl_init(), FLA_Apply_Q_UT_UD_cntl_init(), FLA_Axpy_cntl_init(), FLA_Chol_cntl_init(), FLA_Copy_cntl_init(), FLA_Gemm_cntl_init(), FLA_Gemv_cntl_init(), FLA_Hemm_cntl_init(), FLA_Her2k_cntl_init(), FLA_Herk_cntl_init(), FLA_Hess_cntl_init(), FLA_LQ_UT_cntl_init(), FLA_LU_nopiv_cntl_init(), FLA_LU_piv_cntl_init(), FLA_QR_UT_cntl_init(), FLA_QR_UT_UD_cntl_init(), FLA_SPDinv_cntl_init(), FLA_Sylv_cntl_init(), FLA_Symm_cntl_init(), FLA_Syr2k_cntl_init(), FLA_Syrk_cntl_init(), FLA_Transpose_cntl_init(), FLA_Trinv_cntl_init(), FLA_Trmm_cntl_init(), FLA_Trsm_cntl_init(), FLA_Trsv_cntl_init(), and FLA_Ttmm_cntl_init().

Referenced by FLA_Cntl_init().

00036 {
00037   FLA_Transpose_cntl_init();
00038 
00039   // Level-1 BLAS
00040   FLA_Axpy_cntl_init();
00041   FLA_Copy_cntl_init();
00042 
00043   // Level-2 BLAS
00044   FLA_Gemv_cntl_init();
00045   FLA_Trsv_cntl_init();
00046 
00047   // Level-3 BLAS
00048   FLA_Gemm_cntl_init();
00049   FLA_Hemm_cntl_init();
00050   FLA_Herk_cntl_init();
00051   FLA_Her2k_cntl_init();
00052   FLA_Symm_cntl_init();
00053   FLA_Syrk_cntl_init();
00054   FLA_Syr2k_cntl_init();
00055   FLA_Trmm_cntl_init();
00056   FLA_Trsm_cntl_init();
00057 
00058   // LAPACK-level
00059   FLA_Chol_cntl_init();
00060   FLA_LU_piv_cntl_init();
00061   FLA_LU_nopiv_cntl_init();
00062   FLA_QR_UT_cntl_init();
00063   FLA_QR_UT_UD_cntl_init();
00064   FLA_LQ_UT_cntl_init();
00065   FLA_Trinv_cntl_init();
00066   FLA_Hess_cntl_init();
00067   FLA_Ttmm_cntl_init();
00068   FLA_Sylv_cntl_init();
00069   FLA_SPDinv_cntl_init();
00070   FLA_Apply_Q_UT_cntl_init();
00071   FLA_Apply_Q_UT_UD_cntl_init();
00072 }

void FLA_Copy_cntl_finalize ( void   ) 

References FLA_Cntl_obj_free().

Referenced by FLA_Cntl_finalize_flamec().

00047 {
00048     FLA_Cntl_obj_free( fla_copy_cntl_blas );
00049 }

void FLA_Copy_cntl_init ( void   ) 

References FLA_Cntl_copy_obj_create().

Referenced by FLA_Cntl_init_flamec().

00038 {
00039     // Create a control tree that assumes A and B are small.
00040     fla_copy_cntl_blas  = FLA_Cntl_copy_obj_create( FLA_FLAT,
00041                                                     FLA_SUBPROBLEM,
00042                                                     NULL,
00043                                                     NULL );
00044 }

void FLA_Gemm_cntl_finalize ( void   ) 

References FLA_Blocksize_free(), and FLA_Cntl_obj_free().

Referenced by FLA_Cntl_finalize_flamec().

void FLA_Gemm_cntl_init ( void   ) 

References FLA_Cntl_gemm_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00069 {
00070     // Set blocksizes with default values for conventional storage.
00071     fla_gemm_var1_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00072     fla_gemm_var3_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00073     fla_gemm_var5_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00074 
00075     // Create a control tree node that executes a gemm subproblem.
00076     fla_gemm_cntl_blas  = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00077                                                     FLA_SUBPROBLEM,
00078                                                     NULL,
00079                                                     NULL );
00080 
00081     // Create control trees for situations where one dimension is large.
00082     fla_gemm_cntl_pb_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00083                                                     FLA_BLOCKED_VARIANT1,
00084                                                     fla_gemm_var1_bsize,
00085                                                     fla_gemm_cntl_blas );
00086     fla_gemm_cntl_bp_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00087                                                     FLA_BLOCKED_VARIANT3,
00088                                                     fla_gemm_var3_bsize,
00089                                                     fla_gemm_cntl_blas );
00090     fla_gemm_cntl_ip_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00091                                                     FLA_BLOCKED_VARIANT5,
00092                                                     fla_gemm_var5_bsize,
00093                                                     fla_gemm_cntl_blas );
00094 
00095     // Create control trees for situations where two dimensions are large.
00096     fla_gemm_cntl_mp_ip    = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00097                                                        FLA_BLOCKED_VARIANT1,
00098                                                        fla_gemm_var1_bsize,
00099                                                        fla_gemm_cntl_blas );
00100     fla_gemm_cntl_mp_ip_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00101                                                        FLA_BLOCKED_VARIANT1,
00102                                                        fla_gemm_var1_bsize,
00103                                                        fla_gemm_cntl_ip_bb );
00104     fla_gemm_cntl_op_bp    = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00105                                                        FLA_BLOCKED_VARIANT1,
00106                                                        fla_gemm_var1_bsize,
00107                                                        fla_gemm_cntl_blas );
00108     fla_gemm_cntl_op_bp_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00109                                                        FLA_BLOCKED_VARIANT1,
00110                                                        fla_gemm_var1_bsize,
00111                                                        fla_gemm_cntl_bp_bb );
00112     fla_gemm_cntl_pm_ip    = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00113                                                        FLA_BLOCKED_VARIANT3,
00114                                                        fla_gemm_var3_bsize,
00115                                                        fla_gemm_cntl_blas );
00116     fla_gemm_cntl_pm_ip_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00117                                                        FLA_BLOCKED_VARIANT3,
00118                                                        fla_gemm_var3_bsize,
00119                                                        fla_gemm_cntl_ip_bb );
00120     fla_gemm_cntl_op_pb    = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00121                                                        FLA_BLOCKED_VARIANT3,
00122                                                        fla_gemm_var3_bsize,
00123                                                        fla_gemm_cntl_blas );
00124     fla_gemm_cntl_op_pb_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00125                                                        FLA_BLOCKED_VARIANT3,
00126                                                        fla_gemm_var3_bsize,
00127                                                        fla_gemm_cntl_pb_bb );
00128     fla_gemm_cntl_mp_pb    = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00129                                                        FLA_BLOCKED_VARIANT5,
00130                                                        fla_gemm_var5_bsize,
00131                                                        fla_gemm_cntl_blas );
00132     fla_gemm_cntl_mp_pb_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00133                                                        FLA_BLOCKED_VARIANT5,
00134                                                        fla_gemm_var5_bsize,
00135                                                        fla_gemm_cntl_pb_bb );
00136     fla_gemm_cntl_pm_bp    = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00137                                                        FLA_BLOCKED_VARIANT5,
00138                                                        fla_gemm_var5_bsize,
00139                                                        fla_gemm_cntl_blas );
00140     fla_gemm_cntl_pm_bp_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00141                                                        FLA_BLOCKED_VARIANT5,
00142                                                        fla_gemm_var5_bsize,
00143                                                        fla_gemm_cntl_bp_bb );
00144 
00145     // Create control trees for situations where all dimensions are large.
00146     fla_gemm_cntl_mm_pm       = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00147                                                           FLA_BLOCKED_VARIANT1,
00148                                                           fla_gemm_var1_bsize,
00149                                                           fla_gemm_cntl_blas );
00150     fla_gemm_cntl_mm_pm_ip    = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00151                                                           FLA_BLOCKED_VARIANT1,
00152                                                           fla_gemm_var1_bsize,
00153                                                           fla_gemm_cntl_pm_ip );
00154     fla_gemm_cntl_mm_pm_ip_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00155                                                           FLA_BLOCKED_VARIANT1,
00156                                                           fla_gemm_var1_bsize,
00157                                                           fla_gemm_cntl_pm_ip_bb );
00158     fla_gemm_cntl_mm_mp       = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00159                                                           FLA_BLOCKED_VARIANT3,
00160                                                           fla_gemm_var3_bsize,
00161                                                           fla_gemm_cntl_blas );
00162     fla_gemm_cntl_mm_mp_ip    = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00163                                                           FLA_BLOCKED_VARIANT3,
00164                                                           fla_gemm_var3_bsize,
00165                                                           fla_gemm_cntl_mp_ip );
00166     fla_gemm_cntl_mm_mp_ip_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00167                                                           FLA_BLOCKED_VARIANT3,
00168                                                           fla_gemm_var3_bsize,
00169                                                           fla_gemm_cntl_mp_ip_bb );
00170     fla_gemm_cntl_mm_op       = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00171                                                           FLA_BLOCKED_VARIANT5,
00172                                                           fla_gemm_var5_bsize,
00173                                                           fla_gemm_cntl_blas );
00174     fla_gemm_cntl_mm_op_bp    = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00175                                                           FLA_BLOCKED_VARIANT5,
00176                                                           fla_gemm_var5_bsize,
00177                                                           fla_gemm_cntl_op_bp );
00178     fla_gemm_cntl_mm_op_bp_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT,
00179                                                           FLA_BLOCKED_VARIANT5,
00180                                                           fla_gemm_var5_bsize,
00181                                                           fla_gemm_cntl_op_bp_bb );
00182 }

void FLA_Gemv_cntl_finalize ( void   ) 

References FLA_Cntl_obj_free().

Referenced by FLA_Cntl_finalize_flamec().

00047 {
00048     FLA_Cntl_obj_free( fla_gemv_cntl_blas );
00049 }

void FLA_Gemv_cntl_init ( void   ) 

References FLA_Cntl_gemv_obj_create().

Referenced by FLA_Cntl_init_flamec().

00038 {
00039     // Create a control tree that assumes A is small.
00040     fla_gemv_cntl_blas  = FLA_Cntl_gemv_obj_create( FLA_FLAT,
00041                                                     FLA_SUBPROBLEM,
00042                                                     NULL,
00043                                                     NULL );
00044 }

void FLA_Hemm_cntl_finalize ( void   ) 

void FLA_Hemm_cntl_init ( void   ) 

References FLA_Cntl_hemm_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00045 {
00046     // Set blocksizes with default values for conventional storage.
00047     fla_hemm_var4_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00048     fla_hemm_var9_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00049 
00050     // Create a control tree that assumes A and B are b x b blocks.
00051     fla_hemm_cntl_blas  = FLA_Cntl_hemm_obj_create( FLA_FLAT, 
00052                                                     FLA_SUBPROBLEM,
00053                                                     NULL,
00054                                                     NULL,
00055                                                     NULL,
00056                                                     NULL );
00057 
00058     // Create a control tree that assumes A is a block and B is a panel.
00059     fla_hemm_cntl_bp    = FLA_Cntl_hemm_obj_create( FLA_FLAT,
00060                                                     FLA_BLOCKED_VARIANT9,
00061                                                     fla_hemm_var9_bsize,
00062                                                     fla_hemm_cntl_blas,
00063                                                     NULL,
00064                                                     NULL );
00065 
00066     // Create a control tree that assumes A is large and B is a panel.
00067     fla_hemm_cntl_mp    = FLA_Cntl_hemm_obj_create( FLA_FLAT,
00068                                                     FLA_BLOCKED_VARIANT4,
00069                                                     fla_hemm_var4_bsize,
00070                                                     fla_hemm_cntl_blas,
00071                                                     fla_gemm_cntl_blas,
00072                                                     fla_gemm_cntl_blas );
00073 
00074     // Create a control tree that assumes A and B are both large.
00075     fla_hemm_cntl_mm    = FLA_Cntl_hemm_obj_create( FLA_FLAT,
00076                                                     FLA_BLOCKED_VARIANT9,
00077                                                     fla_hemm_var9_bsize,
00078                                                     fla_hemm_cntl_mp,
00079                                                     NULL,
00080                                                     NULL );
00081 }

void FLA_Her2k_cntl_finalize ( void   ) 

void FLA_Her2k_cntl_init ( void   ) 

References FLA_Cntl_her2k_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00045 {
00046     // Set blocksizes with default values for conventional storage.
00047     fla_her2k_var3_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00048     fla_her2k_var9_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00049 
00050     // Create a control tree that assumes A and B are b x b blocks.
00051     fla_her2k_cntl_blas  = FLA_Cntl_her2k_obj_create( FLA_FLAT,
00052                                                       FLA_SUBPROBLEM,
00053                                                       NULL,
00054                                                       NULL,
00055                                                       NULL,
00056                                                       NULL );
00057  
00058     // Create a control tree that assumes A and B form an inner panel product.
00059     fla_her2k_cntl_ip    = FLA_Cntl_her2k_obj_create( FLA_FLAT,
00060                                                       FLA_BLOCKED_VARIANT9,
00061                                                       fla_her2k_var9_bsize,
00062                                                       fla_her2k_cntl_blas,
00063                                                       NULL,
00064                                                       NULL );
00065 
00066     // Create a control tree that assumes A and B form an outer panel product.
00067     fla_her2k_cntl_op    = FLA_Cntl_her2k_obj_create( FLA_FLAT,
00068                                                       FLA_BLOCKED_VARIANT3,
00069                                                       fla_her2k_var3_bsize,
00070                                                       fla_her2k_cntl_blas,
00071                                                       fla_gemm_cntl_blas,
00072                                                       fla_gemm_cntl_blas );
00073 
00074     // Create a control tree that assumes A and B are both large.
00075     fla_her2k_cntl_sq    = FLA_Cntl_her2k_obj_create( FLA_FLAT,
00076                                                       FLA_BLOCKED_VARIANT9,
00077                                                       fla_her2k_var9_bsize,
00078                                                       fla_her2k_cntl_op,
00079                                                       NULL,
00080                                                       NULL );
00081 }

void FLA_Herk_cntl_finalize ( void   ) 

void FLA_Herk_cntl_init ( void   ) 

References FLA_Cntl_herk_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00045 {
00046     // Set blocksizes with default values for conventional storage.
00047     fla_herk_var2_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00048     fla_herk_var5_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00049 
00050     // Create a control tree that assumes A is a b x b block.
00051     fla_herk_cntl_blas  = FLA_Cntl_herk_obj_create( FLA_FLAT,
00052                                                     FLA_SUBPROBLEM,
00053                                                     NULL,
00054                                                     NULL,
00055                                                     NULL );
00056 
00057     // Create a control tree that assumes A * A' forms an inner panel product.
00058     fla_herk_cntl_ip    = FLA_Cntl_herk_obj_create( FLA_FLAT,
00059                                                     FLA_BLOCKED_VARIANT5,
00060                                                     fla_herk_var5_bsize,
00061                                                     fla_herk_cntl_blas,
00062                                                     NULL );
00063 
00064     // Create a control tree that assumes A * A' forms an outer panel product.
00065     fla_herk_cntl_op    = FLA_Cntl_herk_obj_create( FLA_FLAT,
00066                                                     FLA_BLOCKED_VARIANT2,
00067                                                     fla_herk_var2_bsize,
00068                                                     fla_herk_cntl_blas,
00069                                                     fla_gemm_cntl_blas );
00070 
00071     // Create a control tree that assumes A is large.
00072     fla_herk_cntl_sq    = FLA_Cntl_herk_obj_create( FLA_FLAT,
00073                                                     FLA_BLOCKED_VARIANT5,
00074                                                     fla_herk_var5_bsize,
00075                                                     fla_herk_cntl_op,
00076                                                     NULL );
00077 }

void FLA_Hess_cntl_finalize ( void   ) 

void FLA_Hess_cntl_init ( void   ) 

References FLA_Cntl_hess_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00043 {
00044     // Set blocksize with default value for conventional storage.
00045     fla_hess_bsize       = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00046 
00047     // Create a control tree to invoke LAPACK.
00048     fla_hess_cntl_lapack = FLA_Cntl_hess_obj_create( FLA_FLAT,
00049                                                      FLA_SUBPROBLEM,
00050                                                      NULL,
00051                                                      NULL,
00052                                                      NULL,
00053                                                      NULL,
00054                                                      NULL,
00055                                                      NULL,
00056                                                      NULL,
00057                                                      NULL,
00058                                                      NULL );
00059 
00060     // Create a control tree to invoke variant 2.
00061     fla_hess_cntl        = FLA_Cntl_hess_obj_create( FLA_FLAT, 
00062                                                      FLA_BLOCKED_VARIANT2,
00063                                                      fla_hess_bsize,
00064                                                      fla_hess_cntl_lapack,
00065                                                      fla_trmm_cntl_blas,
00066                                                      fla_trmm_cntl_blas,
00067                                                      fla_trmm_cntl_blas,
00068                                                      fla_trmm_cntl_blas,
00069                                                      fla_gemm_cntl_blas,
00070                                                      fla_gemm_cntl_blas,
00071                                                      fla_gemm_cntl_blas );
00072 }

void FLA_LQ_UT_cntl_finalize ( void   ) 

void FLA_LQ_UT_cntl_init ( void   ) 

References FLA_Blocksize_scale(), FLA_Cntl_lqut_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00047 {
00048     // Set blocksizes with default values for conventional storage.
00049     fla_lqut_var2_bsize_leaf = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00050     FLA_Blocksize_scale( fla_lqut_var2_bsize_leaf, FLA_LQ_INNER_TO_OUTER_B_RATIO );
00051 
00052     // Create a control tree to invoke unblocked variant 1.
00053     fla_lqut_cntl_unb  = FLA_Cntl_lqut_obj_create( FLA_FLAT,
00054                                                    //FLA_UNBLOCKED_VARIANT1,
00055                                                    //FLA_UNB_OPT_VARIANT1,
00056                                                    FLA_SUBPROBLEM,
00057                                                    NULL,
00058                                                    NULL,
00059                                                    NULL,
00060                                                    NULL,
00061                                                    NULL,
00062                                                    NULL,
00063                                                    NULL,
00064                                                    NULL,
00065                                                    NULL );
00066 
00067     // Create a control tree for small-to-medium sequential problems and
00068     // as the means to compute on FLASH blocks.
00069     fla_lqut_cntl_leaf = FLA_Cntl_lqut_obj_create( FLA_FLAT, 
00070                                                    FLA_BLOCKED_VARIANT2,
00071                                                    fla_lqut_var2_bsize_leaf,
00072                                                    fla_lqut_cntl_unb,
00073                                                    fla_trmm_cntl_blas,
00074                                                    fla_trmm_cntl_blas,
00075                                                    fla_gemm_cntl_blas,
00076                                                    fla_gemm_cntl_blas,
00077                                                    fla_trsm_cntl_blas,
00078                                                    fla_copy_cntl_blas,
00079                                                    fla_axpy_cntl_blas );
00080 }

void FLA_LU_nopiv_cntl_finalize ( void   ) 

void FLA_LU_nopiv_cntl_init ( void   ) 

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

Referenced by FLA_Cntl_init_flamec().

00048 {
00049     // Set blocksizes with default values for conventional storage.
00050     fla_lu_nopiv_var5_bsize    = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00051     fla_lu_nopiv_var5_bsize_in = FLA_Blocksize_create_copy( fla_lu_nopiv_var5_bsize );
00052     FLA_Blocksize_scale( fla_lu_nopiv_var5_bsize_in, fla_lu_nopiv_var5_in_to_ou_bsize_ratio );
00053 
00054     // Create a control tree to invoke LAPACK.
00055     fla_lu_nopiv_cntl_lapack = FLA_Cntl_lu_obj_create( FLA_FLAT,
00056                                                        FLA_SUBPROBLEM,
00057                                                        NULL,
00058                                                        NULL,
00059                                                        NULL,
00060                                                        NULL,
00061                                                        NULL,
00062                                                        NULL,
00063                                                        NULL );
00064 
00065     // Create a control tree for small subproblems.
00066     fla_lu_nopiv_cntl_in     = FLA_Cntl_lu_obj_create( FLA_FLAT, 
00067                                                        FLA_BLOCKED_VARIANT5,
00068                                                        fla_lu_nopiv_var5_bsize_in,
00069                                                        fla_lu_nopiv_cntl_lapack,
00070                                                        fla_gemm_cntl_blas,
00071                                                        fla_gemm_cntl_blas,
00072                                                        fla_gemm_cntl_blas,
00073                                                        fla_trsm_cntl_blas,
00074                                                        fla_trsm_cntl_blas );
00075 
00076     // Create a control tree for larger problems with one level of recursion.
00077     fla_lu_nopiv_cntl2       = FLA_Cntl_lu_obj_create( FLA_FLAT, 
00078                                                        FLA_BLOCKED_VARIANT5,
00079                                                        fla_lu_nopiv_var5_bsize,
00080                                                        fla_lu_nopiv_cntl_in,
00081                                                        fla_gemm_cntl_blas,
00082                                                        fla_gemm_cntl_blas,
00083                                                        fla_gemm_cntl_blas,
00084                                                        fla_trsm_cntl_blas,
00085                                                        fla_trsm_cntl_blas );
00086 
00087     // Create a control tree for large problems with no extra recursion.
00088     fla_lu_nopiv_cntl        = FLA_Cntl_lu_obj_create( FLA_FLAT, 
00089                                                        FLA_BLOCKED_VARIANT5,
00090                                                        fla_lu_nopiv_var5_bsize,
00091                                                        fla_lu_nopiv_cntl_lapack,
00092                                                        fla_gemm_cntl_blas,
00093                                                        fla_gemm_cntl_blas,
00094                                                        fla_gemm_cntl_blas,
00095                                                        fla_trsm_cntl_blas,
00096                                                        fla_trsm_cntl_blas );
00097 }

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

00048 {
00049     // Set blocksizes with default values for conventional storage.
00050     fla_lu_piv_var5_bsize    = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00051     fla_lu_piv_var5_bsize_in = FLA_Blocksize_create_copy( fla_lu_piv_var5_bsize );
00052     FLA_Blocksize_scale( fla_lu_piv_var5_bsize_in, fla_lu_piv_var5_in_to_ou_bsize_ratio );
00053 
00054     // Create a control tree to invoke LAPACK.
00055     fla_lu_piv_cntl_lapack = FLA_Cntl_lu_obj_create( FLA_FLAT,
00056                                                      FLA_SUBPROBLEM,
00057                                                      NULL,
00058                                                      NULL,
00059                                                      NULL,
00060                                                      NULL,
00061                                                      NULL,
00062                                                      NULL,
00063                                                      NULL );
00064 
00065     // Create a control tree for small subproblems.
00066     fla_lu_piv_cntl_in     = FLA_Cntl_lu_obj_create( FLA_FLAT, 
00067                                                      FLA_BLOCKED_VARIANT5,
00068                                                      fla_lu_piv_var5_bsize_in,
00069                                                      fla_lu_piv_cntl_lapack,
00070                                                      fla_gemm_cntl_blas,
00071                                                      fla_gemm_cntl_blas,
00072                                                      fla_gemm_cntl_blas,
00073                                                      fla_trsm_cntl_blas,
00074                                                      fla_trsm_cntl_blas );
00075 
00076     // Create a control tree for larger problems with one level of recursion.
00077     fla_lu_piv_cntl2       = FLA_Cntl_lu_obj_create( FLA_FLAT, 
00078                                                      FLA_BLOCKED_VARIANT5,
00079                                                      fla_lu_piv_var5_bsize,
00080                                                      fla_lu_piv_cntl_in,
00081                                                      fla_gemm_cntl_blas,
00082                                                      fla_gemm_cntl_blas,
00083                                                      fla_gemm_cntl_blas,
00084                                                      fla_trsm_cntl_blas,
00085                                                      fla_trsm_cntl_blas );
00086 
00087     // Create a control tree for large problems with no extra recursion.
00088     fla_lu_piv_cntl        = FLA_Cntl_lu_obj_create( FLA_FLAT, 
00089                                                      FLA_BLOCKED_VARIANT5,
00090                                                      fla_lu_piv_var5_bsize,
00091                                                      fla_lu_piv_cntl_lapack,
00092                                                      fla_gemm_cntl_blas,
00093                                                      fla_gemm_cntl_blas,
00094                                                      fla_gemm_cntl_blas,
00095                                                      fla_trsm_cntl_blas,
00096                                                      fla_trsm_cntl_blas );
00097 }

void FLA_QR_UT_cntl_finalize ( void   ) 

void FLA_QR_UT_cntl_init ( void   ) 

References FLA_Blocksize_scale(), FLA_Cntl_qrut_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00047 {
00048     // Set blocksizes with default values for conventional storage.
00049     fla_qrut_var2_bsize_leaf = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00050     FLA_Blocksize_scale( fla_qrut_var2_bsize_leaf, FLA_QR_INNER_TO_OUTER_B_RATIO );
00051 
00052     // Create a control tree to invoke unblocked variant 1.
00053     fla_qrut_cntl_unb  = FLA_Cntl_qrut_obj_create( FLA_FLAT,
00054                                                    //FLA_UNBLOCKED_VARIANT1,
00055                                                    FLA_UNB_OPT_VARIANT1,
00056                                                    NULL,
00057                                                    NULL,
00058                                                    NULL,
00059                                                    NULL,
00060                                                    NULL,
00061                                                    NULL,
00062                                                    NULL,
00063                                                    NULL,
00064                                                    NULL );
00065 
00066     // Create a control tree for small-to-medium sequential problems and
00067     // as the means to compute on FLASH blocks.
00068     fla_qrut_cntl_leaf = FLA_Cntl_qrut_obj_create( FLA_FLAT, 
00069                                                    FLA_BLOCKED_VARIANT2,
00070                                                    fla_qrut_var2_bsize_leaf,
00071                                                    fla_qrut_cntl_unb,
00072                                                    fla_trmm_cntl_blas,
00073                                                    fla_trmm_cntl_blas,
00074                                                    fla_gemm_cntl_blas,
00075                                                    fla_gemm_cntl_blas,
00076                                                    fla_trsm_cntl_blas,
00077                                                    fla_copy_cntl_blas,
00078                                                    fla_axpy_cntl_blas );
00079 }

void FLA_QR_UT_UD_cntl_finalize ( void   ) 

void FLA_QR_UT_UD_cntl_init ( void   ) 

References FLA_Blocksize_scale(), FLA_Cntl_qrutud_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00045 {
00046     // Set the blocksize to the default value for conventional storage,
00047     // but scaled down.
00048     fla_qrutud_var1_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00049     FLA_Blocksize_scale( fla_qrutud_var1_bsize, FLA_QR_INNER_TO_OUTER_B_RATIO );
00050 
00051     // Create a control tree to invoke unblocked variant 1.
00052     fla_qrutud_cntl_unb = FLA_Cntl_qrutud_obj_create( FLA_FLAT,
00053                                                       //FLA_UNBLOCKED_VARIANT1, 
00054                                                       FLA_UNB_OPT_VARIANT1, 
00055                                                       NULL,
00056                                                       NULL,
00057                                                       NULL,
00058                                                       NULL,
00059                                                       NULL,
00060                                                       NULL,
00061                                                       NULL );
00062 
00063     // Create a control tree for small-to-medium sequential problems and
00064     // as the means to compute on FLASH blocks.
00065     fla_qrutud_cntl_leaf = FLA_Cntl_qrutud_obj_create( FLA_FLAT,
00066                                                        FLA_BLOCKED_VARIANT1, 
00067                                                        fla_qrutud_var1_bsize,
00068                                                        fla_qrutud_cntl_unb,
00069                                                        fla_gemm_cntl_blas,
00070                                                        fla_gemm_cntl_blas,
00071                                                        fla_trsm_cntl_blas,
00072                                                        fla_copy_cntl_blas,
00073                                                        fla_axpy_cntl_blas );
00074 
00075 }

void FLA_SPDinv_cntl_finalize ( void   ) 

void FLA_SPDinv_cntl_init ( void   ) 

References FLA_Cntl_spdinv_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00043 {
00044     // Rather than embed a blocksize, we store the cutoff matrix size for
00045     // switching from external routines to internal FLAME variants.
00046     fla_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     fla_spdinv_cntl        = FLA_Cntl_spdinv_obj_create( FLA_FLAT,
00052                                                          FLA_BLOCKED_VARIANT1, 
00053                                                          fla_spdinv_size_cutoff,
00054                                                          fla_chol_cntl,
00055                                                          fla_trinv_cntl,
00056                                                          fla_ttmm_cntl );
00057 }

void FLA_Sylv_cntl_finalize ( void   ) 

void FLA_Sylv_cntl_init ( void   ) 

References FLA_Cntl_sylv_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00043 {
00044     // Set blocksize with default value for conventional storage.
00045     fla_sylv_bsize       = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00046 
00047     // Create a control tree to invoke LAPACK.
00048     fla_sylv_cntl_lapack = FLA_Cntl_sylv_obj_create( FLA_FLAT,
00049                                                      FLA_SUBPROBLEM,
00050                                                      NULL,
00051                                                      NULL,
00052                                                      NULL,
00053                                                      NULL,
00054                                                      NULL,
00055                                                      NULL,
00056                                                      NULL,
00057                                                      NULL,
00058                                                      NULL,
00059                                                      NULL,
00060                                                      NULL,
00061                                                      NULL );
00062 
00063     // Create a control tree to invoke variant 15.
00064     fla_sylv_cntl_mb     = FLA_Cntl_sylv_obj_create( FLA_FLAT, 
00065                                                      FLA_BLOCKED_VARIANT15,
00066                                                      fla_sylv_bsize,
00067                                                      fla_sylv_cntl_lapack,
00068                                                      NULL,
00069                                                      NULL,
00070                                                      fla_gemm_cntl_blas,
00071                                                      NULL,
00072                                                      NULL,
00073                                                      NULL,
00074                                                      NULL,
00075                                                      NULL,
00076                                                      NULL,
00077                                                      NULL );
00078 
00079     // Create a control tree to invoke variant 17.
00080     fla_sylv_cntl        = FLA_Cntl_sylv_obj_create( FLA_FLAT, 
00081                                                      FLA_BLOCKED_VARIANT17,
00082                                                      fla_sylv_bsize,
00083                                                      fla_sylv_cntl_mb,
00084                                                      NULL,
00085                                                      NULL,
00086                                                      fla_gemm_cntl_blas,
00087                                                      NULL,
00088                                                      NULL,
00089                                                      NULL,
00090                                                      NULL,
00091                                                      NULL,
00092                                                      NULL,
00093                                                      NULL );
00094 }

void FLA_Symm_cntl_finalize ( void   ) 

void FLA_Symm_cntl_init ( void   ) 

References FLA_Cntl_symm_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00045 {
00046     // Set blocksizes with default values for conventional storage.
00047     fla_symm_var4_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00048     fla_symm_var9_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00049 
00050     // Create a control tree that assumes A and B are b x b blocks.
00051     fla_symm_cntl_blas  = FLA_Cntl_symm_obj_create( FLA_FLAT,
00052                                                     FLA_SUBPROBLEM,
00053                                                     NULL,
00054                                                     NULL,
00055                                                     NULL,
00056                                                     NULL );
00057 
00058     // Create a control tree that assumes A is a block and B is a panel.
00059     fla_symm_cntl_bp    = FLA_Cntl_symm_obj_create( FLA_FLAT,
00060                                                     FLA_BLOCKED_VARIANT9,
00061                                                     fla_symm_var9_bsize,
00062                                                     fla_symm_cntl_blas,
00063                                                     NULL,
00064                                                     NULL );
00065 
00066     // Create a control tree that assumes A is large and B is a panel.
00067     fla_symm_cntl_mp    = FLA_Cntl_symm_obj_create( FLA_FLAT,
00068                                                     FLA_BLOCKED_VARIANT4,
00069                                                     fla_symm_var4_bsize,
00070                                                     fla_symm_cntl_blas,
00071                                                     fla_gemm_cntl_blas,
00072                                                     fla_gemm_cntl_blas );
00073 
00074     // Create a control tree that assumes A and B are both large.
00075     fla_symm_cntl_mm    = FLA_Cntl_symm_obj_create( FLA_FLAT,
00076                                                     FLA_BLOCKED_VARIANT9,
00077                                                     fla_symm_var9_bsize,
00078                                                     fla_symm_cntl_mp,
00079                                                     NULL,
00080                                                     NULL );
00081 }

void FLA_Syr2k_cntl_finalize ( void   ) 

void FLA_Syr2k_cntl_init ( void   ) 

References FLA_Cntl_syr2k_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00045 {
00046     // Set blocksizes with default values for conventional storage.
00047     fla_syr2k_var3_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00048     fla_syr2k_var9_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00049 
00050     // Create a control tree that assumes A and B are b x b blocks.
00051     fla_syr2k_cntl_blas  = FLA_Cntl_syr2k_obj_create( FLA_FLAT,
00052                                                       FLA_SUBPROBLEM,
00053                                                       NULL,
00054                                                       NULL,
00055                                                       NULL,
00056                                                       NULL );
00057 
00058     // Create a control tree that assumes A and B form an inner panel product.
00059     fla_syr2k_cntl_ip    = FLA_Cntl_syr2k_obj_create( FLA_FLAT,
00060                                                       FLA_BLOCKED_VARIANT9,
00061                                                       fla_syr2k_var9_bsize,
00062                                                       fla_syr2k_cntl_blas,
00063                                                       NULL,
00064                                                       NULL );
00065 
00066     // Create a control tree that assumes A and B form an outer panel product.
00067     fla_syr2k_cntl_op    = FLA_Cntl_syr2k_obj_create( FLA_FLAT,
00068                                                       FLA_BLOCKED_VARIANT3,
00069                                                       fla_syr2k_var3_bsize,
00070                                                       fla_syr2k_cntl_blas,
00071                                                       fla_gemm_cntl_blas,
00072                                                       fla_gemm_cntl_blas );
00073 
00074     // Create a control tree that assumes A and B are both large.
00075     fla_syr2k_cntl_sq    = FLA_Cntl_syr2k_obj_create( FLA_FLAT,
00076                                                       FLA_BLOCKED_VARIANT9,
00077                                                       fla_syr2k_var9_bsize,
00078                                                       fla_syr2k_cntl_op,
00079                                                       NULL,
00080                                                       NULL );
00081 }

void FLA_Syrk_cntl_finalize ( void   ) 

void FLA_Syrk_cntl_init ( void   ) 

References FLA_Cntl_syrk_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00045 {
00046     // Set blocksizes with default values for conventional storage.
00047     fla_syrk_var2_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00048     fla_syrk_var5_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00049 
00050     // Create a control tree that assumes A is a b x b block.
00051     fla_syrk_cntl_blas  = FLA_Cntl_syrk_obj_create( FLA_FLAT,
00052                                                     FLA_SUBPROBLEM,
00053                                                     NULL,
00054                                                     NULL,
00055                                                     NULL );
00056 
00057     // Create a control tree that assumes A * A' forms an inner panel product.
00058     fla_syrk_cntl_ip    = FLA_Cntl_syrk_obj_create( FLA_FLAT,
00059                                                     FLA_BLOCKED_VARIANT5,
00060                                                     fla_syrk_var5_bsize,
00061                                                     fla_syrk_cntl_blas,
00062                                                     NULL );
00063 
00064     // Create a control tree that assumes A * A' forms an outer panel product.
00065     fla_syrk_cntl_op    = FLA_Cntl_syrk_obj_create( FLA_FLAT,
00066                                                     FLA_BLOCKED_VARIANT2,
00067                                                     fla_syrk_var2_bsize,
00068                                                     fla_syrk_cntl_blas,
00069                                                     fla_gemm_cntl_blas );
00070 
00071     // Create a control tree that assumes A is large.
00072     fla_syrk_cntl_sq    = FLA_Cntl_syrk_obj_create( FLA_FLAT,
00073                                                     FLA_BLOCKED_VARIANT5,
00074                                                     fla_syrk_var5_bsize,
00075                                                     fla_syrk_cntl_op,
00076                                                     NULL );
00077 }

void FLA_Transpose_cntl_finalize ( void   ) 

void FLA_Transpose_cntl_init ( void   ) 

References FLA_Cntl_swap_obj_create(), FLA_Cntl_tpose_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00044 {
00045     // Set blocksizes based on libgoto query.
00046     fla_tpose_bsize      = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00047     fla_tpose_swap_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00048 
00049     // Create a control tree that performs unblocked variant 2 transposition.
00050     fla_tpose_cntl_unb   = FLA_Cntl_tpose_obj_create( FLA_FLAT, 
00051                                                       FLA_UNBLOCKED_VARIANT2,
00052                                                       NULL,
00053                                                       NULL,
00054                                                       NULL );
00055 
00056     // Create a control tree that invokes an external implementation of swap.
00057     fla_swap_cntl_blas   = FLA_Cntl_swap_obj_create( FLA_FLAT,
00058                                                      FLA_SUBPROBLEM,
00059                                                      NULL,
00060                                                      NULL );
00061 
00062     // Create a control tree that invokes unblocked variant 2 of swap.
00063     fla_swap_cntl_panel  = FLA_Cntl_swap_obj_create( FLA_FLAT,
00064                                                      FLA_BLOCKED_VARIANT2, 
00065                                                      fla_tpose_swap_bsize,
00066                                                      fla_swap_cntl_blas );
00067 
00068     // Create a control tree that assumes a large matrix argument.
00069     fla_tpose_cntl       = FLA_Cntl_tpose_obj_create( FLA_FLAT,
00070                                                       FLA_BLOCKED_VARIANT2, 
00071                                                       fla_tpose_bsize,
00072                                                       fla_tpose_cntl_unb,
00073                                                       fla_swap_cntl_panel );
00074 }

void FLA_Trinv_cntl_finalize ( void   ) 

void FLA_Trinv_cntl_init ( void   ) 

References FLA_Cntl_trinv_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00044 {
00045     // Set blocksize with default value for conventional storage.
00046     fla_trinv_var3_bsize  = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00047 
00048     // Create a control tree to invoke LAPACK.
00049     fla_trinv_cntl_lapack = FLA_Cntl_trinv_obj_create( FLA_FLAT,
00050                                                        FLA_SUBPROBLEM,
00051                                                        NULL,
00052                                                        NULL,
00053                                                        NULL,
00054                                                        NULL,
00055                                                        NULL,
00056                                                        NULL );
00057 
00058     // Create a control tree to invoke variant 3.
00059     fla_trinv_cntl        = FLA_Cntl_trinv_obj_create( FLA_FLAT,
00060                                                        FLA_BLOCKED_VARIANT3, 
00061                                                        fla_trinv_var3_bsize,
00062                                                        fla_trinv_cntl_lapack,
00063                                                        fla_trmm_cntl_blas,
00064                                                        fla_trsm_cntl_blas,
00065                                                        fla_trsm_cntl_blas,
00066                                                        fla_gemm_cntl_blas );
00067 }

void FLA_Trmm_cntl_finalize ( void   ) 

void FLA_Trmm_cntl_init ( void   ) 

References FLA_Cntl_trmm_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00045 {
00046     // Set blocksizes with default values for conventional storage.
00047     fla_trmm_var2_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00048     fla_trmm_var3_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00049 
00050     // Create a control tree that assumes A and B are b x b blocks.
00051     fla_trmm_cntl_blas  = FLA_Cntl_trmm_obj_create( FLA_FLAT,
00052                                                     FLA_SUBPROBLEM,
00053                                                     NULL,
00054                                                     NULL,
00055                                                     NULL );
00056 
00057     // Create a control tree that assumes A is a block and B is a panel.
00058     fla_trmm_cntl_bp    = FLA_Cntl_trmm_obj_create( FLA_FLAT,
00059                                                     FLA_BLOCKED_VARIANT3,
00060                                                     fla_trmm_var3_bsize,
00061                                                     fla_trmm_cntl_blas,
00062                                                     NULL );
00063 
00064     // Create a control tree that assumes A is large and B is a panel.
00065     fla_trmm_cntl_mp    = FLA_Cntl_trmm_obj_create( FLA_FLAT,
00066                                                     FLA_BLOCKED_VARIANT2,
00067                                                     fla_trmm_var2_bsize,
00068                                                     fla_trmm_cntl_blas,
00069                                                     fla_gemm_cntl_blas );
00070 
00071     // Create a control tree that assumes A and B are both large.
00072     fla_trmm_cntl_mm    = FLA_Cntl_trmm_obj_create( FLA_FLAT,
00073                                                     FLA_BLOCKED_VARIANT3,
00074                                                     fla_trmm_var3_bsize,
00075                                                     fla_trmm_cntl_mp,
00076                                                     NULL );
00077 }

void FLA_Trsm_cntl_finalize ( void   ) 

void FLA_Trsm_cntl_init ( void   ) 

References FLA_Cntl_trsm_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00045 {
00046     // Set blocksizes with default values for conventional storage.
00047     fla_trsm_var2_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00048     fla_trsm_var3_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00049 
00050     // Create a control tree that assumes A and B are b x b blocks.
00051     fla_trsm_cntl_blas  = FLA_Cntl_trsm_obj_create( FLA_FLAT,
00052                                                     FLA_SUBPROBLEM,
00053                                                     NULL,
00054                                                     NULL,
00055                                                     NULL );
00056 
00057     // Create a control tree that assumes A is a block and B is a panel.
00058     fla_trsm_cntl_bp    = FLA_Cntl_trsm_obj_create( FLA_FLAT,
00059                                                     FLA_BLOCKED_VARIANT3,
00060                                                     fla_trsm_var3_bsize,
00061                                                     fla_trsm_cntl_blas,
00062                                                     NULL );
00063 
00064     // Create a control tree that assumes A is large and B is a panel.
00065     fla_trsm_cntl_mp    = FLA_Cntl_trsm_obj_create( FLA_FLAT,
00066                                                     FLA_BLOCKED_VARIANT2,
00067                                                     fla_trsm_var2_bsize,
00068                                                     fla_trsm_cntl_blas,
00069                                                     fla_gemm_cntl_blas );
00070 
00071     // Create a control tree that assumes A and B are both large.
00072     fla_trsm_cntl_mm    = FLA_Cntl_trsm_obj_create( FLA_FLAT,
00073                                                     FLA_BLOCKED_VARIANT3,
00074                                                     fla_trsm_var3_bsize,
00075                                                     fla_trsm_cntl_mp,
00076                                                     NULL );
00077 }

void FLA_Trsv_cntl_finalize ( void   ) 

References FLA_Cntl_obj_free().

Referenced by FLA_Cntl_finalize_flamec().

00048 {
00049     FLA_Cntl_obj_free( fla_trsv_cntl_blas );
00050 }

void FLA_Trsv_cntl_init ( void   ) 

References FLA_Cntl_trsv_obj_create().

Referenced by FLA_Cntl_init_flamec().

00038 {
00039     // Create a control tree that assumes A is small.
00040     fla_trsv_cntl_blas  = FLA_Cntl_trsv_obj_create( FLA_FLAT,
00041                                                     FLA_SUBPROBLEM,
00042                                                     NULL,
00043                                                     NULL,
00044                                                     NULL );
00045 }

void FLA_Ttmm_cntl_finalize ( void   ) 

void FLA_Ttmm_cntl_init ( void   ) 

References FLA_Cntl_ttmm_obj_create(), and FLA_Query_blocksizes().

Referenced by FLA_Cntl_init_flamec().

00045 {
00046     // Set blocksize with default value for conventional storage.
00047     fla_ttmm_var1_bsize  = FLA_Query_blocksizes( FLA_DIMENSION_MIN );
00048 
00049     // Create a control tree to invoke LAPACK.
00050     fla_ttmm_cntl_lapack = FLA_Cntl_ttmm_obj_create( FLA_FLAT,
00051                                                      FLA_SUBPROBLEM,
00052                                                      NULL,
00053                                                      NULL,
00054                                                      NULL,
00055                                                      NULL,
00056                                                      NULL,
00057                                                      NULL );
00058 
00059     // Create a control tree to invoke variant 1.
00060     fla_ttmm_cntl        = FLA_Cntl_ttmm_obj_create( FLA_FLAT,
00061                                                      FLA_BLOCKED_VARIANT1, 
00062                                                      fla_ttmm_var1_bsize,
00063                                                      fla_ttmm_cntl_lapack,
00064                                                      fla_syrk_cntl_blas,
00065                                                      fla_herk_cntl_blas,
00066                                                      fla_trmm_cntl_blas,
00067                                                      fla_gemm_cntl_blas );
00068 }


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