Chris@49
|
1 // Copyright (C) 2008-2013 NICTA (www.nicta.com.au)
|
Chris@49
|
2 // Copyright (C) 2008-2013 Conrad Sanderson
|
Chris@49
|
3 //
|
Chris@49
|
4 // This Source Code Form is subject to the terms of the Mozilla Public
|
Chris@49
|
5 // License, v. 2.0. If a copy of the MPL was not distributed with this
|
Chris@49
|
6 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
Chris@49
|
7
|
Chris@49
|
8
|
Chris@49
|
9
|
Chris@49
|
10 #if !defined(ARMA_USE_LAPACK)
|
Chris@49
|
11 #cmakedefine ARMA_USE_LAPACK
|
Chris@49
|
12 //// Uncomment the above line if you have LAPACK or a high-speed replacement for LAPACK,
|
Chris@49
|
13 //// such as Intel MKL, AMD ACML, or the Accelerate framework.
|
Chris@49
|
14 //// LAPACK is required for matrix decompositions (eg. SVD) and matrix inverse.
|
Chris@49
|
15 #endif
|
Chris@49
|
16
|
Chris@49
|
17 #if !defined(ARMA_USE_BLAS)
|
Chris@49
|
18 #cmakedefine ARMA_USE_BLAS
|
Chris@49
|
19 //// Uncomment the above line if you have BLAS or a high-speed replacement for BLAS,
|
Chris@49
|
20 //// such as OpenBLAS, GotoBLAS, Intel MKL, AMD ACML, or the Accelerate framework.
|
Chris@49
|
21 //// BLAS is used for matrix multiplication.
|
Chris@49
|
22 //// Without BLAS, matrix multiplication will still work, but might be slower.
|
Chris@49
|
23 #endif
|
Chris@49
|
24
|
Chris@49
|
25 #cmakedefine ARMA_USE_WRAPPER
|
Chris@49
|
26 //// Comment out the above line if you're getting linking errors when compiling your programs,
|
Chris@49
|
27 //// or if you prefer to directly link with LAPACK and/or BLAS.
|
Chris@49
|
28 //// You will then need to link your programs directly with -llapack -lblas instead of -larmadillo
|
Chris@49
|
29
|
Chris@49
|
30 // #define ARMA_BLAS_CAPITALS
|
Chris@49
|
31 //// Uncomment the above line if your BLAS and LAPACK libraries have capitalised function names (eg. ACML on 64-bit Windows)
|
Chris@49
|
32
|
Chris@49
|
33 #define ARMA_BLAS_UNDERSCORE
|
Chris@49
|
34 //// Uncomment the above line if your BLAS and LAPACK libraries have function names with a trailing underscore.
|
Chris@49
|
35 //// Conversely, comment it out if the function names don't have a trailing underscore.
|
Chris@49
|
36
|
Chris@49
|
37 // #define ARMA_BLAS_LONG
|
Chris@49
|
38 //// Uncomment the above line if your BLAS and LAPACK libraries use "long" instead of "int"
|
Chris@49
|
39
|
Chris@49
|
40 // #define ARMA_BLAS_LONG_LONG
|
Chris@49
|
41 //// Uncomment the above line if your BLAS and LAPACK libraries use "long long" instead of "int"
|
Chris@49
|
42
|
Chris@49
|
43 // #define ARMA_USE_TBB_ALLOC
|
Chris@49
|
44 //// Uncomment the above line if you want to use Intel TBB scalable_malloc() and scalable_free() instead of standard malloc() and free()
|
Chris@49
|
45
|
Chris@49
|
46 // #define ARMA_USE_MKL_ALLOC
|
Chris@49
|
47 //// Uncomment the above line if you want to use Intel MKL mkl_malloc() and mkl_free() instead of standard malloc() and free()
|
Chris@49
|
48
|
Chris@49
|
49 #cmakedefine ARMA_USE_ATLAS
|
Chris@49
|
50 #define ARMA_ATLAS_INCLUDE_DIR ${ARMA_ATLAS_INCLUDE_DIR}/
|
Chris@49
|
51 //// If you're using ATLAS and the compiler can't find cblas.h and/or clapack.h
|
Chris@49
|
52 //// uncomment the above define and specify the appropriate include directory.
|
Chris@49
|
53 //// Make sure the directory has a trailing /
|
Chris@49
|
54
|
Chris@49
|
55 #if !defined(ARMA_64BIT_WORD)
|
Chris@49
|
56 // #define ARMA_64BIT_WORD
|
Chris@49
|
57 //// Uncomment the above line if you require matrices/vectors capable of holding more than 4 billion elements.
|
Chris@49
|
58 //// Your machine and compiler must have support for 64 bit integers (eg. via "long" or "long long")
|
Chris@49
|
59 #endif
|
Chris@49
|
60
|
Chris@49
|
61 #if !defined(ARMA_USE_CXX11)
|
Chris@49
|
62 // #define ARMA_USE_CXX11
|
Chris@49
|
63 //// Uncomment the above line if you have a C++ compiler that supports the C++11 standard
|
Chris@49
|
64 //// This will enable additional features, such as use of initialiser lists
|
Chris@49
|
65 #endif
|
Chris@49
|
66
|
Chris@49
|
67 #if !defined(ARMA_USE_U64S64)
|
Chris@49
|
68 // #define ARMA_USE_U64S64
|
Chris@49
|
69 //// Uncomment the above line if you require u64 and s64 integer types.
|
Chris@49
|
70 //// Your machine and compiler must have support for 64 bit integers (eg. via "long" or "long long").
|
Chris@49
|
71 //// Note that ARMA_USE_U64S64 is automatically enabled when ARMA_64BIT_WORD or ARMA_USE_CXX11 are enabled
|
Chris@49
|
72 #endif
|
Chris@49
|
73
|
Chris@49
|
74 #if !defined(ARMA_USE_HDF5)
|
Chris@49
|
75 #cmakedefine ARMA_USE_HDF5
|
Chris@49
|
76 //// Uncomment the above line if you want the ability to save and load matrices stored in the HDF5 format;
|
Chris@49
|
77 //// the hdf5.h header file must be available on your system and you will need to link with the hdf5 library (eg. -lhdf5)
|
Chris@49
|
78 #endif
|
Chris@49
|
79
|
Chris@49
|
80 #if !defined(ARMA_MAT_PREALLOC)
|
Chris@49
|
81 #define ARMA_MAT_PREALLOC 16
|
Chris@49
|
82 #endif
|
Chris@49
|
83 //// This is the number of preallocated elements used by matrices and vectors;
|
Chris@49
|
84 //// it must be an integer that is at least 1.
|
Chris@49
|
85 //// If you mainly use lots of very small vectors (eg. <= 4 elements),
|
Chris@49
|
86 //// change the number to the size of your vectors.
|
Chris@49
|
87
|
Chris@49
|
88 #if !defined(ARMA_SPMAT_CHUNKSIZE)
|
Chris@49
|
89 #define ARMA_SPMAT_CHUNKSIZE 256
|
Chris@49
|
90 #endif
|
Chris@49
|
91 //// This is the minimum increase in the amount of memory (in terms of elements) allocated by a sparse matrix;
|
Chris@49
|
92 //// it must be an integer that is at least 1.
|
Chris@49
|
93 //// The minimum recommended size is 16.
|
Chris@49
|
94
|
Chris@49
|
95 // #define ARMA_NO_DEBUG
|
Chris@49
|
96 //// Uncomment the above line if you want to disable all run-time checks.
|
Chris@49
|
97 //// This will result in faster code, but you first need to make sure that your code runs correctly!
|
Chris@49
|
98 //// We strongly recommend to have the run-time checks enabled during development,
|
Chris@49
|
99 //// as this greatly aids in finding mistakes in your code, and hence speeds up development.
|
Chris@49
|
100 //// We recommend that run-time checks be disabled _only_ for the shipped version of your program.
|
Chris@49
|
101
|
Chris@49
|
102 // #define ARMA_EXTRA_DEBUG
|
Chris@49
|
103 //// Uncomment the above line if you want to see the function traces of how Armadillo evaluates expressions.
|
Chris@49
|
104 //// This is mainly useful for debugging of the library.
|
Chris@49
|
105
|
Chris@49
|
106
|
Chris@49
|
107 // #define ARMA_USE_BOOST
|
Chris@49
|
108 // #define ARMA_USE_BOOST_DATE
|
Chris@49
|
109
|
Chris@49
|
110
|
Chris@49
|
111 #if !defined(ARMA_DEFAULT_OSTREAM)
|
Chris@49
|
112 #define ARMA_DEFAULT_OSTREAM std::cout
|
Chris@49
|
113 #endif
|
Chris@49
|
114
|
Chris@49
|
115 #define ARMA_PRINT_LOGIC_ERRORS
|
Chris@49
|
116 #define ARMA_PRINT_RUNTIME_ERRORS
|
Chris@49
|
117 //#define ARMA_PRINT_HDF5_ERRORS
|
Chris@49
|
118
|
Chris@49
|
119 #cmakedefine ARMA_HAVE_STD_ISFINITE
|
Chris@49
|
120 #cmakedefine ARMA_HAVE_STD_ISINF
|
Chris@49
|
121 #cmakedefine ARMA_HAVE_STD_ISNAN
|
Chris@49
|
122 #cmakedefine ARMA_HAVE_STD_SNPRINTF
|
Chris@49
|
123
|
Chris@49
|
124 #cmakedefine ARMA_HAVE_LOG1P
|
Chris@49
|
125 #cmakedefine ARMA_HAVE_GETTIMEOFDAY
|
Chris@49
|
126
|
Chris@49
|
127
|
Chris@49
|
128
|
Chris@49
|
129 #if defined(ARMA_DONT_USE_LAPACK)
|
Chris@49
|
130 #undef ARMA_USE_LAPACK
|
Chris@49
|
131 #endif
|
Chris@49
|
132
|
Chris@49
|
133 #if defined(ARMA_DONT_USE_BLAS)
|
Chris@49
|
134 #undef ARMA_USE_BLAS
|
Chris@49
|
135 #endif
|
Chris@49
|
136
|
Chris@49
|
137 #if defined(ARMA_DONT_USE_WRAPPER)
|
Chris@49
|
138 #undef ARMA_USE_WRAPPER
|
Chris@49
|
139 #endif
|
Chris@49
|
140
|
Chris@49
|
141 #if defined(ARMA_DONT_USE_ATLAS)
|
Chris@49
|
142 #undef ARMA_USE_ATLAS
|
Chris@49
|
143 #undef ARMA_ATLAS_INCLUDE_DIR
|
Chris@49
|
144 #endif
|
Chris@49
|
145
|
Chris@49
|
146 #if defined(ARMA_DONT_USE_CXX11)
|
Chris@49
|
147 #undef ARMA_USE_CXX11
|
Chris@49
|
148 #endif
|
Chris@49
|
149
|
Chris@49
|
150 #if defined(ARMA_DONT_USE_HDF5)
|
Chris@49
|
151 #undef ARMA_USE_HDF5
|
Chris@49
|
152 #endif
|
Chris@49
|
153
|
Chris@49
|
154 #if defined(ARMA_DONT_USE_BOOST)
|
Chris@49
|
155 #undef ARMA_USE_BOOST
|
Chris@49
|
156 #undef ARMA_USE_BOOST_DATE
|
Chris@49
|
157 #endif
|
Chris@49
|
158
|
Chris@49
|
159 #if defined(ARMA_DONT_PRINT_LOGIC_ERRORS)
|
Chris@49
|
160 #undef ARMA_PRINT_LOGIC_ERRORS
|
Chris@49
|
161 #endif
|
Chris@49
|
162
|
Chris@49
|
163 #if defined(ARMA_DONT_PRINT_RUNTIME_ERRORS)
|
Chris@49
|
164 #undef ARMA_PRINT_RUNTIME_ERRORS
|
Chris@49
|
165 #endif
|