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