11#ifndef MLPACK_PREREQS_HPP
12#define MLPACK_PREREQS_HPP
15#define _USE_MATH_DEFINES
20#pragma message "Armadillo was included before mlpack; this can sometimes cause\
21 problems. It should only be necessary to include <mlpack/core.hpp> and not \
39 #define M_PI 3.141592653589793238462643383279
44#if !defined(MLPACK_COUT_STREAM)
45 #define MLPACK_COUT_STREAM std::cout
50#if !defined(MLPACK_CERR_STREAM)
51 #define MLPACK_CERR_STREAM std::cerr
56#if defined(__GNUG__) && !defined(DEBUG)
58 #define force_inline __attribute__((always_inline))
59#elif defined(_MSC_VER) && !defined(DEBUG)
61 #define force_inline __forceinline
65#if __cplusplus <= 201103L
66#if !defined(_MSC_VER) || _MSC_VER <= 1800
69template<
bool B,
class T =
void>
77#undef BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
78#undef BOOST_MPL_LIMIT_LIST_SIZE
79#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
80#define BOOST_MPL_LIMIT_LIST_SIZE 50
86#include <boost/serialization/serialization.hpp>
91#include <boost/serialization/map.hpp>
94#include "mlpack/core/boost_backport/boost_backport_serialization.hpp"
105#if __cplusplus > 201103L && BOOST_VERSION < 105900
106#error Use of C++14 mode with Boost < 1.59 is known to cause compilation \
107problems. Instead specify the C++11 standard (-std=c++11 with gcc or clang), \
108or upgrade Boost to 1.59 or newer.
115 #pragma warning(disable : 4519)
116 #define ARMA_USE_CXX11
120#include <mlpack/core/arma_extend/arma_extend.hpp>
134 #define omp_size_t intmax_t
136 #define omp_size_t size_t
typename enable_if< B, T >::type enable_if_t