00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 struct fla_chol_s
00039 {
00040 FLA_Matrix_type matrix_type;
00041 int variant;
00042 fla_blocksize_t* blocksize;
00043 struct fla_chol_s* sub_chol;
00044 struct fla_syrk_s* sub_syrk;
00045 struct fla_herk_s* sub_herk;
00046 struct fla_trsm_s* sub_trsm;
00047 struct fla_gemm_s* sub_gemm;
00048 };
00049 typedef struct fla_chol_s fla_chol_t;
00050
00051
00052 struct fla_ttmm_s
00053 {
00054 FLA_Matrix_type matrix_type;
00055 int variant;
00056 fla_blocksize_t* blocksize;
00057 struct fla_ttmm_s* sub_ttmm;
00058 struct fla_syrk_s* sub_syrk;
00059 struct fla_herk_s* sub_herk;
00060 struct fla_trmm_s* sub_trmm;
00061 struct fla_gemm_s* sub_gemm;
00062 };
00063 typedef struct fla_ttmm_s fla_ttmm_t;
00064
00065
00066 struct fla_lu_s
00067 {
00068 FLA_Matrix_type matrix_type;
00069 int variant;
00070 fla_blocksize_t* blocksize;
00071 struct fla_lu_s* sub_lu;
00072 struct fla_trsm_s* sub_trsm1;
00073 struct fla_trsm_s* sub_trsm2;
00074 struct fla_gemm_s* sub_gemm1;
00075 struct fla_gemm_s* sub_gemm2;
00076 struct fla_gemm_s* sub_gemm3;
00077 };
00078 typedef struct fla_lu_s fla_lu_t;
00079
00080
00081 struct fla_qr_ut_s
00082 {
00083 FLA_Matrix_type matrix_type;
00084 int variant;
00085 fla_blocksize_t* blocksize;
00086 struct fla_qr_ut_s* sub_qrut;
00087 struct fla_trmm_s* sub_trmm1;
00088 struct fla_trmm_s* sub_trmm2;
00089 struct fla_gemm_s* sub_gemm1;
00090 struct fla_gemm_s* sub_gemm2;
00091 struct fla_trsm_s* sub_trsm;
00092 struct fla_copy_s* sub_copy;
00093 struct fla_axpy_s* sub_axpy;
00094 };
00095 typedef struct fla_qr_ut_s fla_qrut_t;
00096
00097
00098 struct fla_qr_ut_ud_s
00099 {
00100 FLA_Matrix_type matrix_type;
00101 int variant;
00102 fla_blocksize_t* blocksize;
00103 struct fla_qr_ut_ud_s* sub_qrutud;
00104 struct fla_gemm_s* sub_gemm1;
00105 struct fla_gemm_s* sub_gemm2;
00106 struct fla_trsm_s* sub_trsm;
00107 struct fla_copy_s* sub_copy;
00108 struct fla_axpy_s* sub_axpy;
00109 };
00110 typedef struct fla_qr_ut_ud_s fla_qrutud_t;
00111
00112
00113 struct fla_qr_ut_inc_s
00114 {
00115 FLA_Matrix_type matrix_type;
00116 int variant;
00117 fla_blocksize_t* blocksize;
00118 struct fla_qr_ut_s* sub_qrut;
00119 struct fla_qr_ut_ud_s* sub_qrutud;
00120 struct fla_apqut_s* sub_apqut;
00121 struct fla_apqutud_s* sub_apqutud;
00122 };
00123 typedef struct fla_qr_ut_inc_s fla_qrutinc_t;
00124
00125
00126 struct fla_lq_ut_s
00127 {
00128 FLA_Matrix_type matrix_type;
00129 int variant;
00130 fla_blocksize_t* blocksize;
00131 struct fla_lq_ut_s* sub_lqut;
00132 struct fla_trmm_s* sub_trmm1;
00133 struct fla_trmm_s* sub_trmm2;
00134 struct fla_gemm_s* sub_gemm1;
00135 struct fla_gemm_s* sub_gemm2;
00136 struct fla_trsm_s* sub_trsm;
00137 struct fla_copy_s* sub_copy;
00138 struct fla_axpy_s* sub_axpy;
00139 };
00140 typedef struct fla_lq_ut_s fla_lqut_t;
00141
00142
00143 struct fla_hess_s
00144 {
00145 FLA_Matrix_type matrix_type;
00146 int variant;
00147 fla_blocksize_t* blocksize;
00148 struct fla_hess_s* sub_hess;
00149 struct fla_trmm_s* sub_trmm1;
00150 struct fla_trmm_s* sub_trmm2;
00151 struct fla_trmm_s* sub_trmm3;
00152 struct fla_trmm_s* sub_trmm4;
00153 struct fla_gemm_s* sub_gemm1;
00154 struct fla_gemm_s* sub_gemm2;
00155 struct fla_gemm_s* sub_gemm3;
00156 };
00157 typedef struct fla_hess_s fla_hess_t;
00158
00159
00160 struct fla_trinv_s
00161 {
00162 FLA_Matrix_type matrix_type;
00163 int variant;
00164 fla_blocksize_t* blocksize;
00165 struct fla_trinv_s* sub_trinv;
00166 struct fla_gemm_s* sub_gemm;
00167 struct fla_trmm_s* sub_trmm;
00168 struct fla_trsm_s* sub_trsm1;
00169 struct fla_trsm_s* sub_trsm2;
00170 };
00171 typedef struct fla_trinv_s fla_trinv_t;
00172
00173
00174 struct fla_sylv_s
00175 {
00176 FLA_Matrix_type matrix_type;
00177 int variant;
00178 fla_blocksize_t* blocksize;
00179 struct fla_sylv_s* sub_sylv1;
00180 struct fla_sylv_s* sub_sylv2;
00181 struct fla_sylv_s* sub_sylv3;
00182 struct fla_gemm_s* sub_gemm1;
00183 struct fla_gemm_s* sub_gemm2;
00184 struct fla_gemm_s* sub_gemm3;
00185 struct fla_gemm_s* sub_gemm4;
00186 struct fla_gemm_s* sub_gemm5;
00187 struct fla_gemm_s* sub_gemm6;
00188 struct fla_gemm_s* sub_gemm7;
00189 struct fla_gemm_s* sub_gemm8;
00190 };
00191 typedef struct fla_sylv_s fla_sylv_t;
00192
00193
00194 struct fla_accum_s_s
00195 {
00196 FLA_Matrix_type matrix_type;
00197 int variant;
00198 fla_blocksize_t* blocksize;
00199 };
00200 typedef struct fla_accum_s_s fla_accum_S_t;
00201
00202
00203 struct fla_spdinv_s
00204 {
00205 FLA_Matrix_type matrix_type;
00206 int variant;
00207 fla_blocksize_t* blocksize;
00208 struct fla_chol_s* sub_chol;
00209 struct fla_trinv_s* sub_trinv;
00210 struct fla_ttmm_s* sub_ttmm;
00211 };
00212 typedef struct fla_spdinv_s fla_spdinv_t;
00213
00214
00215 struct fla_apqut_s
00216 {
00217 FLA_Matrix_type matrix_type;
00218 int variant;
00219 fla_blocksize_t* blocksize;
00220 struct fla_apqut_s* sub_apqut;
00221 struct fla_trmm_s* sub_trmm1;
00222 struct fla_trmm_s* sub_trmm2;
00223 struct fla_gemm_s* sub_gemm1;
00224 struct fla_gemm_s* sub_gemm2;
00225 struct fla_trsm_s* sub_trsm;
00226 struct fla_copy_s* sub_copy;
00227 struct fla_axpy_s* sub_axpy;
00228 };
00229 typedef struct fla_apqut_s fla_apqut_t;
00230
00231
00232 struct fla_apqutud_s
00233 {
00234 FLA_Matrix_type matrix_type;
00235 int variant;
00236 fla_blocksize_t* blocksize;
00237 struct fla_apqutud_s* sub_apqutud;
00238 struct fla_gemm_s* sub_gemm1;
00239 struct fla_gemm_s* sub_gemm2;
00240 struct fla_trsm_s* sub_trsm;
00241 struct fla_copy_s* sub_copy;
00242 struct fla_axpy_s* sub_axpy;
00243 };
00244 typedef struct fla_apqutud_s fla_apqutud_t;
00245
00246
00247 struct fla_apqutinc_s
00248 {
00249 FLA_Matrix_type matrix_type;
00250 int variant;
00251 fla_blocksize_t* blocksize;
00252 struct fla_apqut_s* sub_apqut;
00253 struct fla_apqutud_s* sub_apqutud;
00254 };
00255 typedef struct fla_apqutinc_s fla_apqutinc_t;
00256
00257
00258
00259 #define FLA_Cntl_sub_chol( cntl ) cntl->sub_chol
00260 #define FLA_Cntl_sub_lu( cntl ) cntl->sub_lu
00261 #define FLA_Cntl_sub_qr( cntl ) cntl->sub_qr
00262 #define FLA_Cntl_sub_qrut( cntl ) cntl->sub_qrut
00263 #define FLA_Cntl_sub_qrutud( cntl ) cntl->sub_qrutud
00264 #define FLA_Cntl_sub_lq( cntl ) cntl->sub_lq
00265 #define FLA_Cntl_sub_lqut( cntl ) cntl->sub_lqut
00266 #define FLA_Cntl_sub_trinv( cntl ) cntl->sub_trinv
00267 #define FLA_Cntl_sub_hess( cntl ) cntl->sub_hess
00268 #define FLA_Cntl_sub_ttmm( cntl ) cntl->sub_ttmm
00269 #define FLA_Cntl_sub_sylv1( cntl ) cntl->sub_sylv1
00270 #define FLA_Cntl_sub_sylv2( cntl ) cntl->sub_sylv2
00271 #define FLA_Cntl_sub_sylv3( cntl ) cntl->sub_sylv3
00272 #define FLA_Cntl_sub_apqut( cntl ) cntl->sub_apqut
00273 #define FLA_Cntl_sub_apqutud( cntl ) cntl->sub_apqutud
00274
00275
00276 fla_chol_t* FLA_Cntl_chol_obj_create( FLA_Matrix_type matrix_type,
00277 int variant,
00278 fla_blocksize_t* blocksize,
00279 fla_chol_t* sub_chol,
00280 fla_syrk_t* sub_syrk,
00281 fla_herk_t* sub_herk,
00282 fla_trsm_t* sub_trsm,
00283 fla_gemm_t* sub_gemm );
00284 fla_lu_t* FLA_Cntl_lu_obj_create( FLA_Matrix_type matrix_type,
00285 int variant,
00286 fla_blocksize_t* blocksize,
00287 fla_lu_t* sub_lu,
00288 fla_gemm_t* sub_gemm1,
00289 fla_gemm_t* sub_gemm2,
00290 fla_gemm_t* sub_gemm3,
00291 fla_trsm_t* sub_trsm1,
00292 fla_trsm_t* sub_trsm2 );
00293 fla_qrut_t* FLA_Cntl_qrut_obj_create( FLA_Matrix_type matrix_type,
00294 int variant,
00295 fla_blocksize_t* blocksize,
00296 fla_qrut_t* sub_qrut,
00297 fla_trmm_t* sub_trmm1,
00298 fla_trmm_t* sub_trmm2,
00299 fla_gemm_t* sub_gemm1,
00300 fla_gemm_t* sub_gemm2,
00301 fla_trsm_t* sub_trsm,
00302 fla_copy_t* sub_copy,
00303 fla_axpy_t* sub_axpy );
00304 fla_qrutud_t* FLA_Cntl_qrutud_obj_create( FLA_Matrix_type matrix_type,
00305 int variant,
00306 fla_blocksize_t* blocksize,
00307 fla_qrutud_t* sub_qrutud,
00308 fla_gemm_t* sub_gemm1,
00309 fla_gemm_t* sub_gemm2,
00310 fla_trsm_t* sub_trsm,
00311 fla_copy_t* sub_copy,
00312 fla_axpy_t* sub_axpy );
00313 fla_lqut_t* FLA_Cntl_lqut_obj_create( FLA_Matrix_type matrix_type,
00314 int variant,
00315 fla_blocksize_t* blocksize,
00316 fla_lqut_t* sub_lqut,
00317 fla_trmm_t* sub_trmm1,
00318 fla_trmm_t* sub_trmm2,
00319 fla_gemm_t* sub_gemm1,
00320 fla_gemm_t* sub_gemm2,
00321 fla_trsm_t* sub_trsm,
00322 fla_copy_t* sub_copy,
00323 fla_axpy_t* sub_axpy );
00324 fla_trinv_t* FLA_Cntl_trinv_obj_create( FLA_Matrix_type matrix_type,
00325 int variant,
00326 fla_blocksize_t* blocksize,
00327 fla_trinv_t* sub_trinv,
00328 fla_trmm_t* sub_trmm,
00329 fla_trsm_t* sub_trsm1,
00330 fla_trsm_t* sub_trsm2,
00331 fla_gemm_t* sub_gemm );
00332 fla_hess_t* FLA_Cntl_hess_obj_create( FLA_Matrix_type matrix_type,
00333 int variant,
00334 fla_blocksize_t* blocksize,
00335 fla_hess_t* sub_hess,
00336 fla_trmm_t* sub_trmm1,
00337 fla_trmm_t* sub_trmm2,
00338 fla_trmm_t* sub_trmm3,
00339 fla_trmm_t* sub_trmm4,
00340 fla_gemm_t* sub_gemm1,
00341 fla_gemm_t* sub_gemm2,
00342 fla_gemm_t* sub_gemm3 );
00343 fla_ttmm_t* FLA_Cntl_ttmm_obj_create( FLA_Matrix_type matrix_type,
00344 int variant,
00345 fla_blocksize_t* blocksize,
00346 fla_ttmm_t* sub_ttmm,
00347 fla_syrk_t* sub_syrk,
00348 fla_herk_t* sub_herk,
00349 fla_trmm_t* sub_trmm,
00350 fla_gemm_t* sub_gemm );
00351 fla_sylv_t* FLA_Cntl_sylv_obj_create( FLA_Matrix_type matrix_type,
00352 int variant,
00353 fla_blocksize_t* blocksize,
00354 fla_sylv_t* sub_sylv1,
00355 fla_sylv_t* sub_sylv2,
00356 fla_sylv_t* sub_sylv3,
00357 fla_gemm_t* sub_gemm1,
00358 fla_gemm_t* sub_gemm2,
00359 fla_gemm_t* sub_gemm3,
00360 fla_gemm_t* sub_gemm4,
00361 fla_gemm_t* sub_gemm5,
00362 fla_gemm_t* sub_gemm6,
00363 fla_gemm_t* sub_gemm7,
00364 fla_gemm_t* sub_gemm8 );
00365 fla_spdinv_t* FLA_Cntl_spdinv_obj_create( FLA_Matrix_type matrix_type,
00366 int variant,
00367 fla_blocksize_t* blocksize,
00368 fla_chol_t* sub_chol,
00369 fla_trinv_t* sub_trinv,
00370 fla_ttmm_t* sub_ttmm );
00371 fla_apqut_t* FLA_Cntl_apqut_obj_create( FLA_Matrix_type matrix_type,
00372 int variant,
00373 fla_blocksize_t* blocksize,
00374 fla_apqut_t* sub_apqut,
00375 fla_trmm_t* sub_trmm1,
00376 fla_trmm_t* sub_trmm2,
00377 fla_gemm_t* sub_gemm1,
00378 fla_gemm_t* sub_gemm2,
00379 fla_trsm_t* sub_trsm,
00380 fla_copy_t* sub_copy,
00381 fla_axpy_t* sub_axpy );
00382 fla_apqutud_t* FLA_Cntl_apqutud_obj_create( FLA_Matrix_type matrix_type,
00383 int variant,
00384 fla_blocksize_t* blocksize,
00385 fla_apqutud_t* sub_apqutud,
00386 fla_gemm_t* sub_gemm1,
00387 fla_gemm_t* sub_gemm2,
00388 fla_trsm_t* sub_trsm,
00389 fla_copy_t* sub_copy,
00390 fla_axpy_t* sub_axpy );
00391 fla_qrutinc_t* FLA_Cntl_qrutinc_obj_create( FLA_Matrix_type matrix_type,
00392 int variant,
00393 fla_blocksize_t* blocksize,
00394 fla_qrut_t* sub_qrut,
00395 fla_apqut_t* sub_apqut,
00396 fla_qrutud_t* sub_qrutud,
00397 fla_apqutud_t* sub_apqutud );
00398 fla_apqutinc_t* FLA_Cntl_apqutinc_obj_create( FLA_Matrix_type matrix_type,
00399 int variant,
00400 fla_blocksize_t* blocksize,
00401 fla_apqut_t* sub_apqut,
00402 fla_apqutud_t* sub_apqutud );