$search
00001 // Copyright (C) 2008-2011 NICTA (www.nicta.com.au) 00002 // Copyright (C) 2008-2011 Conrad Sanderson 00003 // 00004 // This file is part of the Armadillo C++ library. 00005 // It is provided without any warranty of fitness 00006 // for any purpose. You can redistribute this file 00007 // and/or modify it under the terms of the GNU 00008 // Lesser General Public License (LGPL) as published 00009 // by the Free Software Foundation, either version 3 00010 // of the License or (at your option) any later version. 00011 // (see http://www.opensource.org/licenses for more info) 00012 00013 00014 00015 #define arma_hot 00016 #define arma_cold 00017 #define arma_pure 00018 #define arma_const 00019 #define arma_inline inline 00020 #define arma_aligned 00021 #define arma_warn_unused 00022 #define arma_deprecated 00023 #define arma_ignore(variable) ((void)(variable)) 00024 00025 00026 #if defined(ARMA_BLAS_UNDERSCORE) 00027 #define arma_fortran2_noprefix(function) function##_ 00028 #define arma_fortran2_prefix(function) wrapper_##function##_ 00029 #else 00030 #define arma_fortran2_prefix(function) wrapper_##function 00031 #define arma_fortran2_noprefix(function) function 00032 #endif 00033 00034 #if defined(ARMA_USE_WRAPPER) 00035 #define arma_fortran(function) arma_fortran2_prefix(function) 00036 #define arma_atlas(function) wrapper_##function 00037 #else 00038 #define arma_fortran(function) arma_fortran2_noprefix(function) 00039 #define arma_atlas(function) function 00040 #endif 00041 00042 #define arma_fortran_prefix(function) arma_fortran2_prefix(function) 00043 #define arma_fortran_noprefix(function) arma_fortran2_noprefix(function) 00044 00045 00046 #define ARMA_INCFILE_WRAP(x) <x> 00047 00048 00049 #if defined(__INTEL_COMPILER) 00050 00051 #if (__INTEL_COMPILER < 1000) 00052 #error "*** Need a newer compiler ***" 00053 #endif 00054 00055 #define ARMA_GOOD_COMPILER 00056 #undef ARMA_HAVE_STD_TR1 00057 00058 #if (__INTEL_COMPILER <= 1110) 00059 #undef ARMA_HAVE_STD_ISFINITE 00060 #endif 00061 00062 #elif defined(__GNUG__) 00063 00064 #if (__GNUC__ < 4) 00065 #error "*** Need a newer compiler ***" 00066 #endif 00067 00068 #define ARMA_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) 00069 00070 #define ARMA_GOOD_COMPILER 00071 #undef ARMA_HAVE_STD_TR1 00072 00073 #undef arma_pure 00074 #undef arma_const 00075 #undef arma_inline 00076 #undef arma_aligned 00077 #undef arma_warn_unused 00078 #undef arma_deprecated 00079 00080 #define arma_pure __attribute__((pure)) 00081 #define arma_const __attribute__((const)) 00082 #define arma_inline inline __attribute__((always_inline)) 00083 #define arma_aligned __attribute__((aligned)) 00084 #define arma_warn_unused __attribute__((warn_unused_result)) 00085 #define arma_deprecated __attribute__((deprecated)) 00086 00087 #if (ARMA_GCC_VERSION >= 40200) 00088 #if defined(_GLIBCXX_USE_C99_MATH_TR1) && defined(_GLIBCXX_USE_C99_COMPLEX_TR1) 00089 #define ARMA_HAVE_STD_TR1 00090 #endif 00091 #endif 00092 00093 #if defined(__GXX_EXPERIMENTAL_CXX0X__) 00094 #undef ARMA_HAVE_STD_TR1 00095 00096 #if !defined(ARMA_USE_CXX11) 00097 #define ARMA_USE_CXX11 00098 #endif 00099 #endif 00100 00101 #if defined(__clang__) 00102 #undef ARMA_HAVE_STD_TR1 00103 #endif 00104 00105 #if (ARMA_GCC_VERSION >= 40300) 00106 #undef arma_hot 00107 #undef arma_cold 00108 00109 #define arma_hot __attribute__((hot)) 00110 #define arma_cold __attribute__((cold)) 00111 #endif 00112 00113 #undef ARMA_GCC_VERSION 00114 00115 #endif 00116 00117 00118 #if defined(_MSC_VER) 00119 00120 #if (_MSC_VER < 1500) 00121 #error "*** Need a newer compiler ***" 00122 #endif 00123 00124 #undef ARMA_GOOD_COMPILER 00125 #undef ARMA_HAVE_STD_ISFINITE 00126 #undef ARMA_HAVE_STD_SNPRINTF 00127 #undef ARMA_HAVE_LOG1P 00128 #undef ARMA_HAVE_STD_ISINF 00129 #undef ARMA_HAVE_STD_ISNAN 00130 #undef ARMA_HAVE_STD_TR1 00131 00132 #undef arma_inline 00133 #define arma_inline inline __forceinline 00134 00135 // #if (_MSC_VER >= 1400) 00136 // #undef arma_aligned 00137 // #define arma_aligned __declspec(align(16)) 00138 // #endif 00139 00140 #endif 00141 00142 00143 #if defined(__CUDACC__) 00144 #undef ARMA_HAVE_STD_ISFINITE 00145 #undef ARMA_HAVE_STD_SNPRINTF 00146 #undef ARMA_HAVE_LOG1P 00147 #undef ARMA_HAVE_STD_ISINF 00148 #undef ARMA_HAVE_STD_ISNAN 00149 #undef ARMA_HAVE_STD_TR1 00150 #endif 00151 00152 00153 #if defined(__SUNPRO_CC) 00154 #undef ARMA_HAVE_STD_ISFINITE 00155 #undef ARMA_HAVE_STD_SNPRINTF 00156 #undef ARMA_HAVE_LOG1P 00157 #undef ARMA_HAVE_STD_ISINF 00158 #undef ARMA_HAVE_STD_ISNAN 00159 #undef ARMA_HAVE_STD_TR1 00160 #endif