libflame
revision_anchor
|
00001 /* 00002 00003 Copyright (C) 2014, The University of Texas at Austin 00004 00005 This file is part of libflame and is available under the 3-Clause 00006 BSD license, which can be found in the LICENSE file at the top-level 00007 directory, or at http://opensource.org/licenses/BSD-3-Clause 00008 00009 */ 00010 00011 00012 // 00013 // Level-3 BLAS 00014 // 00015 00016 struct fla_gemm_s 00017 { 00018 FLA_Matrix_type matrix_type; 00019 int variant; 00020 fla_blocksize_t* blocksize; 00021 struct fla_scal_s* sub_scal; 00022 struct fla_gemm_s* sub_gemm; 00023 }; 00024 typedef struct fla_gemm_s fla_gemm_t; 00025 00026 00027 struct fla_hemm_s 00028 { 00029 FLA_Matrix_type matrix_type; 00030 int variant; 00031 fla_blocksize_t* blocksize; 00032 struct fla_scal_s* sub_scal; 00033 struct fla_hemm_s* sub_hemm; 00034 struct fla_gemm_s* sub_gemm1; 00035 struct fla_gemm_s* sub_gemm2; 00036 }; 00037 typedef struct fla_hemm_s fla_hemm_t; 00038 00039 00040 struct fla_herk_s 00041 { 00042 FLA_Matrix_type matrix_type; 00043 int variant; 00044 fla_blocksize_t* blocksize; 00045 struct fla_scalr_s* sub_scalr; 00046 struct fla_herk_s* sub_herk; 00047 struct fla_gemm_s* sub_gemm; 00048 }; 00049 typedef struct fla_herk_s fla_herk_t; 00050 00051 00052 struct fla_her2k_s 00053 { 00054 FLA_Matrix_type matrix_type; 00055 int variant; 00056 fla_blocksize_t* blocksize; 00057 struct fla_scalr_s* sub_scalr; 00058 struct fla_her2k_s* sub_her2k; 00059 struct fla_gemm_s* sub_gemm1; 00060 struct fla_gemm_s* sub_gemm2; 00061 }; 00062 typedef struct fla_her2k_s fla_her2k_t; 00063 00064 00065 struct fla_symm_s 00066 { 00067 FLA_Matrix_type matrix_type; 00068 int variant; 00069 fla_blocksize_t* blocksize; 00070 struct fla_scal_s* sub_scal; 00071 struct fla_symm_s* sub_symm; 00072 struct fla_gemm_s* sub_gemm1; 00073 struct fla_gemm_s* sub_gemm2; 00074 }; 00075 typedef struct fla_symm_s fla_symm_t; 00076 00077 00078 struct fla_syrk_s 00079 { 00080 FLA_Matrix_type matrix_type; 00081 int variant; 00082 fla_blocksize_t* blocksize; 00083 struct fla_scalr_s* sub_scalr; 00084 struct fla_syrk_s* sub_syrk; 00085 struct fla_gemm_s* sub_gemm; 00086 }; 00087 typedef struct fla_syrk_s fla_syrk_t; 00088 00089 00090 struct fla_syr2k_s 00091 { 00092 FLA_Matrix_type matrix_type; 00093 int variant; 00094 fla_blocksize_t* blocksize; 00095 struct fla_scalr_s* sub_scalr; 00096 struct fla_syr2k_s* sub_syr2k; 00097 struct fla_gemm_s* sub_gemm1; 00098 struct fla_gemm_s* sub_gemm2; 00099 }; 00100 typedef struct fla_syr2k_s fla_syr2k_t; 00101 00102 00103 struct fla_trmm_s 00104 { 00105 FLA_Matrix_type matrix_type; 00106 int variant; 00107 fla_blocksize_t* blocksize; 00108 struct fla_scal_s* sub_scal; 00109 struct fla_trmm_s* sub_trmm; 00110 struct fla_gemm_s* sub_gemm; 00111 }; 00112 typedef struct fla_trmm_s fla_trmm_t; 00113 00114 00115 struct fla_trsm_s 00116 { 00117 FLA_Matrix_type matrix_type; 00118 int variant; 00119 fla_blocksize_t* blocksize; 00120 struct fla_scal_s* sub_scal; 00121 struct fla_trsm_s* sub_trsm; 00122 struct fla_gemm_s* sub_gemm; 00123 }; 00124 typedef struct fla_trsm_s fla_trsm_t; 00125 00126 00127 #define FLA_Cntl_sub_gemm( cntl ) cntl->sub_gemm 00128 #define FLA_Cntl_sub_gemm1( cntl ) cntl->sub_gemm1 00129 #define FLA_Cntl_sub_gemm2( cntl ) cntl->sub_gemm2 00130 #define FLA_Cntl_sub_gemm3( cntl ) cntl->sub_gemm3 00131 #define FLA_Cntl_sub_gemm4( cntl ) cntl->sub_gemm4 00132 #define FLA_Cntl_sub_gemm5( cntl ) cntl->sub_gemm5 00133 #define FLA_Cntl_sub_gemm6( cntl ) cntl->sub_gemm6 00134 #define FLA_Cntl_sub_gemm7( cntl ) cntl->sub_gemm7 00135 #define FLA_Cntl_sub_gemm8( cntl ) cntl->sub_gemm8 00136 #define FLA_Cntl_sub_hemm( cntl ) cntl->sub_hemm 00137 #define FLA_Cntl_sub_hemm1( cntl ) cntl->sub_hemm1 00138 #define FLA_Cntl_sub_hemm2( cntl ) cntl->sub_hemm2 00139 #define FLA_Cntl_sub_herk( cntl ) cntl->sub_herk 00140 #define FLA_Cntl_sub_herk1( cntl ) cntl->sub_herk1 00141 #define FLA_Cntl_sub_herk2( cntl ) cntl->sub_herk2 00142 #define FLA_Cntl_sub_her2k( cntl ) cntl->sub_her2k 00143 #define FLA_Cntl_sub_symm( cntl ) cntl->sub_symm 00144 #define FLA_Cntl_sub_syrk( cntl ) cntl->sub_syrk 00145 #define FLA_Cntl_sub_syr2k( cntl ) cntl->sub_syr2k 00146 #define FLA_Cntl_sub_trmm( cntl ) cntl->sub_trmm 00147 #define FLA_Cntl_sub_trmm1( cntl ) cntl->sub_trmm1 00148 #define FLA_Cntl_sub_trmm2( cntl ) cntl->sub_trmm2 00149 #define FLA_Cntl_sub_trsm( cntl ) cntl->sub_trsm 00150 #define FLA_Cntl_sub_trsm1( cntl ) cntl->sub_trsm1 00151 #define FLA_Cntl_sub_trsm2( cntl ) cntl->sub_trsm2 00152 #define FLA_Cntl_sub_trsm3( cntl ) cntl->sub_trsm3 00153 #define FLA_Cntl_sub_trsm4( cntl ) cntl->sub_trsm4 00154 00155 00156 fla_gemm_t* FLA_Cntl_gemm_obj_create( FLA_Matrix_type matrix_type, 00157 int variant, 00158 fla_blocksize_t* blocksize, 00159 fla_scal_t* sub_scal, 00160 fla_gemm_t* sub_gemm ); 00161 fla_hemm_t* FLA_Cntl_hemm_obj_create( FLA_Matrix_type matrix_type, 00162 int variant, 00163 fla_blocksize_t* blocksize, 00164 fla_scal_t* sub_scal, 00165 fla_hemm_t* sub_hemm, 00166 fla_gemm_t* sub_gemm1, 00167 fla_gemm_t* sub_gemm2 ); 00168 fla_herk_t* FLA_Cntl_herk_obj_create( FLA_Matrix_type matrix_type, 00169 int variant, 00170 fla_blocksize_t* blocksize, 00171 fla_scalr_t* sub_scalr, 00172 fla_herk_t* sub_herk, 00173 fla_gemm_t* sub_gemm ); 00174 fla_her2k_t* FLA_Cntl_her2k_obj_create( FLA_Matrix_type matrix_type, 00175 int variant, 00176 fla_blocksize_t* blocksize, 00177 fla_scalr_t* sub_scalr, 00178 fla_her2k_t* sub_her2k, 00179 fla_gemm_t* sub_gemm1, 00180 fla_gemm_t* sub_gemm2 ); 00181 fla_symm_t* FLA_Cntl_symm_obj_create( FLA_Matrix_type matrix_type, 00182 int variant, 00183 fla_blocksize_t* blocksize, 00184 fla_scal_t* sub_scal, 00185 fla_symm_t* sub_symm, 00186 fla_gemm_t* sub_gemm1, 00187 fla_gemm_t* sub_gemm2 ); 00188 fla_syrk_t* FLA_Cntl_syrk_obj_create( FLA_Matrix_type matrix_type, 00189 int variant, 00190 fla_blocksize_t* blocksize, 00191 fla_scalr_t* sub_scalr, 00192 fla_syrk_t* sub_syrk, 00193 fla_gemm_t* sub_gemm ); 00194 fla_syr2k_t* FLA_Cntl_syr2k_obj_create( FLA_Matrix_type matrix_type, 00195 int variant, 00196 fla_blocksize_t* blocksize, 00197 fla_scalr_t* sub_scalr, 00198 fla_syr2k_t* sub_syr2k, 00199 fla_gemm_t* sub_gemm1, 00200 fla_gemm_t* sub_gemm2 ); 00201 fla_trmm_t* FLA_Cntl_trmm_obj_create( FLA_Matrix_type matrix_type, 00202 int variant, 00203 fla_blocksize_t* blocksize, 00204 fla_scal_t* sub_scal, 00205 fla_trmm_t* sub_trmm, 00206 fla_gemm_t* sub_gemm ); 00207 fla_trsm_t* FLA_Cntl_trsm_obj_create( FLA_Matrix_type matrix_type, 00208 int variant, 00209 fla_blocksize_t* blocksize, 00210 fla_scal_t* sub_scal, 00211 fla_trsm_t* sub_trsm, 00212 fla_gemm_t* sub_gemm ); 00213