summaryrefslogtreecommitdiffstats
path: root/src/armadillo/include/armadillo_bits/config.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armadillo/include/armadillo_bits/config.hpp')
-rw-r--r--src/armadillo/include/armadillo_bits/config.hpp351
1 files changed, 351 insertions, 0 deletions
diff --git a/src/armadillo/include/armadillo_bits/config.hpp b/src/armadillo/include/armadillo_bits/config.hpp
new file mode 100644
index 0000000..6d7874a
--- /dev/null
+++ b/src/armadillo/include/armadillo_bits/config.hpp
@@ -0,0 +1,351 @@
+// SPDX-License-Identifier: Apache-2.0
+//
+// Copyright 2008-2016 Conrad Sanderson (http://conradsanderson.id.au)
+// Copyright 2008-2016 National ICT Australia (NICTA)
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ------------------------------------------------------------------------
+
+
+
+#if !defined(ARMA_WARN_LEVEL)
+ #define ARMA_WARN_LEVEL 2
+#endif
+//// The level of warning messages printed to ARMA_CERR_STREAM.
+//// Must be an integer >= 0. The default value is 2.
+//// 0 = no warnings; generally not recommended
+//// 1 = only critical warnings about arguments and/or data which are likely to lead to incorrect results
+//// 2 = as per level 1, and warnings about poorly conditioned systems (low rcond) detected by solve(), spsolve(), etc
+//// 3 = as per level 2, and warnings about failed decompositions, failed saving/loading, etc
+
+// #define ARMA_USE_WRAPPER
+//// Comment out the above line if you prefer to directly link with BLAS, LAPACK, etc
+//// instead of the Armadillo runtime library.
+//// You will need to link your programs directly with -lopenblas -llapack instead of -larmadillo
+
+#if !defined(ARMA_USE_LAPACK)
+#define ARMA_USE_LAPACK
+//// Comment out the above line if you don't have LAPACK or a high-speed replacement for LAPACK,
+//// such as OpenBLAS, Intel MKL, or the Accelerate framework.
+//// LAPACK is required for matrix decompositions (eg. SVD) and matrix inverse.
+#endif
+
+#if !defined(ARMA_USE_BLAS)
+#define ARMA_USE_BLAS
+//// Comment out the above line if you don't have BLAS or a high-speed replacement for BLAS,
+//// such as OpenBLAS, Intel MKL, or the Accelerate framework.
+//// BLAS is used for matrix multiplication.
+//// Without BLAS, matrix multiplication will still work, but might be slower.
+#endif
+
+#if !defined(ARMA_USE_NEWARP)
+#define ARMA_USE_NEWARP
+//// Uncomment the above line to enable the built-in partial emulation of ARPACK.
+//// This is used for eigen decompositions of real (non-complex) sparse matrices, eg. eigs_sym(), svds()
+#endif
+
+#if !defined(ARMA_USE_ARPACK)
+// #define ARMA_USE_ARPACK
+//// Uncomment the above line if you have ARPACK or a high-speed replacement for ARPACK.
+//// ARPACK is required for eigen decompositions of complex sparse matrices
+#endif
+
+#if !defined(ARMA_USE_SUPERLU)
+// #define ARMA_USE_SUPERLU
+//// Uncomment the above line if you have SuperLU.
+//// SuperLU is used for solving sparse linear systems via spsolve()
+//// Caveat: only SuperLU version 5.2 can be used!
+#endif
+
+#if !defined(ARMA_SUPERLU_INCLUDE_DIR)
+// #define ARMA_SUPERLU_INCLUDE_DIR /usr/include/
+//// If you're using SuperLU and want to explicitly include the SuperLU headers,
+//// uncomment the above define and specify the appropriate include directory.
+//// Make sure the directory has a trailing /
+#endif
+
+#if !defined(ARMA_USE_ATLAS)
+// #define ARMA_USE_ATLAS
+//// NOTE: support for ATLAS is deprecated and will be removed.
+#endif
+
+#if !defined(ARMA_USE_HDF5)
+// #define ARMA_USE_HDF5
+//// Uncomment the above line to allow the ability to save and load matrices stored in HDF5 format;
+//// the hdf5.h header file must be available on your system,
+//// and you will need to link with the hdf5 library (eg. -lhdf5)
+#endif
+
+#if !defined(ARMA_USE_FFTW3)
+// #define ARMA_USE_FFTW3
+//// Uncomment the above line to allow the use of the FFTW3 library by fft() and ifft() functions;
+//// you will need to link with the FFTW3 library (eg. -lfftw3)
+#endif
+
+#if defined(ARMA_USE_FFTW)
+ #error "use ARMA_USE_FFTW3 instead of ARMA_USE_FFTW"
+#endif
+
+// #define ARMA_BLAS_CAPITALS
+//// Uncomment the above line if your BLAS and LAPACK libraries have capitalised function names
+
+#define ARMA_BLAS_UNDERSCORE
+//// Uncomment the above line if your BLAS and LAPACK libraries have function names with a trailing underscore.
+//// Conversely, comment it out if the function names don't have a trailing underscore.
+
+// #define ARMA_BLAS_LONG
+//// Uncomment the above line if your BLAS and LAPACK libraries use "long" instead of "int"
+
+// #define ARMA_BLAS_LONG_LONG
+//// Uncomment the above line if your BLAS and LAPACK libraries use "long long" instead of "int"
+
+// #define ARMA_BLAS_NOEXCEPT
+//// Uncomment the above line if you require BLAS functions to have the 'noexcept' specification
+
+// #define ARMA_LAPACK_NOEXCEPT
+//// Uncomment the above line if you require LAPACK functions to have the 'noexcept' specification
+
+#define ARMA_USE_FORTRAN_HIDDEN_ARGS
+//// Comment out the above line to call BLAS and LAPACK functions without using so-called "hidden" arguments.
+//// Fortran functions (compiled without a BIND(C) declaration) that have char arguments
+//// (like many BLAS and LAPACK functions) also have associated "hidden" arguments.
+//// For each char argument, the corresponding "hidden" argument specifies the number of characters.
+//// These "hidden" arguments are typically tacked onto the end of function definitions.
+
+// #define ARMA_USE_TBB_ALLOC
+//// Uncomment the above line to use Intel TBB scalable_malloc() and scalable_free() instead of standard malloc() and free()
+
+// #define ARMA_USE_MKL_ALLOC
+//// Uncomment the above line to use Intel MKL mkl_malloc() and mkl_free() instead of standard malloc() and free()
+
+// #define ARMA_USE_MKL_TYPES
+//// Uncomment the above line to use Intel MKL types for complex numbers.
+//// You will need to include appropriate MKL headers before the Armadillo header.
+//// You may also need to enable or disable the following options:
+//// ARMA_BLAS_LONG, ARMA_BLAS_LONG_LONG, ARMA_USE_FORTRAN_HIDDEN_ARGS
+
+#if !defined(ARMA_USE_OPENMP)
+// #define ARMA_USE_OPENMP
+//// Uncomment the above line to forcefully enable use of OpenMP for parallelisation.
+//// Note that ARMA_USE_OPENMP is automatically enabled when a compiler supporting OpenMP 3.1 is detected.
+#endif
+
+#if !defined(ARMA_64BIT_WORD)
+// #define ARMA_64BIT_WORD
+//// Uncomment the above line if you require matrices/vectors capable of holding more than 4 billion elements.
+//// Note that ARMA_64BIT_WORD is automatically enabled when std::size_t has 64 bits and ARMA_32BIT_WORD is not defined.
+#endif
+
+#if !defined(ARMA_OPTIMISE_BAND)
+ #define ARMA_OPTIMISE_BAND
+ //// Comment out the above line to disable optimised handling
+ //// of band matrices by solve() and chol()
+#endif
+
+#if !defined(ARMA_OPTIMISE_SYM)
+ #define ARMA_OPTIMISE_SYM
+ //// Comment out the above line to disable optimised handling
+ //// of symmetric/hermitian matrices by various functions:
+ //// solve(), inv(), pinv(), expmat(), logmat(), sqrtmat(), rcond(), rank()
+#endif
+
+#if !defined(ARMA_OPTIMISE_INVEXPR)
+ #define ARMA_OPTIMISE_INVEXPR
+ //// Comment out the above line to disable optimised handling
+ //// of inv() and inv_sympd() within compound expressions
+#endif
+
+#if !defined(ARMA_CHECK_NONFINITE)
+ #define ARMA_CHECK_NONFINITE
+ //// Comment out the above line to disable checking for nonfinite matrices
+#endif
+
+#if !defined(ARMA_MAT_PREALLOC)
+ #define ARMA_MAT_PREALLOC 16
+#endif
+//// This is the number of preallocated elements used by matrices and vectors;
+//// it must be an integer that is at least 1.
+//// If you mainly use lots of very small vectors (eg. <= 4 elements),
+//// change the number to the size of your vectors.
+
+#if !defined(ARMA_OPENMP_THRESHOLD)
+ #define ARMA_OPENMP_THRESHOLD 320
+#endif
+//// The minimum number of elements in a matrix to allow OpenMP based parallelisation;
+//// it must be an integer that is at least 1.
+
+#if !defined(ARMA_OPENMP_THREADS)
+ #define ARMA_OPENMP_THREADS 8
+#endif
+//// The maximum number of threads to use for OpenMP based parallelisation;
+//// it must be an integer that is at least 1.
+
+// #define ARMA_NO_DEBUG
+//// Uncomment the above line to disable all run-time checks. NOT RECOMMENDED.
+//// It is strongly recommended that run-time checks are enabled during development,
+//// as this greatly aids in finding mistakes in your code.
+
+// #define ARMA_EXTRA_DEBUG
+//// Uncomment the above line to see the function traces of how Armadillo evaluates expressions.
+//// This is mainly useful for debugging of the library.
+
+
+#if defined(ARMA_EXTRA_DEBUG)
+ #undef ARMA_NO_DEBUG
+ #undef ARMA_WARN_LEVEL
+ #define ARMA_WARN_LEVEL 3
+#endif
+
+
+#if defined(ARMA_DEFAULT_OSTREAM)
+ #pragma message ("WARNING: support for ARMA_DEFAULT_OSTREAM is deprecated and will be removed;")
+ #pragma message ("WARNING: use ARMA_COUT_STREAM and ARMA_CERR_STREAM instead")
+#endif
+
+
+#if !defined(ARMA_COUT_STREAM)
+ #if defined(ARMA_DEFAULT_OSTREAM)
+ // for compatibility with earlier versions of Armadillo
+ #define ARMA_COUT_STREAM ARMA_DEFAULT_OSTREAM
+ #else
+ #define ARMA_COUT_STREAM std::cout
+ #endif
+#endif
+
+#if !defined(ARMA_CERR_STREAM)
+ #if defined(ARMA_DEFAULT_OSTREAM)
+ // for compatibility with earlier versions of Armadillo
+ #define ARMA_CERR_STREAM ARMA_DEFAULT_OSTREAM
+ #else
+ #define ARMA_CERR_STREAM std::cerr
+ #endif
+#endif
+
+
+#if !defined(ARMA_PRINT_EXCEPTIONS)
+ // #define ARMA_PRINT_EXCEPTIONS
+ #if defined(ARMA_PRINT_EXCEPTIONS_INTERNAL)
+ #undef ARMA_PRINT_EXCEPTIONS
+ #define ARMA_PRINT_EXCEPTIONS
+ #endif
+#endif
+
+#if defined(ARMA_DONT_USE_LAPACK)
+ #undef ARMA_USE_LAPACK
+#endif
+
+#if defined(ARMA_DONT_USE_BLAS)
+ #undef ARMA_USE_BLAS
+#endif
+
+#if defined(ARMA_DONT_USE_NEWARP) || !defined(ARMA_USE_LAPACK)
+ #undef ARMA_USE_NEWARP
+#endif
+
+#if defined(ARMA_DONT_USE_ARPACK)
+ #undef ARMA_USE_ARPACK
+#endif
+
+#if defined(ARMA_DONT_USE_SUPERLU)
+ #undef ARMA_USE_SUPERLU
+ #undef ARMA_SUPERLU_INCLUDE_DIR
+#endif
+
+#if defined(ARMA_DONT_USE_ATLAS)
+ #undef ARMA_USE_ATLAS
+#endif
+
+#if defined(ARMA_DONT_USE_HDF5)
+ #undef ARMA_USE_HDF5
+#endif
+
+#if defined(ARMA_DONT_USE_FFTW3)
+ #undef ARMA_USE_FFTW3
+#endif
+
+#if defined(ARMA_DONT_USE_WRAPPER)
+ #undef ARMA_USE_WRAPPER
+#endif
+
+#if defined(ARMA_DONT_USE_FORTRAN_HIDDEN_ARGS)
+ #undef ARMA_USE_FORTRAN_HIDDEN_ARGS
+#endif
+
+#if !defined(ARMA_DONT_USE_STD_MUTEX)
+ // #define ARMA_DONT_USE_STD_MUTEX
+ //// Uncomment the above line to disable use of std::mutex
+#endif
+
+// for compatibility with earlier versions of Armadillo
+#if defined(ARMA_DONT_USE_CXX11_MUTEX)
+ #pragma message ("WARNING: support for ARMA_DONT_USE_CXX11_MUTEX is deprecated and will be removed;")
+ #pragma message ("WARNING: use ARMA_DONT_USE_STD_MUTEX instead")
+ #undef ARMA_DONT_USE_STD_MUTEX
+ #define ARMA_DONT_USE_STD_MUTEX
+#endif
+
+#if defined(ARMA_DONT_USE_OPENMP)
+ #undef ARMA_USE_OPENMP
+#endif
+
+#if defined(ARMA_32BIT_WORD)
+ #undef ARMA_64BIT_WORD
+#endif
+
+#if defined(ARMA_DONT_OPTIMISE_BAND) || defined(ARMA_DONT_OPTIMISE_SOLVE_BAND)
+ #undef ARMA_OPTIMISE_BAND
+#endif
+
+#if defined(ARMA_DONT_OPTIMISE_SYM) || defined(ARMA_DONT_OPTIMISE_SYMPD) || defined(ARMA_DONT_OPTIMISE_SOLVE_SYMPD)
+ #undef ARMA_OPTIMISE_SYM
+#endif
+
+#if defined(ARMA_DONT_OPTIMISE_INVEXPR)
+ #undef ARMA_OPTIMISE_INVEXPR
+#endif
+
+#if defined(ARMA_DONT_CHECK_NONFINITE)
+ #undef ARMA_CHECK_NONFINITE
+#endif
+
+#if defined(ARMA_DONT_PRINT_ERRORS)
+ #pragma message ("INFO: support for ARMA_DONT_PRINT_ERRORS option has been removed")
+
+ #if defined(ARMA_PRINT_EXCEPTIONS)
+ #pragma message ("INFO: suggest to use ARMA_WARN_LEVEL and ARMA_DONT_PRINT_EXCEPTIONS options instead")
+ #else
+ #pragma message ("INFO: suggest to use ARMA_WARN_LEVEL option instead")
+ #endif
+
+ #pragma message ("INFO: see the documentation for details")
+#endif
+
+#if defined(ARMA_DONT_PRINT_EXCEPTIONS)
+ #undef ARMA_PRINT_EXCEPTIONS
+#endif
+
+#if !defined(ARMA_DONT_ZERO_INIT)
+ // #define ARMA_DONT_ZERO_INIT
+ //// Uncomment the above line to disable initialising elements to zero during construction of dense matrices and cubes
+#endif
+
+#if defined(ARMA_NO_CRIPPLED_LAPACK)
+ #undef ARMA_CRIPPLED_LAPACK
+#endif
+
+
+// if Armadillo was installed on this system via CMake and ARMA_USE_WRAPPER is not defined,
+// ARMA_AUX_LIBS lists the libraries required by Armadillo on this system, and
+// ARMA_AUX_INCDIRS lists the include directories required by Armadillo on this system.
+// Do not use these unless you know what you are doing.
+#define ARMA_AUX_LIBS
+#define ARMA_AUX_INCDIRS