Go to the source code of this file.
void FLA_Apply_Q_UT_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00083 { 00084 FLA_Cntl_obj_free( fla_apqut_cntl_leaf ); 00085 FLA_Cntl_obj_free( fla_apqut_cntl ); 00086 00087 FLA_Blocksize_free( fla_apqut_var1_bsize ); 00088 FLA_Blocksize_free( fla_apqut_var2_bsize ); 00089 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00063 { 00064 FLA_Cntl_obj_free( fla_apqutud_cntl_leaf ); 00065 00066 FLA_Blocksize_free( fla_apqutud_var1_bsize ); 00067 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00090 { 00091 FLA_Cntl_obj_free( fla_chol_cntl ); 00092 FLA_Cntl_obj_free( fla_chol_cntl2 ); 00093 FLA_Cntl_obj_free( fla_chol_cntl_lapack ); 00094 FLA_Cntl_obj_free( fla_chol_cntl_in ); 00095 00096 FLA_Blocksize_free( fla_chol_var3_bsize ); 00097 FLA_Blocksize_free( fla_chol_var3_bsize_in ); 00098 }
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().
00075 { 00076 FLA_Transpose_cntl_finalize(); 00077 00078 // Level-1 BLAS 00079 FLA_Axpy_cntl_finalize(); 00080 FLA_Copy_cntl_finalize(); 00081 00082 // Level-2 BLAS 00083 FLA_Gemv_cntl_finalize(); 00084 FLA_Trsv_cntl_finalize(); 00085 00086 // Level-3 BLAS 00087 FLA_Gemm_cntl_finalize(); 00088 FLA_Hemm_cntl_finalize(); 00089 FLA_Herk_cntl_finalize(); 00090 FLA_Her2k_cntl_finalize(); 00091 FLA_Symm_cntl_finalize(); 00092 FLA_Syrk_cntl_finalize(); 00093 FLA_Syr2k_cntl_finalize(); 00094 FLA_Trmm_cntl_finalize(); 00095 FLA_Trsm_cntl_finalize(); 00096 00097 // LAPACK-level 00098 FLA_Chol_cntl_finalize(); 00099 FLA_LU_piv_cntl_finalize(); 00100 FLA_LU_nopiv_cntl_finalize(); 00101 FLA_QR_UT_cntl_finalize(); 00102 FLA_QR_UT_UD_cntl_finalize(); 00103 FLA_LQ_UT_cntl_finalize(); 00104 FLA_Trinv_cntl_finalize(); 00105 FLA_Hess_cntl_finalize(); 00106 FLA_Ttmm_cntl_finalize(); 00107 FLA_Sylv_cntl_finalize(); 00108 FLA_SPDinv_cntl_finalize(); 00109 FLA_Apply_Q_UT_cntl_finalize(); 00110 FLA_Apply_Q_UT_UD_cntl_finalize(); 00111 }
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().
00185 { 00186 FLA_Cntl_obj_free( fla_gemm_cntl_blas ); 00187 00188 FLA_Cntl_obj_free( fla_gemm_cntl_pb_bb ); 00189 FLA_Cntl_obj_free( fla_gemm_cntl_bp_bb ); 00190 FLA_Cntl_obj_free( fla_gemm_cntl_ip_bb ); 00191 00192 FLA_Cntl_obj_free( fla_gemm_cntl_mp_ip ); 00193 FLA_Cntl_obj_free( fla_gemm_cntl_mp_ip_bb ); 00194 FLA_Cntl_obj_free( fla_gemm_cntl_op_bp ); 00195 FLA_Cntl_obj_free( fla_gemm_cntl_op_bp_bb ); 00196 FLA_Cntl_obj_free( fla_gemm_cntl_pm_ip ); 00197 FLA_Cntl_obj_free( fla_gemm_cntl_pm_ip_bb ); 00198 FLA_Cntl_obj_free( fla_gemm_cntl_op_pb ); 00199 FLA_Cntl_obj_free( fla_gemm_cntl_op_pb_bb ); 00200 FLA_Cntl_obj_free( fla_gemm_cntl_mp_pb ); 00201 FLA_Cntl_obj_free( fla_gemm_cntl_mp_pb_bb ); 00202 FLA_Cntl_obj_free( fla_gemm_cntl_pm_bp ); 00203 FLA_Cntl_obj_free( fla_gemm_cntl_pm_bp_bb ); 00204 00205 FLA_Cntl_obj_free( fla_gemm_cntl_mm_pm ); 00206 FLA_Cntl_obj_free( fla_gemm_cntl_mm_pm_ip ); 00207 FLA_Cntl_obj_free( fla_gemm_cntl_mm_pm_ip_bb ); 00208 FLA_Cntl_obj_free( fla_gemm_cntl_mm_mp ); 00209 FLA_Cntl_obj_free( fla_gemm_cntl_mm_mp_ip ); 00210 FLA_Cntl_obj_free( fla_gemm_cntl_mm_mp_ip_bb ); 00211 FLA_Cntl_obj_free( fla_gemm_cntl_mm_op ); 00212 FLA_Cntl_obj_free( fla_gemm_cntl_mm_op_bp ); 00213 FLA_Cntl_obj_free( fla_gemm_cntl_mm_op_bp_bb ); 00214 00215 FLA_Blocksize_free( fla_gemm_var1_bsize ); 00216 FLA_Blocksize_free( fla_gemm_var3_bsize ); 00217 FLA_Blocksize_free( fla_gemm_var5_bsize ); 00218 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00084 { 00085 FLA_Cntl_obj_free( fla_hemm_cntl_blas ); 00086 00087 FLA_Cntl_obj_free( fla_hemm_cntl_bp ); 00088 FLA_Cntl_obj_free( fla_hemm_cntl_mp ); 00089 FLA_Cntl_obj_free( fla_hemm_cntl_mm ); 00090 00091 FLA_Blocksize_free( fla_hemm_var4_bsize ); 00092 FLA_Blocksize_free( fla_hemm_var9_bsize ); 00093 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00084 { 00085 FLA_Cntl_obj_free( fla_her2k_cntl_blas ); 00086 00087 FLA_Cntl_obj_free( fla_her2k_cntl_ip ); 00088 FLA_Cntl_obj_free( fla_her2k_cntl_op ); 00089 FLA_Cntl_obj_free( fla_her2k_cntl_sq ); 00090 00091 FLA_Blocksize_free( fla_her2k_var3_bsize ); 00092 FLA_Blocksize_free( fla_her2k_var9_bsize ); 00093 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00080 { 00081 FLA_Cntl_obj_free( fla_herk_cntl_blas ); 00082 00083 FLA_Cntl_obj_free( fla_herk_cntl_ip ); 00084 FLA_Cntl_obj_free( fla_herk_cntl_op ); 00085 FLA_Cntl_obj_free( fla_herk_cntl_sq ); 00086 00087 FLA_Blocksize_free( fla_herk_var2_bsize ); 00088 FLA_Blocksize_free( fla_herk_var5_bsize ); 00089 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00075 { 00076 FLA_Cntl_obj_free( fla_hess_cntl_lapack ); 00077 FLA_Cntl_obj_free( fla_hess_cntl ); 00078 00079 FLA_Blocksize_free( fla_hess_bsize ); 00080 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00083 { 00084 FLA_Cntl_obj_free( fla_lqut_cntl_unb ); 00085 FLA_Cntl_obj_free( fla_lqut_cntl_leaf ); 00086 00087 FLA_Blocksize_free( fla_lqut_var2_bsize_leaf ); 00088 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00100 { 00101 FLA_Cntl_obj_free( fla_lu_nopiv_cntl ); 00102 FLA_Cntl_obj_free( fla_lu_nopiv_cntl2 ); 00103 FLA_Cntl_obj_free( fla_lu_nopiv_cntl_in ); 00104 FLA_Cntl_obj_free( fla_lu_nopiv_cntl_lapack ); 00105 00106 FLA_Blocksize_free( fla_lu_nopiv_var5_bsize ); 00107 FLA_Blocksize_free( fla_lu_nopiv_var5_bsize_in ); 00108 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00100 { 00101 FLA_Cntl_obj_free( fla_lu_piv_cntl ); 00102 FLA_Cntl_obj_free( fla_lu_piv_cntl2 ); 00103 FLA_Cntl_obj_free( fla_lu_piv_cntl_in ); 00104 FLA_Cntl_obj_free( fla_lu_piv_cntl_lapack ); 00105 00106 FLA_Blocksize_free( fla_lu_piv_var5_bsize ); 00107 FLA_Blocksize_free( fla_lu_piv_var5_bsize_in ); 00108 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00082 { 00083 FLA_Cntl_obj_free( fla_qrut_cntl_unb ); 00084 FLA_Cntl_obj_free( fla_qrut_cntl_leaf ); 00085 00086 FLA_Blocksize_free( fla_qrut_var2_bsize_leaf ); 00087 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00078 { 00079 FLA_Cntl_obj_free( fla_qrutud_cntl_unb ); 00080 FLA_Cntl_obj_free( fla_qrutud_cntl_leaf ); 00081 00082 FLA_Blocksize_free( fla_qrutud_var1_bsize ); 00083 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00060 { 00061 FLA_Cntl_obj_free( fla_spdinv_cntl ); 00062 00063 FLA_Blocksize_free( fla_spdinv_size_cutoff ); 00064 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00097 { 00098 FLA_Cntl_obj_free( fla_sylv_cntl_lapack ); 00099 FLA_Cntl_obj_free( fla_sylv_cntl_mb ); 00100 FLA_Cntl_obj_free( fla_sylv_cntl ); 00101 00102 FLA_Blocksize_free( fla_sylv_bsize ); 00103 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00084 { 00085 FLA_Cntl_obj_free( fla_symm_cntl_blas ); 00086 00087 FLA_Cntl_obj_free( fla_symm_cntl_bp ); 00088 FLA_Cntl_obj_free( fla_symm_cntl_mp ); 00089 FLA_Cntl_obj_free( fla_symm_cntl_mm ); 00090 00091 FLA_Blocksize_free( fla_symm_var4_bsize ); 00092 FLA_Blocksize_free( fla_symm_var9_bsize ); 00093 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00084 { 00085 FLA_Cntl_obj_free( fla_syr2k_cntl_blas ); 00086 00087 FLA_Cntl_obj_free( fla_syr2k_cntl_ip ); 00088 FLA_Cntl_obj_free( fla_syr2k_cntl_op ); 00089 FLA_Cntl_obj_free( fla_syr2k_cntl_sq ); 00090 00091 FLA_Blocksize_free( fla_syr2k_var3_bsize ); 00092 FLA_Blocksize_free( fla_syr2k_var9_bsize ); 00093 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00080 { 00081 FLA_Cntl_obj_free( fla_syrk_cntl_blas ); 00082 00083 FLA_Cntl_obj_free( fla_syrk_cntl_ip ); 00084 FLA_Cntl_obj_free( fla_syrk_cntl_op ); 00085 FLA_Cntl_obj_free( fla_syrk_cntl_sq ); 00086 00087 FLA_Blocksize_free( fla_syrk_var2_bsize ); 00088 FLA_Blocksize_free( fla_syrk_var5_bsize ); 00089 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00077 { 00078 FLA_Cntl_obj_free( fla_tpose_cntl ); 00079 FLA_Cntl_obj_free( fla_tpose_cntl_unb ); 00080 FLA_Cntl_obj_free( fla_swap_cntl_panel ); 00081 FLA_Cntl_obj_free( fla_swap_cntl_blas ); 00082 00083 FLA_Blocksize_free( fla_tpose_bsize ); 00084 FLA_Blocksize_free( fla_tpose_swap_bsize ); 00085 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00070 { 00071 FLA_Cntl_obj_free( fla_trinv_cntl_lapack ); 00072 FLA_Cntl_obj_free( fla_trinv_cntl ); 00073 00074 FLA_Blocksize_free( fla_trinv_var3_bsize ); 00075 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00080 { 00081 FLA_Cntl_obj_free( fla_trmm_cntl_blas ); 00082 00083 FLA_Cntl_obj_free( fla_trmm_cntl_bp ); 00084 FLA_Cntl_obj_free( fla_trmm_cntl_mp ); 00085 FLA_Cntl_obj_free( fla_trmm_cntl_mm ); 00086 00087 FLA_Blocksize_free( fla_trmm_var2_bsize ); 00088 FLA_Blocksize_free( fla_trmm_var3_bsize ); 00089 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00080 { 00081 FLA_Cntl_obj_free( fla_trsm_cntl_blas ); 00082 00083 FLA_Cntl_obj_free( fla_trsm_cntl_bp ); 00084 FLA_Cntl_obj_free( fla_trsm_cntl_mp ); 00085 FLA_Cntl_obj_free( fla_trsm_cntl_mm ); 00086 00087 FLA_Blocksize_free( fla_trsm_var2_bsize ); 00088 FLA_Blocksize_free( fla_trsm_var3_bsize ); 00089 }
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 | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00071 { 00072 FLA_Cntl_obj_free( fla_ttmm_cntl_lapack ); 00073 FLA_Cntl_obj_free( fla_ttmm_cntl ); 00074 00075 FLA_Blocksize_free( fla_ttmm_var1_bsize ); 00076 }
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 }