1 /*** 2 * @file core/arma_extend/arma_extend.hpp 3 * @author Ryan Curtin 4 * 5 * Include Armadillo extensions which currently are not part of the main 6 * Armadillo codebase. 7 * 8 */ 9 #ifndef MLPACK_CORE_ARMA_EXTEND_ARMA_EXTEND_HPP 10 #define MLPACK_CORE_ARMA_EXTEND_ARMA_EXTEND_HPP 11 12 // Add batch constructor for sparse matrix (if version <= 3.810.0). 13 #define ARMA_EXTRA_SPMAT_PROTO mlpack/core/arma_extend/SpMat_extra_bones.hpp 14 #define ARMA_EXTRA_SPMAT_MEAT mlpack/core/arma_extend/SpMat_extra_meat.hpp 15 16 // Add row_col_iterator and row_col_const_iterator for Mat. 17 #define ARMA_EXTRA_MAT_PROTO mlpack/core/arma_extend/Mat_extra_bones.hpp 18 #define ARMA_EXTRA_MAT_MEAT mlpack/core/arma_extend/Mat_extra_meat.hpp 19 20 // Add boost serialization for Cube. 21 #define ARMA_EXTRA_CUBE_PROTO mlpack/core/arma_extend/Cube_extra_bones.hpp 22 #define ARMA_EXTRA_CUBE_MEAT mlpack/core/arma_extend/Cube_extra_meat.hpp 23 24 // Manually set ARMA_{64,32}BIT_WORD for _WIN64 or win32 25 #if defined(_MSC_VER) 26 #ifdef _WIN64 27 #define ARMA_64BIT_WORD 28 #ifdef ARMA_32BIT_WORD 29 #undef ARMA_32BIT_WORD 30 #endif 31 #else 32 #define ARMA_32BIT_WORD 33 #ifdef ARMA_64BIT_WORD 34 #undef ARMA_64BIT_WORD 35 #endif 36 #endif 37 #endif 38 39 // Force definition of old HDF5 API. Thanks to Mike Roberts for helping find 40 // this workaround. 41 #if !defined(H5_USE_110_API) 42 #define H5_USE_110_API 43 #endif 44 45 // Include everything we'll need for serialize(). 46 #include <boost/serialization/serialization.hpp> 47 #include <boost/serialization/nvp.hpp> 48 #include <boost/serialization/array.hpp> 49 50 #include <armadillo> 51 52 #endif 53