Chris@49: // Copyright (C) 2008-2013 NICTA (www.nicta.com.au) Chris@49: // Copyright (C) 2008-2013 Conrad Sanderson Chris@49: // Chris@49: // This Source Code Form is subject to the terms of the Mozilla Public Chris@49: // License, v. 2.0. If a copy of the MPL was not distributed with this Chris@49: // file, You can obtain one at http://mozilla.org/MPL/2.0/. Chris@49: Chris@49: Chris@49: Chris@49: #if !defined(ARMA_USE_LAPACK) Chris@49: // #define ARMA_USE_LAPACK Chris@49: //// Uncomment the above line if you have LAPACK or a high-speed replacement for LAPACK, Chris@49: //// such as Intel MKL, AMD ACML, or the Accelerate framework. Chris@49: //// LAPACK is required for matrix decompositions (eg. SVD) and matrix inverse. Chris@49: #endif Chris@49: Chris@49: #if !defined(ARMA_USE_BLAS) Chris@49: // #define ARMA_USE_BLAS Chris@49: //// Uncomment the above line if you have BLAS or a high-speed replacement for BLAS, Chris@49: //// such as OpenBLAS, GotoBLAS, Intel MKL, AMD ACML, or the Accelerate framework. Chris@49: //// BLAS is used for matrix multiplication. Chris@49: //// Without BLAS, matrix multiplication will still work, but might be slower. Chris@49: #endif Chris@49: Chris@49: // #define ARMA_USE_WRAPPER Chris@49: //// Comment out the above line if you're getting linking errors when compiling your programs, Chris@49: //// or if you prefer to directly link with LAPACK and/or BLAS. Chris@49: //// You will then need to link your programs directly with -llapack -lblas instead of -larmadillo Chris@49: Chris@49: // #define ARMA_BLAS_CAPITALS Chris@49: //// Uncomment the above line if your BLAS and LAPACK libraries have capitalised function names (eg. ACML on 64-bit Windows) Chris@49: Chris@49: #define ARMA_BLAS_UNDERSCORE Chris@49: //// Uncomment the above line if your BLAS and LAPACK libraries have function names with a trailing underscore. Chris@49: //// Conversely, comment it out if the function names don't have a trailing underscore. Chris@49: Chris@49: // #define ARMA_BLAS_LONG Chris@49: //// Uncomment the above line if your BLAS and LAPACK libraries use "long" instead of "int" Chris@49: Chris@49: // #define ARMA_BLAS_LONG_LONG Chris@49: //// Uncomment the above line if your BLAS and LAPACK libraries use "long long" instead of "int" Chris@49: Chris@49: // #define ARMA_USE_TBB_ALLOC Chris@49: //// Uncomment the above line if you want to use Intel TBB scalable_malloc() and scalable_free() instead of standard malloc() and free() Chris@49: Chris@49: // #define ARMA_USE_MKL_ALLOC Chris@49: //// Uncomment the above line if you want to use Intel MKL mkl_malloc() and mkl_free() instead of standard malloc() and free() Chris@49: Chris@49: // #define ARMA_USE_ATLAS Chris@49: // #define ARMA_ATLAS_INCLUDE_DIR /usr/include/ Chris@49: //// If you're using ATLAS and the compiler can't find cblas.h and/or clapack.h Chris@49: //// uncomment the above define and specify the appropriate include directory. Chris@49: //// Make sure the directory has a trailing / Chris@49: Chris@49: #if !defined(ARMA_64BIT_WORD) Chris@49: // #define ARMA_64BIT_WORD Chris@49: //// Uncomment the above line if you require matrices/vectors capable of holding more than 4 billion elements. Chris@49: //// Your machine and compiler must have support for 64 bit integers (eg. via "long" or "long long") Chris@49: #endif Chris@49: Chris@49: #if !defined(ARMA_USE_CXX11) Chris@49: // #define ARMA_USE_CXX11 Chris@49: //// Uncomment the above line if you have a C++ compiler that supports the C++11 standard Chris@49: //// This will enable additional features, such as use of initialiser lists Chris@49: #endif Chris@49: Chris@49: #if !defined(ARMA_USE_U64S64) Chris@49: // #define ARMA_USE_U64S64 Chris@49: //// Uncomment the above line if you require u64 and s64 integer types. Chris@49: //// Your machine and compiler must have support for 64 bit integers (eg. via "long" or "long long"). Chris@49: //// Note that ARMA_USE_U64S64 is automatically enabled when ARMA_64BIT_WORD or ARMA_USE_CXX11 are enabled Chris@49: #endif Chris@49: Chris@49: #if !defined(ARMA_USE_HDF5) Chris@49: // #define ARMA_USE_HDF5 Chris@49: //// Uncomment the above line if you want the ability to save and load matrices stored in the HDF5 format; Chris@49: //// 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: #endif Chris@49: Chris@49: #if !defined(ARMA_MAT_PREALLOC) Chris@49: #define ARMA_MAT_PREALLOC 16 Chris@49: #endif Chris@49: //// This is the number of preallocated elements used by matrices and vectors; Chris@49: //// it must be an integer that is at least 1. Chris@49: //// If you mainly use lots of very small vectors (eg. <= 4 elements), Chris@49: //// change the number to the size of your vectors. Chris@49: Chris@49: #if !defined(ARMA_SPMAT_CHUNKSIZE) Chris@49: #define ARMA_SPMAT_CHUNKSIZE 256 Chris@49: #endif Chris@49: //// This is the minimum increase in the amount of memory (in terms of elements) allocated by a sparse matrix; Chris@49: //// it must be an integer that is at least 1. Chris@49: //// The minimum recommended size is 16. Chris@49: Chris@49: // #define ARMA_NO_DEBUG Chris@49: //// Uncomment the above line if you want to disable all run-time checks. Chris@49: //// This will result in faster code, but you first need to make sure that your code runs correctly! Chris@49: //// We strongly recommend to have the run-time checks enabled during development, Chris@49: //// as this greatly aids in finding mistakes in your code, and hence speeds up development. Chris@49: //// We recommend that run-time checks be disabled _only_ for the shipped version of your program. Chris@49: Chris@49: // #define ARMA_EXTRA_DEBUG Chris@49: //// Uncomment the above line if you want to see the function traces of how Armadillo evaluates expressions. Chris@49: //// This is mainly useful for debugging of the library. Chris@49: Chris@49: Chris@49: // #define ARMA_USE_BOOST Chris@49: // #define ARMA_USE_BOOST_DATE Chris@49: Chris@49: Chris@49: #if !defined(ARMA_DEFAULT_OSTREAM) Chris@49: #define ARMA_DEFAULT_OSTREAM std::cout Chris@49: #endif Chris@49: Chris@49: #define ARMA_PRINT_LOGIC_ERRORS Chris@49: #define ARMA_PRINT_RUNTIME_ERRORS Chris@49: //#define ARMA_PRINT_HDF5_ERRORS Chris@49: Chris@49: // #define ARMA_HAVE_STD_ISFINITE Chris@49: // #define ARMA_HAVE_STD_ISINF Chris@49: // #define ARMA_HAVE_STD_ISNAN Chris@49: // #define ARMA_HAVE_STD_SNPRINTF Chris@49: Chris@49: // #define ARMA_HAVE_LOG1P Chris@49: // #define ARMA_HAVE_GETTIMEOFDAY Chris@49: Chris@49: Chris@49: Chris@49: #if defined(ARMA_DONT_USE_LAPACK) Chris@49: #undef ARMA_USE_LAPACK Chris@49: #endif Chris@49: Chris@49: #if defined(ARMA_DONT_USE_BLAS) Chris@49: #undef ARMA_USE_BLAS Chris@49: #endif Chris@49: Chris@49: #if defined(ARMA_DONT_USE_WRAPPER) Chris@49: #undef ARMA_USE_WRAPPER Chris@49: #endif Chris@49: Chris@49: #if defined(ARMA_DONT_USE_ATLAS) Chris@49: #undef ARMA_USE_ATLAS Chris@49: #undef ARMA_ATLAS_INCLUDE_DIR Chris@49: #endif Chris@49: Chris@49: #if defined(ARMA_DONT_USE_CXX11) Chris@49: #undef ARMA_USE_CXX11 Chris@49: #endif Chris@49: Chris@49: #if defined(ARMA_DONT_USE_HDF5) Chris@49: #undef ARMA_USE_HDF5 Chris@49: #endif Chris@49: Chris@49: #if defined(ARMA_DONT_USE_BOOST) Chris@49: #undef ARMA_USE_BOOST Chris@49: #undef ARMA_USE_BOOST_DATE Chris@49: #endif Chris@49: Chris@49: #if defined(ARMA_DONT_PRINT_LOGIC_ERRORS) Chris@49: #undef ARMA_PRINT_LOGIC_ERRORS Chris@49: #endif Chris@49: Chris@49: #if defined(ARMA_DONT_PRINT_RUNTIME_ERRORS) Chris@49: #undef ARMA_PRINT_RUNTIME_ERRORS Chris@49: #endif