compiler_setup.hpp
Go to the documentation of this file.
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


armadillo_matrix
Author(s): Conrad Sanderson - NICTA (www.nicta.com.au), (Wrapper by Sjoerd van den Dries)
autogenerated on Tue Jan 7 2014 11:42:03