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 #ifndef BLIS1_H 00034 #define BLIS1_H 00035 00036 #include <stdio.h> 00037 #include <stdlib.h> 00038 #include <math.h> 00039 00040 // Determine whether or not we are using BLIS from libflame. 00041 //#define BLIS1_FROM_LIBFLAME 00042 00043 #ifdef BLIS1_FROM_LIBFLAME 00044 00045 // If using libflame, pull in its header files so that 00046 // vector intrinsics-related macro constants are set properly. 00047 //#include "FLAME.h" 00048 #include "FLA_config.h" 00049 #include "FLA_macro_defs.h" 00050 #include "FLA_type_defs.h" 00051 00052 // --- Pass-through macros for BLIS --- 00053 #ifdef FLA_ENABLE_CBLAS_INTERFACES 00054 #define BLIS1_ENABLE_CBLAS_INTERFACES 00055 #endif 00056 #ifdef FLA_ENABLE_WINDOWS_BUILD 00057 #define BLIS1_ENABLE_WINDOWS_BUILD 00058 #endif 00059 #ifdef FLA_ENABLE_UPPERCASE_F77 00060 #define BLIS1_ENABLE_UPPERCASE_F77 00061 #endif 00062 #ifdef FLA_ENABLE_VECTOR_INTRINSICS 00063 #define BLIS1_ENABLE_VECTOR_INTRINSICS 00064 #endif 00065 00066 #define BLIS1_VECTOR_INTRINSIC_TYPE FLA_VECTOR_INTRINSIC_TYPE 00067 00068 #else 00069 00070 // --- BLIS configuration options --- 00071 00072 // #define BLIS1_ENABLE_USE_OF_FLA_MALLOC 00073 // #define BLIS1_ENABLE_CBLAS_INTERFACES 00074 // #define BLIS1_ENABLE_WINDOWS_BUILD 00075 // #define BLIS1_ENABLE_UPPERCASE_F77 00076 // #define BLIS1_ENABLE_VECTOR_INTRINSICS 00077 // #define BLIS1_VECTOR_INTRINSIC_TYPE BLIS1_NO_INTRINSICS 00078 // #define BLIS1_VECTOR_INTRINSIC_TYPE BLIS1_SSE_INTRINSICS 00079 00080 #endif 00081 00082 #include "blis_macro_defs.h" 00083 #include "blis_type_defs.h" 00084 00085 #include "blis_prototypes_util.h" 00086 #include "blis_prototypes_query.h" 00087 #include "blis_prototypes_misc.h" 00088 00089 #include "blis_prototypes_level1.h" 00090 #include "blis_prototypes_level2.h" 00091 #include "blis_prototypes_level3.h" 00092 00093 #include "blis_prototypes_fused1.h" 00094 00095 #include "blis_f77_name_mangling.h" 00096 00097 #ifdef BLIS1_ENABLE_CBLAS_INTERFACES 00098 #include "blis_prototypes_cblas.h" 00099 #else 00100 #include "blis_prototypes_blas.h" 00101 #endif 00102 00103 #endif