libflame
12600
|
00001 /* 00002 libflame 00003 An object-based infrastructure for developing high-performance 00004 dense linear algebra libraries. 00005 00006 Copyright (C) 2011, The University of Texas 00007 00008 libflame is free software; you can redistribute it and/or modify 00009 it under the terms of the GNU Lesser General Public License as 00010 published by the Free Software Foundation; either version 2.1 of 00011 the License, or (at your option) any later version. 00012 00013 libflame is distributed in the hope that it will be useful, but 00014 WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Lesser General Public License for more details. 00017 00018 You should have received a copy of the GNU Lesser General Public 00019 License along with libflame; if you did not receive a copy, see 00020 http://www.gnu.org/licenses/. 00021 00022 For more information, please contact us at flame@cs.utexas.edu or 00023 send mail to: 00024 00025 Field G. Van Zee and/or 00026 Robert A. van de Geijn 00027 The University of Texas at Austin 00028 Department of Computer Sciences 00029 1 University Station C0500 00030 Austin TX 78712 00031 */ 00032 00033 // Shared definitions 00034 00035 typedef struct FLA_Blocksize_s 00036 { 00037 dim_t s; 00038 dim_t d; 00039 dim_t c; 00040 dim_t z; 00041 } fla_blocksize_t; 00042 00043 #define FLA_SUBPROBLEM 0 00044 #define FLA_UNBLOCKED_EXTERN 10 00045 #define FLA_BLOCKED_EXTERN 13 00046 00047 #define FLA_UNB_VAR_OFFSET 40 00048 #define FLA_OPT_VAR_OFFSET 80 00049 #define FLA_BLK_VAR_OFFSET 120 00050 #define FLA_BLF_VAR_OFFSET 160 00051 00052 #define FLA_UNBLOCKED_VARIANT1 (FLA_UNB_VAR_OFFSET+1) 00053 #define FLA_UNBLOCKED_VARIANT2 (FLA_UNB_VAR_OFFSET+2) 00054 #define FLA_UNBLOCKED_VARIANT3 (FLA_UNB_VAR_OFFSET+3) 00055 #define FLA_UNBLOCKED_VARIANT4 (FLA_UNB_VAR_OFFSET+4) 00056 #define FLA_UNBLOCKED_VARIANT5 (FLA_UNB_VAR_OFFSET+5) 00057 #define FLA_UNBLOCKED_VARIANT6 (FLA_UNB_VAR_OFFSET+6) 00058 #define FLA_UNBLOCKED_VARIANT7 (FLA_UNB_VAR_OFFSET+7) 00059 #define FLA_UNBLOCKED_VARIANT8 (FLA_UNB_VAR_OFFSET+8) 00060 #define FLA_UNBLOCKED_VARIANT9 (FLA_UNB_VAR_OFFSET+9) 00061 #define FLA_UNBLOCKED_VARIANT10 (FLA_UNB_VAR_OFFSET+10) 00062 00063 #define FLA_UNB_OPT_VARIANT1 (FLA_OPT_VAR_OFFSET+1) 00064 #define FLA_UNB_OPT_VARIANT2 (FLA_OPT_VAR_OFFSET+2) 00065 #define FLA_UNB_OPT_VARIANT3 (FLA_OPT_VAR_OFFSET+3) 00066 #define FLA_UNB_OPT_VARIANT4 (FLA_OPT_VAR_OFFSET+4) 00067 #define FLA_UNB_OPT_VARIANT5 (FLA_OPT_VAR_OFFSET+5) 00068 #define FLA_UNB_OPT_VARIANT6 (FLA_OPT_VAR_OFFSET+6) 00069 #define FLA_UNB_OPT_VARIANT7 (FLA_OPT_VAR_OFFSET+7) 00070 #define FLA_UNB_OPT_VARIANT8 (FLA_OPT_VAR_OFFSET+8) 00071 #define FLA_UNB_OPT_VARIANT9 (FLA_OPT_VAR_OFFSET+9) 00072 #define FLA_UNB_OPT_VARIANT10 (FLA_OPT_VAR_OFFSET+10) 00073 00074 #define FLA_BLOCKED_VARIANT1 (FLA_BLK_VAR_OFFSET+1) 00075 #define FLA_BLOCKED_VARIANT2 (FLA_BLK_VAR_OFFSET+2) 00076 #define FLA_BLOCKED_VARIANT3 (FLA_BLK_VAR_OFFSET+3) 00077 #define FLA_BLOCKED_VARIANT4 (FLA_BLK_VAR_OFFSET+4) 00078 #define FLA_BLOCKED_VARIANT5 (FLA_BLK_VAR_OFFSET+5) 00079 #define FLA_BLOCKED_VARIANT6 (FLA_BLK_VAR_OFFSET+6) 00080 #define FLA_BLOCKED_VARIANT7 (FLA_BLK_VAR_OFFSET+7) 00081 #define FLA_BLOCKED_VARIANT8 (FLA_BLK_VAR_OFFSET+8) 00082 #define FLA_BLOCKED_VARIANT9 (FLA_BLK_VAR_OFFSET+9) 00083 #define FLA_BLOCKED_VARIANT10 (FLA_BLK_VAR_OFFSET+10) 00084 #define FLA_BLOCKED_VARIANT11 (FLA_BLK_VAR_OFFSET+11) 00085 #define FLA_BLOCKED_VARIANT12 (FLA_BLK_VAR_OFFSET+12) 00086 #define FLA_BLOCKED_VARIANT13 (FLA_BLK_VAR_OFFSET+13) 00087 #define FLA_BLOCKED_VARIANT14 (FLA_BLK_VAR_OFFSET+14) 00088 #define FLA_BLOCKED_VARIANT15 (FLA_BLK_VAR_OFFSET+15) 00089 #define FLA_BLOCKED_VARIANT16 (FLA_BLK_VAR_OFFSET+16) 00090 #define FLA_BLOCKED_VARIANT17 (FLA_BLK_VAR_OFFSET+17) 00091 #define FLA_BLOCKED_VARIANT18 (FLA_BLK_VAR_OFFSET+18) 00092 #define FLA_BLOCKED_VARIANT19 (FLA_BLK_VAR_OFFSET+19) 00093 #define FLA_BLOCKED_VARIANT20 (FLA_BLK_VAR_OFFSET+20) 00094 00095 #define FLA_BLK_FUS_VARIANT1 (FLA_BLF_VAR_OFFSET+1) 00096 #define FLA_BLK_FUS_VARIANT2 (FLA_BLF_VAR_OFFSET+2) 00097 #define FLA_BLK_FUS_VARIANT3 (FLA_BLF_VAR_OFFSET+3) 00098 #define FLA_BLK_FUS_VARIANT4 (FLA_BLF_VAR_OFFSET+4) 00099 #define FLA_BLK_FUS_VARIANT5 (FLA_BLF_VAR_OFFSET+5) 00100 #define FLA_BLK_FUS_VARIANT6 (FLA_BLF_VAR_OFFSET+6) 00101 #define FLA_BLK_FUS_VARIANT7 (FLA_BLF_VAR_OFFSET+7) 00102 #define FLA_BLK_FUS_VARIANT8 (FLA_BLF_VAR_OFFSET+8) 00103 #define FLA_BLK_FUS_VARIANT9 (FLA_BLF_VAR_OFFSET+9) 00104 #define FLA_BLK_FUS_VARIANT10 (FLA_BLF_VAR_OFFSET+10) 00105 00106 #define FLA_Cntl_matrix_type( cntl ) cntl->matrix_type 00107 #define FLA_Cntl_blocksize( cntl ) cntl->blocksize 00108 #define FLA_Cntl_variant( cntl ) cntl->variant 00109 00110 void FLA_Cntl_obj_free( void* cntl ); 00111 00112 00113 // Include the control tree definitions for each class of operation. 00114 #include "FLA_Cntl_blas1.h" 00115 #include "FLA_Cntl_blas2.h" 00116 #include "FLA_Cntl_blas3.h" 00117 #include "FLA_Cntl_lapack.h" 00118