| 
    libflame
    12600
    
   
   | 
  
  
  
 
| void FLASH_Gemm_cntl_finalize | ( | void | ) | 
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
{
    FLA_Cntl_obj_free( flash_gemm_cntl_blas );
    FLA_Cntl_obj_free( flash_gemm_cntl_pb_bb );
    FLA_Cntl_obj_free( flash_gemm_cntl_bp_bb );
    FLA_Cntl_obj_free( flash_gemm_cntl_ip_bb );
    FLA_Cntl_obj_free( flash_gemm_cntl_mp_ip );
    FLA_Cntl_obj_free( flash_gemm_cntl_op_bp );
    FLA_Cntl_obj_free( flash_gemm_cntl_pm_ip );
    FLA_Cntl_obj_free( flash_gemm_cntl_op_pb );
    FLA_Cntl_obj_free( flash_gemm_cntl_mp_pb );
    FLA_Cntl_obj_free( flash_gemm_cntl_pm_bp );
    FLA_Cntl_obj_free( flash_gemm_cntl_mm_pm );
    FLA_Cntl_obj_free( flash_gemm_cntl_mm_mp );
    FLA_Cntl_obj_free( flash_gemm_cntl_mm_op );
    FLA_Blocksize_free( flash_gemm_bsize );
}
| void FLASH_Gemm_cntl_init | ( | void | ) | 
References FLA_Blocksize_create(), FLA_Cntl_gemm_obj_create(), flash_gemm_cntl_bp_bb, flash_gemm_cntl_ip_bb, flash_gemm_cntl_mm_op, flash_gemm_cntl_mp_pb, flash_gemm_cntl_op_pb, flash_gemm_cntl_pb_bb, and flash_gemm_cntl_pm_bp.
Referenced by FLA_Cntl_init_flash().
{
    // Set gemm blocksize for hierarchical storage.
    flash_gemm_bsize      = FLA_Blocksize_create( 1, 1, 1, 1 );
    // Create a control tree node that executes a gemm subproblem.
    flash_gemm_cntl_blas  = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_SUBPROBLEM,
                                                      NULL,
                                                      NULL,
                                                      NULL );
    // Create control trees for situations where one dimension is large.
    flash_gemm_cntl_pb_bb = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT1,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_blas );
    flash_gemm_cntl_bp_bb = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT3,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_blas );
    flash_gemm_cntl_ip_bb = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT5,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_blas );
    // Create control trees for situations where two dimensions are large.
    flash_gemm_cntl_mp_ip = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT1,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_ip_bb );
    flash_gemm_cntl_op_bp = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT1,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_bp_bb );
    flash_gemm_cntl_pm_ip = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT3,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_ip_bb );
    flash_gemm_cntl_op_pb = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT3,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_pb_bb );
    flash_gemm_cntl_mp_pb = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT5,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_pb_bb );
    flash_gemm_cntl_pm_bp = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT5,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_bp_bb );
    // Create control trees for situations where all dimensions are large.
    flash_gemm_cntl_mm_pm = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT1,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_pm_ip );
    flash_gemm_cntl_mm_mp = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT3,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_mp_ip );
    flash_gemm_cntl_mm_op = FLA_Cntl_gemm_obj_create( FLA_HIER,
                                                      FLA_BLOCKED_VARIANT5,
                                                      flash_gemm_bsize,
                                                      flash_scal_cntl,
                                                      flash_gemm_cntl_op_bp );
    // Alias select control trees for convenience, when the caller doesn't
    // care (as he usually doesn't when partitioning hierarchical matricies)
    // which order the matrix is partitioned into blocks
    flash_gemm_cntl_mm = flash_gemm_cntl_mm_op;
    flash_gemm_cntl_mp = flash_gemm_cntl_mp_pb;
    flash_gemm_cntl_pm = flash_gemm_cntl_pm_bp;
    flash_gemm_cntl_op = flash_gemm_cntl_op_pb;
    flash_gemm_cntl_pb = flash_gemm_cntl_pb_bb;
    flash_gemm_cntl_bp = flash_gemm_cntl_bp_bb;
    flash_gemm_cntl_ip = flash_gemm_cntl_ip_bb;
    
}
Referenced by FLA_Gemm_internal().
Referenced by FLASH_Gemm_cntl_init().
Referenced by FLASH_Gemm_cntl_init().
Referenced by FLASH_Gemm_cntl_init().
Referenced by FLASH_Gemm_cntl_init().
Referenced by FLASH_Gemm_cntl_init().
Referenced by FLASH_Gemm_cntl_init().
Referenced by FLASH_Gemm_cntl_init().
 1.7.6.1