compiler_setup.hpp
Go to the documentation of this file.
1 // Copyright (C) 2008-2011 NICTA (www.nicta.com.au)
2 // Copyright (C) 2008-2011 Conrad Sanderson
3 //
4 // This file is part of the Armadillo C++ library.
5 // It is provided without any warranty of fitness
6 // for any purpose. You can redistribute this file
7 // and/or modify it under the terms of the GNU
8 // Lesser General Public License (LGPL) as published
9 // by the Free Software Foundation, either version 3
10 // of the License or (at your option) any later version.
11 // (see http://www.opensource.org/licenses for more info)
12 
13 
14 
15 #define arma_hot
16 #define arma_cold
17 #define arma_pure
18 #define arma_const
19 #define arma_inline inline
20 #define arma_aligned
21 #define arma_warn_unused
22 #define arma_deprecated
23 #define arma_ignore(variable) ((void)(variable))
24 
25 
26 #if defined(ARMA_BLAS_UNDERSCORE)
27  #define arma_fortran2_noprefix(function) function##_
28  #define arma_fortran2_prefix(function) wrapper_##function##_
29 #else
30  #define arma_fortran2_prefix(function) wrapper_##function
31  #define arma_fortran2_noprefix(function) function
32 #endif
33 
34 #if defined(ARMA_USE_WRAPPER)
35  #define arma_fortran(function) arma_fortran2_prefix(function)
36  #define arma_atlas(function) wrapper_##function
37 #else
38  #define arma_fortran(function) arma_fortran2_noprefix(function)
39  #define arma_atlas(function) function
40 #endif
41 
42 #define arma_fortran_prefix(function) arma_fortran2_prefix(function)
43 #define arma_fortran_noprefix(function) arma_fortran2_noprefix(function)
44 
45 
46 #define ARMA_INCFILE_WRAP(x) <x>
47 
48 
49 #if defined(__INTEL_COMPILER)
50 
51  #if (__INTEL_COMPILER < 1000)
52  #error "*** Need a newer compiler ***"
53  #endif
54 
55  #define ARMA_GOOD_COMPILER
56  #undef ARMA_HAVE_STD_TR1
57 
58  #if (__INTEL_COMPILER <= 1110)
59  #undef ARMA_HAVE_STD_ISFINITE
60  #endif
61 
62 #elif defined(__GNUG__)
63 
64  #if (__GNUC__ < 4)
65  #error "*** Need a newer compiler ***"
66  #endif
67 
68  #define ARMA_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
69 
70  #define ARMA_GOOD_COMPILER
71  #undef ARMA_HAVE_STD_TR1
72 
73  #undef arma_pure
74  #undef arma_const
75  #undef arma_inline
76  #undef arma_aligned
77  #undef arma_warn_unused
78  #undef arma_deprecated
79 
80  #define arma_pure __attribute__((pure))
81  #define arma_const __attribute__((const))
82  #define arma_inline inline __attribute__((always_inline))
83  #define arma_aligned __attribute__((aligned))
84  #define arma_warn_unused __attribute__((warn_unused_result))
85  #define arma_deprecated __attribute__((deprecated))
86 
87  #if (ARMA_GCC_VERSION >= 40200)
88  #if defined(_GLIBCXX_USE_C99_MATH_TR1) && defined(_GLIBCXX_USE_C99_COMPLEX_TR1)
89  #define ARMA_HAVE_STD_TR1
90  #endif
91  #endif
92 
93  #if defined(__GXX_EXPERIMENTAL_CXX0X__)
94  #undef ARMA_HAVE_STD_TR1
95 
96  #if !defined(ARMA_USE_CXX11)
97  #define ARMA_USE_CXX11
98  #endif
99  #endif
100 
101  #if defined(__clang__)
102  #undef ARMA_HAVE_STD_TR1
103  #endif
104 
105  #if (ARMA_GCC_VERSION >= 40300)
106  #undef arma_hot
107  #undef arma_cold
108 
109  #define arma_hot __attribute__((hot))
110  #define arma_cold __attribute__((cold))
111  #endif
112 
113  #undef ARMA_GCC_VERSION
114 
115 #endif
116 
117 
118 #if defined(_MSC_VER)
119 
120  #if (_MSC_VER < 1500)
121  #error "*** Need a newer compiler ***"
122  #endif
123 
124  #undef ARMA_GOOD_COMPILER
125  #undef ARMA_HAVE_STD_ISFINITE
126  #undef ARMA_HAVE_STD_SNPRINTF
127  #undef ARMA_HAVE_LOG1P
128  #undef ARMA_HAVE_STD_ISINF
129  #undef ARMA_HAVE_STD_ISNAN
130  #undef ARMA_HAVE_STD_TR1
131 
132  #undef arma_inline
133  #define arma_inline inline __forceinline
134 
135  // #if (_MSC_VER >= 1400)
136  // #undef arma_aligned
137  // #define arma_aligned __declspec(align(16))
138  // #endif
139 
140 #endif
141 
142 
143 #if defined(__CUDACC__)
144  #undef ARMA_HAVE_STD_ISFINITE
145  #undef ARMA_HAVE_STD_SNPRINTF
146  #undef ARMA_HAVE_LOG1P
147  #undef ARMA_HAVE_STD_ISINF
148  #undef ARMA_HAVE_STD_ISNAN
149  #undef ARMA_HAVE_STD_TR1
150 #endif
151 
152 
153 #if defined(__SUNPRO_CC)
154  #undef ARMA_HAVE_STD_ISFINITE
155  #undef ARMA_HAVE_STD_SNPRINTF
156  #undef ARMA_HAVE_LOG1P
157  #undef ARMA_HAVE_STD_ISINF
158  #undef ARMA_HAVE_STD_ISNAN
159  #undef ARMA_HAVE_STD_TR1
160 #endif


armadillo_matrix
Author(s):
autogenerated on Fri Apr 16 2021 02:31:56