1 /* 2 3 Copyright (C) 2014, The University of Texas at Austin 4 5 This file is part of libflame and is available under the 3-Clause 6 BSD license, which can be found in the LICENSE file at the top-level 7 directory, or at http://opensource.org/licenses/BSD-3-Clause 8 9 */ 10 11 // Shared definitions 12 13 typedef struct FLA_Blocksize_s 14 { 15 dim_t s; 16 dim_t d; 17 dim_t c; 18 dim_t z; 19 } fla_blocksize_t; 20 21 #define FLA_SUBPROBLEM 0 22 #define FLA_UNBLOCKED_EXTERN 10 23 #define FLA_BLOCKED_EXTERN 13 24 25 #define FLA_UNB_VAR_OFFSET 40 26 #define FLA_OPT_VAR_OFFSET 80 27 #define FLA_BLK_VAR_OFFSET 120 28 #define FLA_BLF_VAR_OFFSET 160 29 30 #define FLA_UNBLOCKED_VARIANT1 (FLA_UNB_VAR_OFFSET+1) 31 #define FLA_UNBLOCKED_VARIANT2 (FLA_UNB_VAR_OFFSET+2) 32 #define FLA_UNBLOCKED_VARIANT3 (FLA_UNB_VAR_OFFSET+3) 33 #define FLA_UNBLOCKED_VARIANT4 (FLA_UNB_VAR_OFFSET+4) 34 #define FLA_UNBLOCKED_VARIANT5 (FLA_UNB_VAR_OFFSET+5) 35 #define FLA_UNBLOCKED_VARIANT6 (FLA_UNB_VAR_OFFSET+6) 36 #define FLA_UNBLOCKED_VARIANT7 (FLA_UNB_VAR_OFFSET+7) 37 #define FLA_UNBLOCKED_VARIANT8 (FLA_UNB_VAR_OFFSET+8) 38 #define FLA_UNBLOCKED_VARIANT9 (FLA_UNB_VAR_OFFSET+9) 39 #define FLA_UNBLOCKED_VARIANT10 (FLA_UNB_VAR_OFFSET+10) 40 41 #define FLA_UNB_OPT_VARIANT1 (FLA_OPT_VAR_OFFSET+1) 42 #define FLA_UNB_OPT_VARIANT2 (FLA_OPT_VAR_OFFSET+2) 43 #define FLA_UNB_OPT_VARIANT3 (FLA_OPT_VAR_OFFSET+3) 44 #define FLA_UNB_OPT_VARIANT4 (FLA_OPT_VAR_OFFSET+4) 45 #define FLA_UNB_OPT_VARIANT5 (FLA_OPT_VAR_OFFSET+5) 46 #define FLA_UNB_OPT_VARIANT6 (FLA_OPT_VAR_OFFSET+6) 47 #define FLA_UNB_OPT_VARIANT7 (FLA_OPT_VAR_OFFSET+7) 48 #define FLA_UNB_OPT_VARIANT8 (FLA_OPT_VAR_OFFSET+8) 49 #define FLA_UNB_OPT_VARIANT9 (FLA_OPT_VAR_OFFSET+9) 50 #define FLA_UNB_OPT_VARIANT10 (FLA_OPT_VAR_OFFSET+10) 51 52 #define FLA_BLOCKED_VARIANT1 (FLA_BLK_VAR_OFFSET+1) 53 #define FLA_BLOCKED_VARIANT2 (FLA_BLK_VAR_OFFSET+2) 54 #define FLA_BLOCKED_VARIANT3 (FLA_BLK_VAR_OFFSET+3) 55 #define FLA_BLOCKED_VARIANT4 (FLA_BLK_VAR_OFFSET+4) 56 #define FLA_BLOCKED_VARIANT5 (FLA_BLK_VAR_OFFSET+5) 57 #define FLA_BLOCKED_VARIANT6 (FLA_BLK_VAR_OFFSET+6) 58 #define FLA_BLOCKED_VARIANT7 (FLA_BLK_VAR_OFFSET+7) 59 #define FLA_BLOCKED_VARIANT8 (FLA_BLK_VAR_OFFSET+8) 60 #define FLA_BLOCKED_VARIANT9 (FLA_BLK_VAR_OFFSET+9) 61 #define FLA_BLOCKED_VARIANT10 (FLA_BLK_VAR_OFFSET+10) 62 #define FLA_BLOCKED_VARIANT11 (FLA_BLK_VAR_OFFSET+11) 63 #define FLA_BLOCKED_VARIANT12 (FLA_BLK_VAR_OFFSET+12) 64 #define FLA_BLOCKED_VARIANT13 (FLA_BLK_VAR_OFFSET+13) 65 #define FLA_BLOCKED_VARIANT14 (FLA_BLK_VAR_OFFSET+14) 66 #define FLA_BLOCKED_VARIANT15 (FLA_BLK_VAR_OFFSET+15) 67 #define FLA_BLOCKED_VARIANT16 (FLA_BLK_VAR_OFFSET+16) 68 #define FLA_BLOCKED_VARIANT17 (FLA_BLK_VAR_OFFSET+17) 69 #define FLA_BLOCKED_VARIANT18 (FLA_BLK_VAR_OFFSET+18) 70 #define FLA_BLOCKED_VARIANT19 (FLA_BLK_VAR_OFFSET+19) 71 #define FLA_BLOCKED_VARIANT20 (FLA_BLK_VAR_OFFSET+20) 72 73 #define FLA_BLK_FUS_VARIANT1 (FLA_BLF_VAR_OFFSET+1) 74 #define FLA_BLK_FUS_VARIANT2 (FLA_BLF_VAR_OFFSET+2) 75 #define FLA_BLK_FUS_VARIANT3 (FLA_BLF_VAR_OFFSET+3) 76 #define FLA_BLK_FUS_VARIANT4 (FLA_BLF_VAR_OFFSET+4) 77 #define FLA_BLK_FUS_VARIANT5 (FLA_BLF_VAR_OFFSET+5) 78 #define FLA_BLK_FUS_VARIANT6 (FLA_BLF_VAR_OFFSET+6) 79 #define FLA_BLK_FUS_VARIANT7 (FLA_BLF_VAR_OFFSET+7) 80 #define FLA_BLK_FUS_VARIANT8 (FLA_BLF_VAR_OFFSET+8) 81 #define FLA_BLK_FUS_VARIANT9 (FLA_BLF_VAR_OFFSET+9) 82 #define FLA_BLK_FUS_VARIANT10 (FLA_BLF_VAR_OFFSET+10) 83 84 #define FLA_Cntl_matrix_type( cntl ) cntl->matrix_type 85 #define FLA_Cntl_blocksize( cntl ) cntl->blocksize 86 #define FLA_Cntl_variant( cntl ) cntl->variant 87 88 void FLA_Cntl_obj_free( void* cntl ); 89 90 91 // Include the control tree definitions for each class of operation. 92 #include "FLA_Cntl_blas1.h" 93 #include "FLA_Cntl_blas2.h" 94 #include "FLA_Cntl_blas3.h" 95 #include "FLA_Cntl_lapack.h" 96 97