From d36c4fe365134e4c54637dba53e499350f841cb5 Mon Sep 17 00:00:00 2001 From: Alex Zolotarev Date: Sat, 16 Apr 2011 18:29:27 +0200 Subject: [PATCH] Updated boost to 1.46.1 --- 3party/boost/boost/asio/basic_streambuf.hpp | 2 + .../boost/asio/detail/dev_poll_reactor.hpp | 2 +- .../boost/boost/asio/detail/epoll_reactor.hpp | 2 +- .../boost/asio/detail/impl/kqueue_reactor.ipp | 24 +- .../impl/reactive_socket_service_base.ipp | 2 +- .../boost/asio/detail/select_reactor.hpp | 4 +- 3party/boost/boost/asio/placeholders.hpp | 2 +- 3party/boost/boost/asio/version.hpp | 2 +- .../boost/boost/config/compiler/borland.hpp | 3 - 3party/boost/boost/config/compiler/clang.hpp | 53 +- 3party/boost/boost/config/compiler/comeau.hpp | 2 - 3party/boost/boost/config/compiler/gcc.hpp | 1 + 3party/boost/boost/config/compiler/intel.hpp | 40 +- .../boost/config/compiler/metrowerks.hpp | 2 - 3party/boost/boost/config/compiler/nvcc.hpp | 75 +- .../boost/boost/config/compiler/sunpro_cc.hpp | 4 - 3party/boost/boost/config/compiler/vacpp.hpp | 47 +- 3party/boost/boost/config/platform/aix.hpp | 8 - .../boost/boost/config/platform/amigaos.hpp | 3 - 3party/boost/boost/config/platform/beos.hpp | 8 - 3party/boost/boost/config/platform/bsd.hpp | 25 +- 3party/boost/boost/config/platform/cygwin.hpp | 63 +- 3party/boost/boost/config/platform/hpux.hpp | 8 - 3party/boost/boost/config/platform/irix.hpp | 6 - 3party/boost/boost/config/platform/linux.hpp | 8 - 3party/boost/boost/config/platform/macos.hpp | 6 - 3party/boost/boost/config/platform/qnxnto.hpp | 8 - .../boost/boost/config/platform/solaris.hpp | 6 - .../boost/boost/config/platform/symbian.hpp | 10 +- .../boost/boost/config/platform/vxworks.hpp | 6 - .../boost/config/select_stdlib_config.hpp | 4 + 3party/boost/boost/config/stdlib/libcpp.hpp | 34 + .../boost/boost/config/stdlib/libstdcpp3.hpp | 2 + .../boost/boost/config/stdlib/roguewave.hpp | 6 +- 3party/boost/boost/config/suffix.hpp | 6 +- 3party/boost/boost/filesystem/v3/fstream.hpp | 3 +- 3party/boost/boost/filesystem/v3/path.hpp | 1 - .../fusion/include/make_unfused_generic.hpp | 12 - .../include/make_unfused_lvalue_args.hpp | 12 - .../include/make_unfused_rvalue_args.hpp | 12 - .../boost/fusion/include/unfused_generic.hpp | 12 - .../fusion/include/unfused_lvalue_args.hpp | 12 - .../fusion/include/unfused_rvalue_args.hpp | 12 - .../comparison/detail/enable_comparison.hpp | 38 - .../fusion/sequence/comparison/less_equal.hpp | 4 +- 3party/boost/boost/graph/graph_traits.hpp | 13 + 3party/boost/boost/graph/isomorphism.hpp | 18 +- 3party/boost/boost/graph/properties.hpp | 3 +- 3party/boost/boost/graph/reverse_graph.hpp | 6 - 3party/boost/boost/graph/subgraph.hpp | 75 +- .../boost/graph/transitive_reduction.hpp | 2 +- .../icl/associative_interval_container.hpp | 1 + 3party/boost/boost/icl/concept/interval.hpp | 80 +- .../boost/icl/concept/interval_associator.hpp | 85 +- .../icl/concept/interval_associator_base.hpp | 149 ++ .../boost/boost/icl/concept/interval_map.hpp | 17 +- .../boost/boost/icl/concept/interval_set.hpp | 5 +- 3party/boost/boost/icl/interval_base_map.hpp | 14 +- 3party/boost/boost/icl/interval_base_set.hpp | 12 +- 3party/boost/boost/icl/rational.hpp | 2 +- .../boost/icl/type_traits/has_inverse.hpp | 2 +- .../boost/icl/type_traits/is_combinable.hpp | 10 +- .../boost/icl/type_traits/is_container.hpp | 4 +- .../icl/type_traits/is_key_container_of.hpp | 4 +- .../boost/icl/type_traits/is_numeric.hpp | 9 +- .../interprocess/detail/xsi_shared_memory.hpp | 222 --- 3party/boost/boost/math/common_factor_rt.hpp | 7 + .../boost/math/special_functions/acosh.hpp | 2 +- 3party/boost/boost/math/tr1.hpp | 1344 +++++++++++++++-- .../boost/polygon/detail/polygon_set_view.hpp | 8 +- .../property_tree/detail/json_parser_read.hpp | 3 + 3party/boost/boost/proto/debug.hpp | 66 +- .../boost/proto/transform/pass_through.hpp | 2 +- .../boost/signals2/detail/signal_template.hpp | 4 +- 3party/boost/boost/tr1/detail/config_all.hpp | 5 + 3party/boost/boost/tr1/functional.hpp | 7 +- .../boost/boost/unordered/unordered_map.hpp | 22 + .../boost/boost/unordered/unordered_set.hpp | 22 + 3party/boost/boost/version.hpp | 4 +- 79 files changed, 1904 insertions(+), 927 deletions(-) create mode 100644 3party/boost/boost/config/stdlib/libcpp.hpp delete mode 100644 3party/boost/boost/fusion/include/make_unfused_generic.hpp delete mode 100644 3party/boost/boost/fusion/include/make_unfused_lvalue_args.hpp delete mode 100644 3party/boost/boost/fusion/include/make_unfused_rvalue_args.hpp delete mode 100644 3party/boost/boost/fusion/include/unfused_generic.hpp delete mode 100644 3party/boost/boost/fusion/include/unfused_lvalue_args.hpp delete mode 100644 3party/boost/boost/fusion/include/unfused_rvalue_args.hpp delete mode 100644 3party/boost/boost/fusion/sequence/comparison/detail/enable_comparison.hpp create mode 100644 3party/boost/boost/icl/concept/interval_associator_base.hpp delete mode 100644 3party/boost/boost/interprocess/detail/xsi_shared_memory.hpp diff --git a/3party/boost/boost/asio/basic_streambuf.hpp b/3party/boost/boost/asio/basic_streambuf.hpp index e0a96cc821..7a04c69ba1 100644 --- a/3party/boost/boost/asio/basic_streambuf.hpp +++ b/3party/boost/boost/asio/basic_streambuf.hpp @@ -237,6 +237,8 @@ public: */ void consume(std::size_t n) { + if (egptr() < pptr()) + setg(&buffer_[0], gptr(), pptr()); if (gptr() + n > pptr()) n = pptr() - gptr(); gbump(static_cast(n)); diff --git a/3party/boost/boost/asio/detail/dev_poll_reactor.hpp b/3party/boost/boost/asio/detail/dev_poll_reactor.hpp index 8826753943..79c1cbb220 100644 --- a/3party/boost/boost/asio/detail/dev_poll_reactor.hpp +++ b/3party/boost/boost/asio/detail/dev_poll_reactor.hpp @@ -46,7 +46,7 @@ class dev_poll_reactor : public boost::asio::detail::service_base { public: - enum { read_op = 0, write_op = 1, + enum op_types { read_op = 0, write_op = 1, connect_op = 1, except_op = 2, max_ops = 3 }; // Per-descriptor data. diff --git a/3party/boost/boost/asio/detail/epoll_reactor.hpp b/3party/boost/boost/asio/detail/epoll_reactor.hpp index eaf415c5b3..1889017469 100644 --- a/3party/boost/boost/asio/detail/epoll_reactor.hpp +++ b/3party/boost/boost/asio/detail/epoll_reactor.hpp @@ -42,7 +42,7 @@ class epoll_reactor : public boost::asio::detail::service_base { public: - enum { read_op = 0, write_op = 1, + enum op_types { read_op = 0, write_op = 1, connect_op = 1, except_op = 2, max_ops = 3 }; // Per-descriptor queues. diff --git a/3party/boost/boost/asio/detail/impl/kqueue_reactor.ipp b/3party/boost/boost/asio/detail/impl/kqueue_reactor.ipp index 3710109891..3ac9eae497 100644 --- a/3party/boost/boost/asio/detail/impl/kqueue_reactor.ipp +++ b/3party/boost/boost/asio/detail/impl/kqueue_reactor.ipp @@ -47,9 +47,9 @@ kqueue_reactor::kqueue_reactor(boost::asio::io_service& io_service) interrupter_(), shutdown_(false) { - // The interrupter is put into a permanently readable state. Whenever we - // want to interrupt the blocked kevent call we register a one-shot read - // operation against the descriptor. + // The interrupter is put into a permanently readable state. Whenever we want + // to interrupt the blocked kevent call we register a read operation against + // the descriptor. interrupter_.interrupt(); } @@ -139,17 +139,17 @@ void kqueue_reactor::start_op(int op_type, socket_type descriptor, { case read_op: BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ, - EV_ADD | EV_ONESHOT, 0, 0, descriptor_data); + EV_ADD | EV_CLEAR, 0, 0, descriptor_data); break; case write_op: BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_WRITE, - EV_ADD | EV_ONESHOT, 0, 0, descriptor_data); + EV_ADD | EV_CLEAR, 0, 0, descriptor_data); break; case except_op: if (!descriptor_data->op_queue_[read_op].empty()) return; // Already registered for read events. BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ, - EV_ADD | EV_ONESHOT, EV_OOBAND, 0, descriptor_data); + EV_ADD | EV_CLEAR, EV_OOBAND, 0, descriptor_data); break; } @@ -247,7 +247,7 @@ void kqueue_reactor::run(bool block, op_queue& ops) if (ptr == &interrupter_) { // No need to reset the interrupter since we're leaving the descriptor - // in a ready-to-read state and relying on one-shot notifications. + // in a ready-to-read state and relying on edge-triggered notifications. } else { @@ -296,18 +296,20 @@ void kqueue_reactor::run(bool block, op_queue& ops) case EVFILT_READ: if (!descriptor_data->op_queue_[read_op].empty()) BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ, - EV_ADD | EV_ONESHOT, 0, 0, descriptor_data); + EV_ADD | EV_CLEAR, 0, 0, descriptor_data); else if (!descriptor_data->op_queue_[except_op].empty()) BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ, - EV_ADD | EV_ONESHOT, EV_OOBAND, 0, descriptor_data); + EV_ADD | EV_CLEAR, EV_OOBAND, 0, descriptor_data); else continue; + break; case EVFILT_WRITE: if (!descriptor_data->op_queue_[write_op].empty()) BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_WRITE, - EV_ADD | EV_ONESHOT, 0, 0, descriptor_data); + EV_ADD | EV_CLEAR, 0, 0, descriptor_data); else continue; + break; default: break; } @@ -336,7 +338,7 @@ void kqueue_reactor::interrupt() { struct kevent event; BOOST_ASIO_KQUEUE_EV_SET(&event, interrupter_.read_descriptor(), - EVFILT_READ, EV_ADD | EV_ONESHOT, 0, 0, &interrupter_); + EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, &interrupter_); ::kevent(kqueue_fd_, &event, 1, 0, 0, 0); } diff --git a/3party/boost/boost/asio/detail/impl/reactive_socket_service_base.ipp b/3party/boost/boost/asio/detail/impl/reactive_socket_service_base.ipp index d084a81111..31f5bc45d7 100644 --- a/3party/boost/boost/asio/detail/impl/reactive_socket_service_base.ipp +++ b/3party/boost/boost/asio/detail/impl/reactive_socket_service_base.ipp @@ -64,7 +64,7 @@ boost::system::error_code reactive_socket_service_base::close( if (is_open(impl)) reactor_.close_descriptor(impl.socket_, impl.reactor_data_); - if (socket_ops::close(impl.socket_, impl.state_, true, ec) == 0) + if (socket_ops::close(impl.socket_, impl.state_, false, ec) == 0) construct(impl); return ec; diff --git a/3party/boost/boost/asio/detail/select_reactor.hpp b/3party/boost/boost/asio/detail/select_reactor.hpp index 4b26a269cc..f4f8bdf5de 100644 --- a/3party/boost/boost/asio/detail/select_reactor.hpp +++ b/3party/boost/boost/asio/detail/select_reactor.hpp @@ -51,10 +51,10 @@ class select_reactor { public: #if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - enum { read_op = 0, write_op = 1, except_op = 2, + enum op_types { read_op = 0, write_op = 1, except_op = 2, max_select_ops = 3, connect_op = 3, max_ops = 4 }; #else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - enum { read_op = 0, write_op = 1, except_op = 2, + enum op_types { read_op = 0, write_op = 1, except_op = 2, max_select_ops = 3, connect_op = 1, max_ops = 3 }; #endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) diff --git a/3party/boost/boost/asio/placeholders.hpp b/3party/boost/boost/asio/placeholders.hpp index 5f6be4457c..19ddb662b4 100644 --- a/3party/boost/boost/asio/placeholders.hpp +++ b/3party/boost/boost/asio/placeholders.hpp @@ -39,7 +39,7 @@ unspecified bytes_transferred; /// An argument placeholder, for use with boost::bind(), that corresponds to /// the iterator argument of a handler for asynchronous functions such as -/// boost::asio::basic_resolver::resolve. +/// boost::asio::basic_resolver::async_resolve. unspecified iterator; #elif defined(__BORLANDC__) || defined(__GNUC__) diff --git a/3party/boost/boost/asio/version.hpp b/3party/boost/boost/asio/version.hpp index d19caa2627..9ef5ab5a3d 100644 --- a/3party/boost/boost/asio/version.hpp +++ b/3party/boost/boost/asio/version.hpp @@ -18,6 +18,6 @@ // BOOST_ASIO_VERSION % 100 is the sub-minor version // BOOST_ASIO_VERSION / 100 % 1000 is the minor version // BOOST_ASIO_VERSION / 100000 is the major version -#define BOOST_ASIO_VERSION 100408 // 1.4.8 +#define BOOST_ASIO_VERSION 100409 // 1.4.9 #endif // BOOST_ASIO_VERSION_HPP diff --git a/3party/boost/boost/config/compiler/borland.hpp b/3party/boost/boost/config/compiler/borland.hpp index 2816ab886d..a989fd633b 100644 --- a/3party/boost/boost/config/compiler/borland.hpp +++ b/3party/boost/boost/config/compiler/borland.hpp @@ -12,9 +12,6 @@ // // versions check: // we don't support Borland prior to version 5.4: - -#define BOOST_BORLAND __BORLANDC__ - #if __BORLANDC__ < 0x540 # error "Compiler not supported or configured - please reconfigure" #endif diff --git a/3party/boost/boost/config/compiler/clang.hpp b/3party/boost/boost/config/compiler/clang.hpp index 2ce6773266..089303372b 100644 --- a/3party/boost/boost/config/compiler/clang.hpp +++ b/3party/boost/boost/config/compiler/clang.hpp @@ -13,8 +13,7 @@ # define BOOST_NO_EXCEPTIONS #endif -#if __has_feature(cxx_rtti) -#else +#if !__has_feature(cxx_rtti) # define BOOST_NO_RTTI #endif @@ -24,35 +23,57 @@ #define BOOST_HAS_NRVO -// NOTE: Clang's C++0x support is not worth detecting. However, it -// supports both extern templates and "long long" even in C++98/03 -// mode. +// Clang supports "long long" in all compilation modes. + #define BOOST_NO_AUTO_DECLARATIONS #define BOOST_NO_AUTO_MULTIDECLARATIONS #define BOOST_NO_CHAR16_T #define BOOST_NO_CHAR32_T #define BOOST_NO_CONCEPTS #define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE + +#if !__has_feature(cxx_decltype) +# define BOOST_NO_DECLTYPE +#endif + #define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS + +#if !__has_feature(cxx_deleted_functions) +# define BOOST_NO_DELETED_FUNCTIONS +#endif + #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS + +#if !__has_feature(cxx_default_function_template_args) + #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif + #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT + +#if !__has_feature(cxx_rvalue_references) +# define BOOST_NO_RVALUE_REFERENCES +#endif + +#if !__has_feature(cxx_strong_enums) +# define BOOST_NO_SCOPED_ENUMS +#endif + +#if !__has_feature(cxx_static_assert) +# define BOOST_NO_STATIC_ASSERT +#endif + #define BOOST_NO_TEMPLATE_ALIASES #define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_VARIADIC_MACROS -// HACK: Clang does support extern templates, but Boost's test for -// them is wrong. -#define BOOST_NO_EXTERN_TEMPLATE +#if !__has_feature(cxx_variadic_templates) +# define BOOST_NO_VARIADIC_TEMPLATES +#endif + +// Clang always supports variadic macros +// Clang always supports extern templates #ifndef BOOST_COMPILER # define BOOST_COMPILER "Clang version " __clang_version__ diff --git a/3party/boost/boost/config/compiler/comeau.hpp b/3party/boost/boost/config/compiler/comeau.hpp index c2cedb1793..278222dcfd 100644 --- a/3party/boost/boost/config/compiler/comeau.hpp +++ b/3party/boost/boost/config/compiler/comeau.hpp @@ -14,8 +14,6 @@ #include "boost/config/compiler/common_edg.hpp" -#define BOOST_COMO __COMO_VERSION__ - #if (__COMO_VERSION__ <= 4245) # if defined(_MSC_VER) && _MSC_VER <= 1300 diff --git a/3party/boost/boost/config/compiler/gcc.hpp b/3party/boost/boost/config/compiler/gcc.hpp index 7ce7fe6b2e..f633647d65 100644 --- a/3party/boost/boost/config/compiler/gcc.hpp +++ b/3party/boost/boost/config/compiler/gcc.hpp @@ -89,6 +89,7 @@ # define BOOST_NO_EXCEPTIONS #endif + // // Threading support: Turn this on unconditionally here (except for // those platforms where we can know for sure). It will get turned off again diff --git a/3party/boost/boost/config/compiler/intel.hpp b/3party/boost/boost/config/compiler/intel.hpp index e7bc95babf..f209ae776b 100644 --- a/3party/boost/boost/config/compiler/intel.hpp +++ b/3party/boost/boost/config/compiler/intel.hpp @@ -26,7 +26,19 @@ # define BOOST_INTEL_CXX_VERSION __ECC #endif +// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x' +#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && __STDC_HOSTED__) || defined(__GXX_EXPERIMENTAL_CPP0X__) +# define BOOST_INTEL_STDCXX0X +#endif +#if defined(_MSC_VER) && (_MSC_VER >= 1600) +# define BOOST_INTEL_STDCXX0X +#endif + +#ifdef BOOST_INTEL_STDCXX0X +#define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) +#else #define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) +#endif #define BOOST_INTEL BOOST_INTEL_CXX_VERSION #if defined(_WIN32) || defined(_WIN64) @@ -99,7 +111,7 @@ # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL # endif #endif -#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1110) +#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1200) // GCC or VC emulation: #define BOOST_NO_TWO_PHASE_NAME_LOOKUP #endif @@ -179,6 +191,32 @@ template<> struct assert_intrinsic_wchar_t {}; # define BOOST_SYMBOL_IMPORT # define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default"))) #endif +// +// C++0x features +// - ICC added static_assert in 11.0 (first version with C++0x support) +// +#if defined(BOOST_INTEL_STDCXX0X) +# undef BOOST_NO_STATIC_ASSERT +// +// These pass our test cases, but aren't officially supported according to: +// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/ +// +//# undef BOOST_NO_LAMBDAS +//# undef BOOST_NO_DECLTYPE +//# undef BOOST_NO_AUTO_DECLARATIONS +//# undef BOOST_NO_AUTO_MULTIDECLARATIONS +#endif + +#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200) +# undef BOOST_NO_RVALUE_REFERENCES +# undef BOOST_NO_SCOPED_ENUMS +# undef BOOST_NO_DELETED_FUNCTIONS +# undef BOOST_NO_DEFAULTED_FUNCTIONS +# undef BOOST_NO_LAMBDAS +# undef BOOST_NO_DECLTYPE +# undef BOOST_NO_AUTO_DECLARATIONS +# undef BOOST_NO_AUTO_MULTIDECLARATIONS +#endif // // last known and checked version: diff --git a/3party/boost/boost/config/compiler/metrowerks.hpp b/3party/boost/boost/config/compiler/metrowerks.hpp index 81854a0f5f..21083b7a1f 100644 --- a/3party/boost/boost/config/compiler/metrowerks.hpp +++ b/3party/boost/boost/config/compiler/metrowerks.hpp @@ -12,8 +12,6 @@ // Metrowerks C++ compiler setup: -#define BOOST_MWERKS __MWERKS__ - // locale support is disabled when linking with the dynamic runtime # ifdef _MSL_NO_LOCALE # define BOOST_NO_STD_LOCALE diff --git a/3party/boost/boost/config/compiler/nvcc.hpp b/3party/boost/boost/config/compiler/nvcc.hpp index eaecf37498..03203fb55b 100644 --- a/3party/boost/boost/config/compiler/nvcc.hpp +++ b/3party/boost/boost/config/compiler/nvcc.hpp @@ -17,71 +17,12 @@ // Boost support macro for NVCC // NVCC Basically behaves like some flavor of MSVC6 + some specific quirks -#define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -#define BOOST_MSVC6_MEMBER_TEMPLATES -#define BOOST_HAS_UNISTD_H -#define BOOST_HAS_STDINT_H -#define BOOST_HAS_SIGACTION -#define BOOST_HAS_SCHED_YIELD -#define BOOST_HAS_PTHREADS -#define BOOST_HAS_PTHREAD_YIELD -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -#define BOOST_HAS_PARTIAL_STD_ALLOCATOR -#define BOOST_HAS_NRVO -#define BOOST_HAS_NL_TYPES_H -#define BOOST_HAS_NANOSLEEP -#define BOOST_HAS_LONG_LONG -#define BOOST_HAS_LOG1P -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_EXPM1 -#define BOOST_HAS_DIRENT_H -#define BOOST_HAS_CLOCK_GETTIME -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_VARIADIC_MACROS -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_STD_UNORDERED -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_NULLPTR -#define BOOST_NO_LAMBDAS -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_MS_INT64_NUMERIC_LIMITS -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DECLTYPE -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_CONCEPTS -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CHAR16_T -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_0X_HDR_UNORDERED_SET -#define BOOST_NO_0X_HDR_UNORDERED_MAP -#define BOOST_NO_0X_HDR_TYPE_TRAITS -#define BOOST_NO_0X_HDR_TUPLE -#define BOOST_NO_0X_HDR_THREAD -#define BOOST_NO_0X_HDR_TYPEINDEX -#define BOOST_NO_0X_HDR_SYSTEM_ERROR -#define BOOST_NO_0X_HDR_REGEX -#define BOOST_NO_0X_HDR_RATIO -#define BOOST_NO_0X_HDR_RANDOM -#define BOOST_NO_0X_HDR_MUTEX -#define BOOST_NO_0X_HDR_MEMORY_CONCEPTS -#define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS -#define BOOST_NO_0X_HDR_INITIALIZER_LIST -#define BOOST_NO_0X_HDR_FUTURE -#define BOOST_NO_0X_HDR_FORWARD_LIST -#define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS -#define BOOST_NO_0X_HDR_CONDITION_VARIABLE -#define BOOST_NO_0X_HDR_CONCEPTS -#define BOOST_NO_0X_HDR_CODECVT -#define BOOST_NO_0X_HDR_CHRONO -#define BOOST_NO_0X_HDR_ARRAY +#ifdef __GNUC__ +#include + +#elif defined(_MSC_VER) + +#include + +#endif diff --git a/3party/boost/boost/config/compiler/sunpro_cc.hpp b/3party/boost/boost/config/compiler/sunpro_cc.hpp index e718dbb695..85fa462504 100644 --- a/3party/boost/boost/config/compiler/sunpro_cc.hpp +++ b/3party/boost/boost/config/compiler/sunpro_cc.hpp @@ -11,10 +11,6 @@ // Sun C++ compiler setup: -// Macro identifying the Sun compiler - -#define BOOST_SUNCC __SUNPRO_CC - # if __SUNPRO_CC <= 0x500 # define BOOST_NO_MEMBER_TEMPLATES # define BOOST_NO_FUNCTION_TEMPLATE_ORDERING diff --git a/3party/boost/boost/config/compiler/vacpp.hpp b/3party/boost/boost/config/compiler/vacpp.hpp index 5ae9c2856d..7ad616e44f 100644 --- a/3party/boost/boost/config/compiler/vacpp.hpp +++ b/3party/boost/boost/config/compiler/vacpp.hpp @@ -27,7 +27,6 @@ #if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG) # define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS -# define BOOST_NO_INITIALIZER_LISTS #endif #if (__IBMCPP__ <= 1110) @@ -54,44 +53,66 @@ #error "Compiler not supported or configured - please reconfigure" #endif // -// last known and checked version is 600: -#if (__IBMCPP__ > 1010) +// last known and checked version is 1110: +#if (__IBMCPP__ > 1110) # if defined(BOOST_ASSERT_CONFIG) # error "Unknown compiler version - please run the configure tests and report the results" # endif #endif // Some versions of the compiler have issues with default arguments on partial specializations +#if __IBMCPP__ <= 1010 #define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS +#endif // // C++0x features // // See boost\config\suffix.hpp for BOOST_NO_LONG_LONG // -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T +#if ! __IBMCPP_AUTO_TYPEDEDUCTION +# define BOOST_NO_AUTO_DECLARATIONS +# define BOOST_NO_AUTO_MULTIDECLARATIONS +#endif +#if ! __IBMCPP_UTF_LITERAL__ +# define BOOST_NO_CHAR16_T +# define BOOST_NO_CHAR32_T +#endif #define BOOST_NO_CONCEPTS #define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE +#if ! __IBMCPP_DECLTYPE +# define BOOST_NO_DECLTYPE +#else +# define BOOST_HAS_DECLTYPE +#endif #define BOOST_NO_DEFAULTED_FUNCTIONS #define BOOST_NO_DELETED_FUNCTIONS #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +#if ! __IBMCPP_EXTERN_TEMPLATE +# define BOOST_NO_EXTERN_TEMPLATE +#endif +#if ! __IBMCPP_VARIADIC_TEMPLATES +// not enabled separately at this time +# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif +#define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS #define BOOST_NO_RVALUE_REFERENCES #define BOOST_NO_SCOPED_ENUMS #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_STATIC_ASSERT +#if ! __IBMCPP_STATIC_ASSERT +# define BOOST_NO_STATIC_ASSERT +#endif #define BOOST_NO_TEMPLATE_ALIASES #define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_VARIADIC_MACROS +#if ! __IBMCPP_VARIADIC_TEMPLATES +# define BOOST_NO_VARIADIC_TEMPLATES +#endif +#if ! __C99_MACRO_WITH_VA_ARGS +# define BOOST_NO_VARIADIC_MACROS +#endif diff --git a/3party/boost/boost/config/platform/aix.hpp b/3party/boost/boost/config/platform/aix.hpp index ec22a42f61..894ef42ce9 100644 --- a/3party/boost/boost/config/platform/aix.hpp +++ b/3party/boost/boost/config/platform/aix.hpp @@ -1,5 +1,4 @@ // (C) Copyright John Maddock 2001 - 2002. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -10,13 +9,6 @@ #define BOOST_PLATFORM "IBM Aix" -#define BOOST_NIX 1 -//#define BOOST_GENETIC_NIX 1 -#define BOOST_TRADEMARK_NIX 1 -//#define BOOST_FUNCTIONAL_NIX 1 - -#define BOOST_AIX 1 - #define BOOST_HAS_UNISTD_H #define BOOST_HAS_NL_TYPES_H #define BOOST_HAS_NANOSLEEP diff --git a/3party/boost/boost/config/platform/amigaos.hpp b/3party/boost/boost/config/platform/amigaos.hpp index a1f12f6dec..34bcf4128b 100644 --- a/3party/boost/boost/config/platform/amigaos.hpp +++ b/3party/boost/boost/config/platform/amigaos.hpp @@ -1,5 +1,4 @@ // (C) Copyright John Maddock 2002. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -8,8 +7,6 @@ #define BOOST_PLATFORM "AmigaOS" -#define BOOST_AMIGA 1 - #define BOOST_DISABLE_THREADS #define BOOST_NO_CWCHAR #define BOOST_NO_STD_WSTRING diff --git a/3party/boost/boost/config/platform/beos.hpp b/3party/boost/boost/config/platform/beos.hpp index cda00164e2..48c3d8dc5b 100644 --- a/3party/boost/boost/config/platform/beos.hpp +++ b/3party/boost/boost/config/platform/beos.hpp @@ -1,5 +1,4 @@ // (C) Copyright John Maddock 2001. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -10,13 +9,6 @@ #define BOOST_PLATFORM "BeOS" -#define BOOST_BEOS 1 - -#define BOOST_NIX 1 -//#define BOOST_GENETIC_NIX 1 -//#define BOOST_TRADEMARK_NIX 1 -#define BOOST_FUNCTIONAL_NIX 1 - #define BOOST_NO_CWCHAR #define BOOST_NO_CWCTYPE #define BOOST_HAS_UNISTD_H diff --git a/3party/boost/boost/config/platform/bsd.hpp b/3party/boost/boost/config/platform/bsd.hpp index 9720c777b7..a0142978eb 100644 --- a/3party/boost/boost/config/platform/bsd.hpp +++ b/3party/boost/boost/config/platform/bsd.hpp @@ -1,7 +1,6 @@ // (C) Copyright John Maddock 2001 - 2003. // (C) Copyright Darin Adler 2001. // (C) Copyright Douglas Gregor 2002. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -10,30 +9,18 @@ // generic BSD config options: -#if !defined(__FreeBSD__) && \ - !defined(__NetBSD__) && \ - !defined(__OpenBSD__) && \ - !defined(__DragonFly__) - #error "This platform is not BSD" +#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) +#error "This platform is not BSD" #endif -#define BOOST_NIX 1 -#define BOOST_GENETIC_NIX 1 -//#define BOOST_TRADEMARK_NIX 1 -//#define BOOST_FUNCTIONAL_NIX 1 - #ifdef __FreeBSD__ - #define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__) - #define BOOST_FREEBSD __FreeBSD__ +#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__) #elif defined(__NetBSD__) - #define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__) - #define BOOST_NETBSD __NetBSD__ +#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__) #elif defined(__OpenBSD__) - #define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__) - #define BOOST_OPENBSD __OpenBSD__ +#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__) #elif defined(__DragonFly__) - #define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__) - #define BOOST_DFBSD __DragonFly__ +#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__) #endif // diff --git a/3party/boost/boost/config/platform/cygwin.hpp b/3party/boost/boost/config/platform/cygwin.hpp index aba3719382..b7ef572fa6 100644 --- a/3party/boost/boost/config/platform/cygwin.hpp +++ b/3party/boost/boost/config/platform/cygwin.hpp @@ -1,56 +1,55 @@ -// (C) Copyright John Maddock 2001 - 2003 -// (C) Copyright Bryce Lelbach 2010 -// -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// See http://www.boost.org for most recent version. +// (C) Copyright John Maddock 2001 - 2003. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#define BOOST_PLATFORM "Cygwin" // Platform name. -#define BOOST_CYGWIN __CYGWIN__ // Boost platform ID macros. +// See http://www.boost.org for most recent version. +// cygwin specific config options: + +#define BOOST_PLATFORM "Cygwin" #define BOOST_HAS_DIRENT_H #define BOOST_HAS_LOG1P #define BOOST_HAS_EXPM1 -#define BOOST_NIX 1 -//#define BOOST_GENETIC_NIX 1 -//#define BOOST_TRADEMARK_NIX 1 -#define BOOST_FUNCTIONAL_NIX 1 - -// See if we have POSIX threads, otherwise revert to native Win threads. +// +// Threading API: +// See if we have POSIX threads, if we do use them, otherwise +// revert to native Win threads. #define BOOST_HAS_UNISTD_H #include - -#if defined(_POSIX_THREADS) && (_POSIX_THREADS + 0 >= 0) && \ - !defined(BOOST_HAS_WINTHREADS) - #define BOOST_HAS_PTHREADS - #define BOOST_HAS_SCHED_YIELD - #define BOOST_HAS_GETTIMEOFDAY - #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE - #define BOOST_HAS_SIGACTION +#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) +# define BOOST_HAS_PTHREADS +# define BOOST_HAS_SCHED_YIELD +# define BOOST_HAS_GETTIMEOFDAY +# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# define BOOST_HAS_SIGACTION #else - #if !defined(BOOST_HAS_WINTHREADS) - #define BOOST_HAS_WINTHREADS - #endif - #define BOOST_HAS_FTIME +# if !defined(BOOST_HAS_WINTHREADS) +# define BOOST_HAS_WINTHREADS +# endif +# define BOOST_HAS_FTIME #endif -// Find out if we have a stdint.h, there should be a better way to do this. +// +// find out if we have a stdint.h, there should be a better way to do this: +// #include - #ifdef _STDINT_H - #define BOOST_HAS_STDINT_H +#define BOOST_HAS_STDINT_H #endif /// Cygwin has no fenv.h #define BOOST_NO_FENV_H +// boilerplate code: #include -// Cygwin lies about XSI conformance, there is no nl_types.h. +// +// Cygwin lies about XSI conformance, there is no nl_types.h: +// #ifdef BOOST_HAS_NL_TYPES_H - #undef BOOST_HAS_NL_TYPES_H +# undef BOOST_HAS_NL_TYPES_H #endif diff --git a/3party/boost/boost/config/platform/hpux.hpp b/3party/boost/boost/config/platform/hpux.hpp index 2aefb2d27b..19ce68e597 100644 --- a/3party/boost/boost/config/platform/hpux.hpp +++ b/3party/boost/boost/config/platform/hpux.hpp @@ -3,7 +3,6 @@ // (C) Copyright David Abrahams 2002. // (C) Copyright Toon Knapen 2003. // (C) Copyright Boris Gubenko 2006 - 2007. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -14,13 +13,6 @@ #define BOOST_PLATFORM "HP-UX" -#define BOOST_HPUX 1 // platform ID macro - -#define BOOST_NIX 1 -//#define BOOST_GENETIC_NIX 1 -#define BOOST_TRADEMARK_NIX 1 -//#define BOOST_FUNCTIONAL_NIX 1 - // In principle, HP-UX has a nice under the name // However, it has the following problem: // Use of UINT32_C(0) results in "0u l" for the preprocessed source diff --git a/3party/boost/boost/config/platform/irix.hpp b/3party/boost/boost/config/platform/irix.hpp index 4915d81335..aeae49c8b4 100644 --- a/3party/boost/boost/config/platform/irix.hpp +++ b/3party/boost/boost/config/platform/irix.hpp @@ -1,6 +1,5 @@ // (C) Copyright John Maddock 2001 - 2003. // (C) Copyright Jens Maurer 2003. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -12,11 +11,6 @@ #define BOOST_PLATFORM "SGI Irix" -#define BOOST_NIX 1 -//#define BOOST_GENETIC_NIX 1 -#define BOOST_TRADEMARK_NIX 1 -//#define BOOST_FUNCTIONAL_NIX 1 - #define BOOST_NO_SWPRINTF // // these are not auto detected by POSIX feature tests: diff --git a/3party/boost/boost/config/platform/linux.hpp b/3party/boost/boost/config/platform/linux.hpp index 3e7f02c78a..51ae13347c 100644 --- a/3party/boost/boost/config/platform/linux.hpp +++ b/3party/boost/boost/config/platform/linux.hpp @@ -1,6 +1,5 @@ // (C) Copyright John Maddock 2001 - 2003. // (C) Copyright Jens Maurer 2001 - 2003. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -14,13 +13,6 @@ // make sure we have __GLIBC_PREREQ if available at all #include -#define BOOST_NIX 1 -//#define BOOST_GENETIC_NIX 1 -//#define BOOST_TRADEMARK_NIX 1 -#define BOOST_FUNCTIONAL_NIX 1 - -#define BOOST_LINUX 1 - // // added to glibc 2.1.1 // We can only test for 2.1 though: diff --git a/3party/boost/boost/config/platform/macos.hpp b/3party/boost/boost/config/platform/macos.hpp index d018703d09..2780ef99e9 100644 --- a/3party/boost/boost/config/platform/macos.hpp +++ b/3party/boost/boost/config/platform/macos.hpp @@ -1,7 +1,6 @@ // (C) Copyright John Maddock 2001 - 2003. // (C) Copyright Darin Adler 2001 - 2002. // (C) Copyright Bill Kempf 2002. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -14,11 +13,6 @@ #if __MACH__ && !defined(_MSL_USING_MSL_C) -#define BOOST_NIX 1 -//#define BOOST_GENETIC_NIX 1 -#define BOOST_TRADEMARK_NIX 1 -//#define BOOST_FUNCTIONAL_NIX 1 - // Using the Mac OS X system BSD-style C library. # ifndef BOOST_HAS_UNISTD_H diff --git a/3party/boost/boost/config/platform/qnxnto.hpp b/3party/boost/boost/config/platform/qnxnto.hpp index 0c54373d07..b1377c8d2c 100644 --- a/3party/boost/boost/config/platform/qnxnto.hpp +++ b/3party/boost/boost/config/platform/qnxnto.hpp @@ -1,5 +1,4 @@ // (C) Copyright Jim Douglas 2005. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -8,15 +7,8 @@ // QNX specific config options: -#define BOOST_QNX 1 - #define BOOST_PLATFORM "QNX" -#define BOOST_NIX 1 -//#define BOOST_GENETIC_NIX 1 -//#define BOOST_TRADEMARK_NIX 1 -#define BOOST_FUNCTIONAL_NIX 1 - #define BOOST_HAS_UNISTD_H #include diff --git a/3party/boost/boost/config/platform/solaris.hpp b/3party/boost/boost/config/platform/solaris.hpp index 9a9e1f4655..9f9256664b 100644 --- a/3party/boost/boost/config/platform/solaris.hpp +++ b/3party/boost/boost/config/platform/solaris.hpp @@ -1,6 +1,5 @@ // (C) Copyright John Maddock 2001 - 2003. // (C) Copyright Jens Maurer 2003. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -11,11 +10,6 @@ #define BOOST_PLATFORM "Sun Solaris" -#define BOOST_NIX 1 -//#define BOOST_GENETIC_NIX 1 -#define BOOST_TRADEMARK_NIX 1 -//#define BOOST_FUNCTIONAL_NIX 1 - #define BOOST_HAS_GETTIMEOFDAY // boilerplate code: diff --git a/3party/boost/boost/config/platform/symbian.hpp b/3party/boost/boost/config/platform/symbian.hpp index 798dfac4f0..ad37943127 100644 --- a/3party/boost/boost/config/platform/symbian.hpp +++ b/3party/boost/boost/config/platform/symbian.hpp @@ -1,7 +1,6 @@ // (C) Copyright Yuriy Krasnoschek 2009. // (C) Copyright John Maddock 2001 - 2003. // (C) Copyright Jens Maurer 2001 - 2003. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -10,16 +9,13 @@ // symbian specific config options: + #define BOOST_PLATFORM "Symbian" #define BOOST_SYMBIAN 1 + #if defined(__S60_3X__) -// Open C / C++ plugin was introdused in this SDK, earlier versions don't have -// CRT / STL -# define BOOST_NIX 1 -//# define BOOST_GENETIC_NIX 1 -//# define BOOST_TRADEMARK_NIX 1 -# define BOOST_FUNCTIONAL_NIX 1 +// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL # define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK // make sure we have __GLIBC_PREREQ if available at all # include diff --git a/3party/boost/boost/config/platform/vxworks.hpp b/3party/boost/boost/config/platform/vxworks.hpp index 3b128bf458..6ec5171e39 100644 --- a/3party/boost/boost/config/platform/vxworks.hpp +++ b/3party/boost/boost/config/platform/vxworks.hpp @@ -1,5 +1,4 @@ // (C) Copyright Dustin Spicuzza 2009. -// (C) Copyright Bryce Lelbach 2010 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -24,11 +23,6 @@ #define _POSIX_TIMERS 1 #define _POSIX_THREADS 1 -#define BOOST_NIX 1 -//#define BOOST_GENETIC_NIX 1 -#define BOOST_TRADEMARK_NIX 1 -//#define BOOST_FUNCTIONAL_NIX 1 - // vxworks doesn't work with asio serial ports #define BOOST_ASIO_DISABLE_SERIAL_PORT diff --git a/3party/boost/boost/config/select_stdlib_config.hpp b/3party/boost/boost/config/select_stdlib_config.hpp index 2a1430aef4..f020482365 100644 --- a/3party/boost/boost/config/select_stdlib_config.hpp +++ b/3party/boost/boost/config/select_stdlib_config.hpp @@ -40,6 +40,10 @@ // Rogue Wave library: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp" +#elif defined(_LIBCPP_VERSION) +// libc++ +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp" + #elif defined(__GLIBCPP__) || defined(__GLIBCXX__) // GNU libstdc++ 3 # define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp" diff --git a/3party/boost/boost/config/stdlib/libcpp.hpp b/3party/boost/boost/config/stdlib/libcpp.hpp new file mode 100644 index 0000000000..db7f6f15eb --- /dev/null +++ b/3party/boost/boost/config/stdlib/libcpp.hpp @@ -0,0 +1,34 @@ +// (C) Copyright Christopher Jefferson 2011. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org for most recent version. + +// config for libc++ +// Might need more in here later. + +#if !defined(_LIBCPP_VERSION) +# include +# if !defined(_LIBCPP_VERSION) +# error "This is not libc++!" +# endif +#endif + +#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION) + +#define BOOST_HAS_THREADS + +#define BOOST_NO_0X_HDR_CONCEPTS +#define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS +#define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS +#define BOOST_NO_0X_HDR_MEMORY_CONCEPTS + +#ifdef _LIBCPP_HAS_NO_VARIADICS +# define BOOST_NO_0X_HDR_TUPLE +#endif + +// libc++ uses a non-standard messages_base +#define BOOST_NO_STD_MESSAGES + +// --- end --- diff --git a/3party/boost/boost/config/stdlib/libstdcpp3.hpp b/3party/boost/boost/config/stdlib/libstdcpp3.hpp index 75bfc4aa26..c048b89693 100644 --- a/3party/boost/boost/config/stdlib/libstdcpp3.hpp +++ b/3party/boost/boost/config/stdlib/libstdcpp3.hpp @@ -9,6 +9,8 @@ // config for libstdc++ v3 // not much to go in here: +#define BOOST_GNU_STDLIB 1 + #ifdef __GLIBCXX__ #define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__) #else diff --git a/3party/boost/boost/config/stdlib/roguewave.hpp b/3party/boost/boost/config/stdlib/roguewave.hpp index dcd0af84d0..b43623b58b 100644 --- a/3party/boost/boost/config/stdlib/roguewave.hpp +++ b/3party/boost/boost/config/stdlib/roguewave.hpp @@ -10,6 +10,8 @@ // Rogue Wave std lib: +#define BOOST_RW_STDLIB 1 + #if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER) # include # if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER) @@ -154,7 +156,10 @@ // C++0x headers not yet implemented // +#if _RWSTD_VER < 0x05000000 # define BOOST_NO_0X_HDR_ARRAY +# define BOOST_NO_0X_HDR_TYPE_TRAITS +#endif # define BOOST_NO_0X_HDR_CHRONO # define BOOST_NO_0X_HDR_CODECVT # define BOOST_NO_0X_HDR_CONCEPTS @@ -172,7 +177,6 @@ # define BOOST_NO_0X_HDR_SYSTEM_ERROR # define BOOST_NO_0X_HDR_THREAD # define BOOST_NO_0X_HDR_TUPLE -# define BOOST_NO_0X_HDR_TYPE_TRAITS # define BOOST_NO_0X_HDR_TYPEINDEX # define BOOST_NO_STD_UNORDERED // deprecated; see following # define BOOST_NO_0X_HDR_UNORDERED_MAP diff --git a/3party/boost/boost/config/suffix.hpp b/3party/boost/boost/config/suffix.hpp index 4e608d248d..9cce6fd736 100644 --- a/3party/boost/boost/config/suffix.hpp +++ b/3party/boost/boost/config/suffix.hpp @@ -600,7 +600,7 @@ namespace boost{ // the global definition into std namespace: #ifdef BOOST_NO_STD_TYPEINFO #include -namespace std{ using ::typeinfo; } +namespace std{ using ::type_info; } #endif // ---------------------------------------------------------------------------// @@ -639,10 +639,6 @@ namespace std{ using ::typeinfo; } # if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \ || defined(_POSIX_SOURCE) # define BOOST_PLATFORM "Generic Unix" -# define BOOST_NIX 1 -//# define BOOST_GENETIC_NIX 1 -//# define BOOST_TRADEMARK_NIX 1 -# define BOOST_FUNCTIONAL_NIX 1 # else # define BOOST_PLATFORM "Unknown" # endif diff --git a/3party/boost/boost/filesystem/v3/fstream.hpp b/3party/boost/boost/filesystem/v3/fstream.hpp index 235aa794cc..60a2a3b2b4 100644 --- a/3party/boost/boost/filesystem/v3/fstream.hpp +++ b/3party/boost/boost/filesystem/v3/fstream.hpp @@ -27,7 +27,8 @@ // on Windows, except for standard libaries known to have wchar_t overloads for // file stream I/O, use path::string() to get a narrow character c_str() #if defined(BOOST_WINDOWS_API) \ - && !(defined(_CPPLIB_VER) && _CPPLIB_VER >= 405) // not (Dinkumware with overloads) + && (!defined(_CPPLIB_VER) || _CPPLIB_VER < 405 || defined(_STLPORT_VERSION)) + // !Dinkumware || early Dinkumware || STLPort masquerading as Dinkumware # define BOOST_FILESYSTEM_C_STR string().c_str() // use narrow, since wide not available #else // use the native c_str, which will be narrow on POSIX, wide on Windows # define BOOST_FILESYSTEM_C_STR c_str() diff --git a/3party/boost/boost/filesystem/v3/path.hpp b/3party/boost/boost/filesystem/v3/path.hpp index 489836e748..f81b631d19 100644 --- a/3party/boost/boost/filesystem/v3/path.hpp +++ b/3party/boost/boost/filesystem/v3/path.hpp @@ -452,7 +452,6 @@ namespace filesystem3 void m_erase_redundant_separator(string_type::size_type sep_pos); string_type::size_type m_parent_path_end() const; - void m_portable(); path& m_normalize(); diff --git a/3party/boost/boost/fusion/include/make_unfused_generic.hpp b/3party/boost/boost/fusion/include/make_unfused_generic.hpp deleted file mode 100644 index dcebceb1dd..0000000000 --- a/3party/boost/boost/fusion/include/make_unfused_generic.hpp +++ /dev/null @@ -1,12 +0,0 @@ -/*============================================================================= - Copyright (c) 2001-2007 Joel de Guzman - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -==============================================================================*/ -#if !defined(FUSION_INCLUDE_MAKE_UNFUSED_GENERIC) -#define FUSION_INCLUDE_MAKE_UNFUSED_GENERIC - -#include - -#endif diff --git a/3party/boost/boost/fusion/include/make_unfused_lvalue_args.hpp b/3party/boost/boost/fusion/include/make_unfused_lvalue_args.hpp deleted file mode 100644 index 1805bb18e4..0000000000 --- a/3party/boost/boost/fusion/include/make_unfused_lvalue_args.hpp +++ /dev/null @@ -1,12 +0,0 @@ -/*============================================================================= - Copyright (c) 2001-2007 Joel de Guzman - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -==============================================================================*/ -#if !defined(FUSION_INCLUDE_MAKE_UNFUSED_LVALUE_ARGS) -#define FUSION_INCLUDE_MAKE_UNFUSED_LVALUE_ARGS - -#include - -#endif diff --git a/3party/boost/boost/fusion/include/make_unfused_rvalue_args.hpp b/3party/boost/boost/fusion/include/make_unfused_rvalue_args.hpp deleted file mode 100644 index 0d546be734..0000000000 --- a/3party/boost/boost/fusion/include/make_unfused_rvalue_args.hpp +++ /dev/null @@ -1,12 +0,0 @@ -/*============================================================================= - Copyright (c) 2001-2007 Joel de Guzman - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -==============================================================================*/ -#if !defined(FUSION_INCLUDE_MAKE_UNFUSED_RVALUE_ARGS) -#define FUSION_INCLUDE_MAKE_UNFUSED_RVALUE_ARGS - -#include - -#endif diff --git a/3party/boost/boost/fusion/include/unfused_generic.hpp b/3party/boost/boost/fusion/include/unfused_generic.hpp deleted file mode 100644 index d377900f9d..0000000000 --- a/3party/boost/boost/fusion/include/unfused_generic.hpp +++ /dev/null @@ -1,12 +0,0 @@ -/*============================================================================= - Copyright (c) 2001-2007 Joel de Guzman - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -==============================================================================*/ -#if !defined(FUSION_INCLUDE_UNFUSED_GENERIC) -#define FUSION_INCLUDE_UNFUSED_GENERIC - -#include - -#endif diff --git a/3party/boost/boost/fusion/include/unfused_lvalue_args.hpp b/3party/boost/boost/fusion/include/unfused_lvalue_args.hpp deleted file mode 100644 index 17acc261c3..0000000000 --- a/3party/boost/boost/fusion/include/unfused_lvalue_args.hpp +++ /dev/null @@ -1,12 +0,0 @@ -/*============================================================================= - Copyright (c) 2001-2007 Joel de Guzman - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -==============================================================================*/ -#if !defined(FUSION_INCLUDE_UNFUSED_LVALUE_ARGS) -#define FUSION_INCLUDE_UNFUSED_LVALUE_ARGS - -#include - -#endif diff --git a/3party/boost/boost/fusion/include/unfused_rvalue_args.hpp b/3party/boost/boost/fusion/include/unfused_rvalue_args.hpp deleted file mode 100644 index 556b2dee28..0000000000 --- a/3party/boost/boost/fusion/include/unfused_rvalue_args.hpp +++ /dev/null @@ -1,12 +0,0 @@ -/*============================================================================= - Copyright (c) 2001-2007 Joel de Guzman - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -==============================================================================*/ -#if !defined(FUSION_INCLUDE_UNFUSED_RVALUE_ARGS) -#define FUSION_INCLUDE_UNFUSED_RVALUE_ARGS - -#include - -#endif diff --git a/3party/boost/boost/fusion/sequence/comparison/detail/enable_comparison.hpp b/3party/boost/boost/fusion/sequence/comparison/detail/enable_comparison.hpp deleted file mode 100644 index 3e79277ed4..0000000000 --- a/3party/boost/boost/fusion/sequence/comparison/detail/enable_comparison.hpp +++ /dev/null @@ -1,38 +0,0 @@ -/*============================================================================= - Copyright (c) 2001-2006 Joel de Guzman - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -==============================================================================*/ -#if !defined(FUSION_ENABLE_COMPARISON_09232005_1958) -#define FUSION_ENABLE_COMPARISON_09232005_1958 - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace fusion { namespace detail -{ - template - struct is_native_fusion_sequence : is_base_of {}; - - template - struct enable_equality - : mpl::or_, is_native_fusion_sequence > - {}; - - template - struct enable_comparison - : mpl::and_< - mpl::or_, is_native_fusion_sequence > - , mpl::equal_to, result_of::size > - > - {}; - -}}} - -#endif diff --git a/3party/boost/boost/fusion/sequence/comparison/less_equal.hpp b/3party/boost/boost/fusion/sequence/comparison/less_equal.hpp index 6e940a21b3..bef722718f 100644 --- a/3party/boost/boost/fusion/sequence/comparison/less_equal.hpp +++ b/3party/boost/boost/fusion/sequence/comparison/less_equal.hpp @@ -46,14 +46,14 @@ namespace boost { namespace fusion } template - inline typename disable_if, bool>::type + inline typename disable_if, bool>::type operator<=(sequence_base const& a, Seq2 const& b) { return less_equal(a.derived(), b); } template - inline typename disable_if, bool>::type + inline typename disable_if, bool>::type operator<=(Seq1 const& a, sequence_base const& b) { return less_equal(a, b.derived()); diff --git a/3party/boost/boost/graph/graph_traits.hpp b/3party/boost/boost/graph/graph_traits.hpp index fd1b0415c8..257438f5aa 100644 --- a/3party/boost/boost/graph/graph_traits.hpp +++ b/3party/boost/boost/graph/graph_traits.hpp @@ -217,6 +217,11 @@ namespace boost { //?? not the right place ?? Lee typedef boost::forward_traversal_tag multi_pass_input_iterator_tag; + // Forward declare graph_bundle_t property name (from + // boost/graph/properties.hpp, which includes this file) for + // bundled_result. + enum graph_bundle_t {graph_bundle}; + template struct graph_property_type { typedef typename G::graph_property_type type; @@ -261,6 +266,14 @@ namespace boost { typedef typename bundler::type type; }; + template + class bundled_result { + typedef typename graph_traits::vertex_descriptor Vertex; + typedef graph_bundle_type bundler; + public: + typedef typename bundler::type type; + }; + } } // namespace graph::detail namespace graph_detail { diff --git a/3party/boost/boost/graph/isomorphism.hpp b/3party/boost/boost/graph/isomorphism.hpp index 9461dc31e5..f58690266f 100644 --- a/3party/boost/boost/graph/isomorphism.hpp +++ b/3party/boost/boost/graph/isomorphism.hpp @@ -284,18 +284,30 @@ namespace boost { typedef size_type result_type; degree_vertex_invariant(const InDegreeMap& in_degree_map, const Graph& g) - : m_in_degree_map(in_degree_map), m_g(g) { } + : m_in_degree_map(in_degree_map), + m_max_vertex_in_degree(0), + m_max_vertex_out_degree(0), + m_g(g) { + BGL_FORALL_VERTICES_T(v, g, Graph) { + m_max_vertex_in_degree = + (std::max)(m_max_vertex_in_degree, get(m_in_degree_map, v)); + m_max_vertex_out_degree = + (std::max)(m_max_vertex_out_degree, out_degree(v, g)); + } + } size_type operator()(vertex_t v) const { - return (num_vertices(m_g) + 1) * out_degree(v, m_g) + return (m_max_vertex_in_degree + 1) * out_degree(v, m_g) + get(m_in_degree_map, v); } // The largest possible vertex invariant number size_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const { - return num_vertices(m_g) * num_vertices(m_g) + num_vertices(m_g); + return (m_max_vertex_in_degree + 2) * m_max_vertex_out_degree + 1; } private: InDegreeMap m_in_degree_map; + size_type m_max_vertex_in_degree; + size_type m_max_vertex_out_degree; const Graph& m_g; }; diff --git a/3party/boost/boost/graph/properties.hpp b/3party/boost/boost/graph/properties.hpp index f4c57ea259..dd7a735765 100644 --- a/3party/boost/boost/graph/properties.hpp +++ b/3party/boost/boost/graph/properties.hpp @@ -126,7 +126,8 @@ namespace boost { BOOST_DEF_PROPERTY(graph, visitor); // These tags are used for property bundles - BOOST_DEF_PROPERTY(graph, bundle); + // BOOST_DEF_PROPERTY(graph, bundle); -- needed in graph_traits.hpp, so enum is defined there + BOOST_INSTALL_PROPERTY(graph, bundle); BOOST_DEF_PROPERTY(vertex, bundle); BOOST_DEF_PROPERTY(edge, bundle); diff --git a/3party/boost/boost/graph/reverse_graph.hpp b/3party/boost/boost/graph/reverse_graph.hpp index 30d303b19f..4067f2c2e5 100644 --- a/3party/boost/boost/graph/reverse_graph.hpp +++ b/3party/boost/boost/graph/reverse_graph.hpp @@ -90,12 +90,6 @@ class reverse_graph { typename graph::detail::bundled_result::type const& operator[](Descriptor x) const { return m_g[x]; } - - typename boost::graph_property_type::type& operator[](graph_bundle_t) - { return get_property(*this); } - - typename boost::graph_property_type::type const& operator[](graph_bundle_t) const - { return get_property(*this); } #endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES static vertex_descriptor null_vertex() diff --git a/3party/boost/boost/graph/subgraph.hpp b/3party/boost/boost/graph/subgraph.hpp index 9e0919413f..2b702a80fe 100644 --- a/3party/boost/boost/graph/subgraph.hpp +++ b/3party/boost/boost/graph/subgraph.hpp @@ -78,12 +78,12 @@ class subgraph { typedef graph_traits Traits; typedef std::list*> ChildrenList; public: -// Graph requirements -typedef typename Traits::vertex_descriptor vertex_descriptor; -typedef typename Traits::edge_descriptor edge_descriptor; -typedef typename Traits::directed_category directed_category; -typedef typename Traits::edge_parallel_category edge_parallel_category; -typedef typename Traits::traversal_category traversal_category; + // Graph requirements + typedef typename Traits::vertex_descriptor vertex_descriptor; + typedef typename Traits::edge_descriptor edge_descriptor; + typedef typename Traits::directed_category directed_category; + typedef typename Traits::edge_parallel_category edge_parallel_category; + typedef typename Traits::traversal_category traversal_category; // IncidenceGraph requirements typedef typename Traits::out_edge_iterator out_edge_iterator; @@ -196,12 +196,22 @@ typedef typename Traits::traversal_category traversal_category; std::pair find_vertex(vertex_descriptor u_global) const { if (is_root()) return std::make_pair(u_global, true); - typename std::map::const_iterator - i = m_local_vertex.find(u_global); + typename LocalVertexMap::const_iterator i = m_local_vertex.find(u_global); bool valid = i != m_local_vertex.end(); return std::make_pair((valid ? (*i).second : null_vertex()), valid); } + // Is edge e (of the root graph) contained in this subgraph? + // If so, return the matching local edge. + std::pair + find_edge(edge_descriptor e_global) const { + if (is_root()) return std::make_pair(e_global, true); + typename LocalEdgeMap::const_iterator i = + m_local_edge.find(get(get(edge_index, root().m_graph), e_global)); + bool valid = i != m_local_edge.end(); + return std::make_pair((valid ? (*i).second : edge_descriptor()), valid); + } + // Return the parent graph. subgraph& parent() { return *m_parent; } const subgraph& parent() const { return *m_parent; } @@ -617,38 +627,18 @@ namespace detail { //------------------------------------------------------------------------- // implementation of remove_edge(e,g) - template - void remove_edge_recur_down(Edge e_global, subgraph& g); - template + template void children_remove_edge(Edge e_global, Children& c) { for(typename Children::iterator i = c.begin(); i != c.end(); ++i) { - if((*i)->find_vertex(source(e_global, **i)).second && - (*i)->find_vertex(target(e_global, **i)).second) - { - remove_edge_recur_down(source(e_global, **i), - target(e_global, **i), - **i); + std::pair::edge_descriptor, bool> found = + (*i)->find_edge(e_global); + if (!found.second) { + continue; } - } - } - - template - void remove_edge_recur_down(Edge e_global, subgraph& g) - { - remove_edge(g.global_to_local(e_global), g.m_graph); - children_remove_edge(e_global, g.m_children); - } - - template - void remove_edge_recur_up(Edge e_global, subgraph& g) - { - if (g.is_root()) { - remove_edge(e_global, g.m_graph); - children_remove_edge(e_global, g.m_children); - } else { - remove_edge_recur_up(e_global, *g.m_parent); + children_remove_edge(e_global, (*i)->m_children); + remove_edge(found.first, (*i)->m_graph); } } @@ -672,11 +662,14 @@ template void remove_edge(typename subgraph::edge_descriptor e, subgraph& g) { - if(g.is_root()) { - detail::remove_edge_recur_up(e, g); - } else { - detail::remove_edge_recur_up(g.local_to_global(e), g); - } + typename subgraph::edge_descriptor e_global = g.local_to_global(e); +#ifndef NDEBUG + std::pair::edge_descriptor, bool> fe = g.find_edge(e_global); + assert(fe.second && fe.first == e); +#endif //NDEBUG + subgraph &root = g.root(); // chase to root + detail::children_remove_edge(e_global, root.m_children); + remove_edge(e_global, root.m_graph); // kick edge from root } // This is slow, but there may not be a good way to do it safely otherwise @@ -691,7 +684,7 @@ remove_edge_if(Predicate p, subgraph& g) { if (p(*ep.first)) { any_removed = true; remove_edge(*ep.first, g); - continue; /* Since iterators may be invalidated */ + break; /* Since iterators may be invalidated */ } } if (!any_removed) break; diff --git a/3party/boost/boost/graph/transitive_reduction.hpp b/3party/boost/boost/graph/transitive_reduction.hpp index 44dfee989d..f7cb34b8c0 100644 --- a/3party/boost/boost/graph/transitive_reduction.hpp +++ b/3party/boost/boost/graph/transitive_reduction.hpp @@ -99,7 +99,7 @@ transitive_reduction(const Graph& g, GraphTR& tr, { //and run through all vertices in topological order typename std::vector::reverse_iterator - rit = topo_order.rbegin(); + rit = topo_order.rbegin(), rend = topo_order.rend(); for(; rit != rend; ++rit ) { //looking if they are successors of *it diff --git a/3party/boost/boost/icl/associative_interval_container.hpp b/3party/boost/boost/icl/associative_interval_container.hpp index 24ded90305..f238a0fff0 100644 --- a/3party/boost/boost/icl/associative_interval_container.hpp +++ b/3party/boost/boost/icl/associative_interval_container.hpp @@ -11,6 +11,7 @@ Copyright (c) 2010-2010: Joachim Faulhaber #include #include #include +#include #include #include #include diff --git a/3party/boost/boost/icl/concept/interval.hpp b/3party/boost/boost/icl/concept/interval.hpp index 98b6f85bfc..a491578189 100644 --- a/3party/boost/boost/icl/concept/interval.hpp +++ b/3party/boost/boost/icl/concept/interval.hpp @@ -119,6 +119,85 @@ singleton(const typename interval_traits::domain_type& value) return dynamic_interval_traits::construct(value, value, interval_bounds::closed()); } +namespace detail +{ + +//============================================================================== +//= Construct unit_trail == generalized singleton +// The smallest interval on an incrementable (and decrementable) type that can +// be constructed using ++ and -- and such that it contains a given value. +// If 'Type' is discrete, 'unit_trail' and 'singleton' are identical. So we +// can view 'unit_trail' as a generalized singleton for static intervals of +// continuous types. +//============================================================================== +template +typename enable_if +< + mpl::and_< is_static_right_open + , boost::detail::is_incrementable::domain_type> > + , Type +>::type +unit_trail(const typename interval_traits::domain_type& value) +{ + return interval_traits::construct(value, icl::succ(value)); +} + +template +typename enable_if +< + mpl::and_< is_static_left_open + , boost::detail::is_incrementable::domain_type> > + , Type +>::type +unit_trail(const typename interval_traits::domain_type& value) +{ + typedef typename interval_traits::domain_type domain_type; + BOOST_ASSERT((numeric_minimum::value >::is_less_than(value) )); + + return interval_traits::construct(icl::pred(value), value); +} + +template +typename enable_if +< + mpl::and_< is_static_open + , is_discrete::domain_type> > + , Type +>::type +unit_trail(const typename interval_traits::domain_type& value) +{ + typedef typename interval_traits::domain_type domain_type; + BOOST_ASSERT((numeric_minimum::value >::is_less_than(value))); + + return interval_traits::construct(icl::pred(value), icl::succ(value)); +} + +template +typename enable_if +< + mpl::and_< is_static_closed + , is_discrete::domain_type> > + , Type +>::type +unit_trail(const typename interval_traits::domain_type& value) +{ + return interval_traits::construct(value, value); +} + +//NOTE: statically bounded closed or open intervals of continuous domain types +// are NOT supported by ICL. They can not be used with interval containers +// consistently. + + +template +typename enable_if, Type>::type +unit_trail(const typename interval_traits::domain_type& value) +{ + return dynamic_interval_traits::construct(value, value, interval_bounds::closed()); +} + +} //namespace detail + //============================================================================== //= Construct multon //============================================================================== @@ -1341,7 +1420,6 @@ operator << (std::basic_ostream &stream, Type const& objec << right_bracket(object) ; } - }} // namespace icl boost #endif diff --git a/3party/boost/boost/icl/concept/interval_associator.hpp b/3party/boost/boost/icl/concept/interval_associator.hpp index 38188e146c..2447441dcf 100644 --- a/3party/boost/boost/icl/concept/interval_associator.hpp +++ b/3party/boost/boost/icl/concept/interval_associator.hpp @@ -202,7 +202,6 @@ distance(const Type& object) return dist; } - //============================================================================== //= Range //============================================================================== @@ -220,23 +219,25 @@ hull(const Type& object) template typename enable_if, - typename Type::interval_type>::type + typename domain_type_of::type>::type lower(const Type& object) { + typedef typename domain_type_of::type DomainT; return icl::is_empty(object) - ? identity_element::value() + ? unit_element::value() : icl::lower( key_value(object.begin()) ); } template typename enable_if, - typename Type::interval_type>::type + typename domain_type_of::type>::type upper(const Type& object) { + typedef typename domain_type_of::type DomainT; return icl::is_empty(object) - ? identity_element::value() + ? identity_element::value() : icl::upper( key_value(object.rbegin()) ); } @@ -244,26 +245,28 @@ upper(const Type& object) template typename enable_if < mpl::and_< is_interval_container - , is_discrete > -, typename Type::interval_type>::type + , is_discrete::type> > +, typename domain_type_of::type>::type first(const Type& object) { + typedef typename domain_type_of::type DomainT; return icl::is_empty(object) - ? identity_element::value() + ? unit_element::value() : icl::first( key_value(object.begin()) ); } template typename enable_if < mpl::and_< is_interval_container - , is_discrete > -, typename Type::interval_type>::type + , is_discrete::type> > +, typename domain_type_of::type>::type last(const Type& object) { + typedef typename domain_type_of::type DomainT; return icl::is_empty(object) - ? identity_element::value() + ? identity_element::value() : icl::last( key_value(object.rbegin()) ); } @@ -646,7 +649,7 @@ operator & (Type object, const Type& operand) //------------------------------------------------------------------------------ template typename enable_if - , is_same > >, + , boost::is_same::type> >, bool>::type intersects(const Type& left, const CoType& right) { @@ -655,13 +658,14 @@ intersects(const Type& left, const CoType& right) template typename enable_if - , is_same > >, + , boost::is_same::type> >, bool>::type intersects(const Type& left, const CoType& right) { return left.find(right) != left.end(); } + template typename enable_if< mpl::and_< is_intra_combinable , mpl::or_, is_total > > @@ -720,15 +724,6 @@ intersects(const LeftT& left, const RightT& right) return false; } -template -typename enable_if - , is_inter_derivative >, - bool>::type -intersects(const Type& left, const AssociateT& right) -{ - return icl::intersects(left, right); -} - /** \b Returns true, if \c left and \c right have no common elements. Intervals are interpreted as sequence of elements. \b Complexity: loglinear, if \c left and \c right are interval containers. */ @@ -750,6 +745,7 @@ disjoint(const Type& left, const AssociateT& right) return !intersects(left,right); } + //============================================================================== //= Symmetric difference //============================================================================== @@ -895,51 +891,6 @@ elements_rend(const Type& object) return typename Type::element_const_reverse_iterator(object.rend()); } -//============================================================================== -//= Morphisms -//============================================================================== -template -typename enable_if, Type>::type& -join(Type& object) -{ - typedef typename Type::interval_type interval_type; - typedef typename Type::iterator iterator; - - iterator it_ = object.begin(); - if(it_ == object.end()) - return object; - - iterator next_ = it_; next_++; - - while(next_ != object.end()) - { - if( segmental::is_joinable(it_, next_) ) - { - iterator fst_mem = it_; // hold the first member - - // Go on while touching members are found - it_++; next_++; - while( next_ != object.end() - && segmental::is_joinable(it_, next_) ) - { it_++; next_++; } - - // finally we arrive at the end of a sequence of joinable intervals - // and it points to the last member of that sequence - const_cast(key_value(it_)) - = hull(key_value(it_), key_value(fst_mem)); - object.erase(fst_mem, it_); - - it_++; next_=it_; - if(next_!=object.end()) - next_++; - } - else { it_++; next_++; } - } - return object; -} - - - }} // namespace boost icl #endif diff --git a/3party/boost/boost/icl/concept/interval_associator_base.hpp b/3party/boost/boost/icl/concept/interval_associator_base.hpp new file mode 100644 index 0000000000..374bd00e9d --- /dev/null +++ b/3party/boost/boost/icl/concept/interval_associator_base.hpp @@ -0,0 +1,149 @@ +/*-----------------------------------------------------------------------------+ +Copyright (c) 2011-2011: Joachim Faulhaber ++------------------------------------------------------------------------------+ + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENCE.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) ++-----------------------------------------------------------------------------*/ +#ifndef BOOST_ICL_CONCEPT_INTERVAL_ASSOCIATOR_BASE_HPP_JOFA_110301 +#define BOOST_ICL_CONCEPT_INTERVAL_ASSOCIATOR_BASE_HPP_JOFA_110301 + +#include +#include +#include +#include +#include +#include + +namespace boost{ namespace icl +{ + +//============================================================================== +//= Selection +//============================================================================== +template +typename enable_if + , is_discrete::type> + > + , typename Type::const_iterator>::type +find(const Type& object, const typename domain_type_of::type& key_val) +{ + typedef typename Type::const_iterator const_iterator; + typedef typename Type::interval_type interval_type; + return object.find(icl::detail::unit_trail(key_val)); +} + +template +typename enable_if + , is_continuous::type> + , has_dynamic_bounds::type> + > + , typename Type::const_iterator>::type +find(const Type& object, const typename domain_type_of::type& key_val) +{ + typedef typename Type::const_iterator const_iterator; + typedef typename Type::interval_type interval_type; + return object.find(icl::singleton(key_val)); +} + +template +typename enable_if + , is_continuous::type> + , is_static_right_open::type> + , boost::detail::is_incrementable::type> + > + , typename Type::const_iterator>::type +find(const Type& object, const typename domain_type_of::type& key_val) +{ + typedef typename Type::const_iterator const_iterator; + typedef typename Type::interval_type interval_type; + const_iterator first_collision = object.lower_bound(icl::detail::unit_trail(key_val)); + // A part of the unit_trail(key_value)-interval may be found in the container, that + // does not contain key_value. Therefore we have to check for its existence: + return ( first_collision == object.end() + || icl::contains(key_value(first_collision), key_val) ) + ? first_collision + : object.end(); +} + +template +typename enable_if + , is_continuous::type> + , is_static_left_open::type> + , boost::detail::is_incrementable::type> + > + , typename Type::const_iterator>::type +find(const Type& object, const typename domain_type_of::type& key_val) +{ + typedef typename Type::const_iterator const_iterator; + typedef typename Type::interval_type interval_type; + const_iterator last_collision = object.upper_bound(icl::detail::unit_trail(key_val)); + if(last_collision != object.begin()) + --last_collision; + // A part of the unit_trail(key_value)-interval may be found in the container, that + // does not contain key_value. Therefore we have to check for its existence: + return ( last_collision == object.end() + || icl::contains(key_value(last_collision), key_val) ) + ? last_collision + : object.end(); +} + +// NOTE: find(object, key) won't compile if key is of continuous type that does +// not implement in(de)crementation (e.g. std::string). + +template +typename enable_if< is_interval_container + , typename Type::const_iterator>::type +find(const Type& object, const typename interval_type_of::type& inter_val) +{ + return object.find(inter_val); +} + +//============================================================================== +//= Morphisms +//============================================================================== +template +typename enable_if, Type>::type& +join(Type& object) +{ + typedef typename Type::interval_type interval_type; + typedef typename Type::iterator iterator; + + iterator it_ = object.begin(); + if(it_ == object.end()) + return object; + + iterator next_ = it_; next_++; + + while(next_ != object.end()) + { + if( segmental::is_joinable(it_, next_) ) + { + iterator fst_mem = it_; // hold the first member + + // Go on while touching members are found + it_++; next_++; + while( next_ != object.end() + && segmental::is_joinable(it_, next_) ) + { it_++; next_++; } + + // finally we arrive at the end of a sequence of joinable intervals + // and it points to the last member of that sequence + const_cast(key_value(it_)) + = hull(key_value(it_), key_value(fst_mem)); + object.erase(fst_mem, it_); + + it_++; next_=it_; + if(next_!=object.end()) + next_++; + } + else { it_++; next_++; } + } + return object; +} + +}} // namespace boost icl + +#endif + + diff --git a/3party/boost/boost/icl/concept/interval_map.hpp b/3party/boost/boost/icl/concept/interval_map.hpp index e741f84a99..3e1df05fb7 100644 --- a/3party/boost/boost/icl/concept/interval_map.hpp +++ b/3party/boost/boost/icl/concept/interval_map.hpp @@ -22,11 +22,6 @@ Copyright (c) 2010-2010: Joachim Faulhaber namespace boost{ namespace icl { -template -typename enable_if, Type>::type& -join(Type&); - - template inline typename enable_if, typename Type::segment_type>::type make_segment(const typename Type::element_type& element) @@ -36,6 +31,7 @@ make_segment(const typename Type::element_type& element) return segment_type(icl::singleton(element.key), element.data); } + //============================================================================== //= Containedness //============================================================================== @@ -47,7 +43,7 @@ typename enable_if, bool>::type contains(const Type& super, const typename Type::element_type& key_value_pair) { typedef typename Type::const_iterator const_iterator; - const_iterator it_ = super.find(key_value_pair.key); + const_iterator it_ = icl::find(super, key_value_pair.key); return it_ != super.end() && it_->second == key_value_pair.data; } @@ -433,7 +429,8 @@ add_intersection(Type& section, const Type& object, const KeySetT& key_set) template typename enable_if , is_total - , is_same > >, + , boost::is_same< OperandT + , typename segment_type_of::type> >, bool>::type intersects(const Type&, const OperandT&) { @@ -443,18 +440,18 @@ intersects(const Type&, const OperandT&) template typename enable_if , mpl::not_ > - , is_same > >, + , boost::is_same::type> >, bool>::type intersects(const Type& object, const OperandT& operand) { Type intersection; - icl::add_intersection(intersection, left, operand); + icl::add_intersection(intersection, object, operand); return !icl::is_empty(intersection); } template typename enable_if - , is_same > >, + , boost::is_same::type> >, bool>::type intersects(const Type& object, const OperandT& operand) { diff --git a/3party/boost/boost/icl/concept/interval_set.hpp b/3party/boost/boost/icl/concept/interval_set.hpp index 958145c5dd..63aad41063 100644 --- a/3party/boost/boost/icl/concept/interval_set.hpp +++ b/3party/boost/boost/icl/concept/interval_set.hpp @@ -9,6 +9,7 @@ Copyright (c) 2010-2010: Joachim Faulhaber #define BOOST_ICL_CONCEPT_INTERVAL_SET_HPP_JOFA_100920 #include +#include #include #include #include @@ -26,7 +27,7 @@ template typename enable_if, bool>::type contains(const Type& super, const typename Type::element_type& element) { - return !(super.find(element) == super.end()); + return !(icl::find(super, element) == super.end()); } template @@ -173,7 +174,7 @@ add_intersection(Type& section, const Type& object, const typename Type::element_type& operand) { typedef typename Type::const_iterator const_iterator; - const_iterator found = object.find(operand); + const_iterator found = icl::find(object, operand); if(found != object.end()) icl::add(section, operand); } diff --git a/3party/boost/boost/icl/interval_base_map.hpp b/3party/boost/boost/icl/interval_base_map.hpp index 94f1855d59..28d44c88b2 100644 --- a/3party/boost/boost/icl/interval_base_map.hpp +++ b/3party/boost/boost/icl/interval_base_map.hpp @@ -253,20 +253,22 @@ public: //========================================================================== /** Find the interval value pair, that contains \c key */ - const_iterator find(const domain_type& key)const + const_iterator find(const domain_type& key_value)const { - return _map.find(interval_type(key)); + return icl::find(*this, key_value); } - const_iterator find(const interval_type& key)const + /** Find the first interval value pair, that collides with interval + \c key_interval */ + const_iterator find(const interval_type& key_interval)const { - return _map.find(key); + return _map.find(key_interval); } /** Total select function. */ - codomain_type operator()(const domain_type& key)const + codomain_type operator()(const domain_type& key_value)const { - const_iterator it_ = _map.find(interval_type(key)); + const_iterator it_ = icl::find(*this, key_value); return it_==end() ? identity_element::value() : it_->second; } diff --git a/3party/boost/boost/icl/interval_base_set.hpp b/3party/boost/boost/icl/interval_base_set.hpp index e131b2e7a8..e8aa096abe 100644 --- a/3party/boost/boost/icl/interval_base_set.hpp +++ b/3party/boost/boost/icl/interval_base_set.hpp @@ -201,15 +201,17 @@ public: //= Selection //========================================================================== - /** Find the interval value pair, that contains element \c key */ - const_iterator find(const element_type& key)const + /** Find the interval, that contains element \c key_value */ + const_iterator find(const element_type& key_value)const { - return this->_set.find(icl::singleton(key)); + return icl::find(*this, key_value); + //CL return this->_set.find(icl::singleton(key)); } - const_iterator find(const segment_type& segment)const + /** Find the first interval, that collides with interval \c key_interval */ + const_iterator find(const interval_type& key_interval)const { - return this->_set.find(segment); + return this->_set.find(key_interval); } //========================================================================== diff --git a/3party/boost/boost/icl/rational.hpp b/3party/boost/boost/icl/rational.hpp index 51151d0f82..fd63cc98ce 100644 --- a/3party/boost/boost/icl/rational.hpp +++ b/3party/boost/boost/icl/rational.hpp @@ -59,7 +59,7 @@ namespace boost{namespace icl struct has_inverse > { typedef has_inverse type; - BOOST_STATIC_CONSTANT(bool, value = (is_signed::value)); + BOOST_STATIC_CONSTANT(bool, value = (boost::is_signed::value)); }; }} // namespace icl boost diff --git a/3party/boost/boost/icl/type_traits/has_inverse.hpp b/3party/boost/boost/icl/type_traits/has_inverse.hpp index 420e63861f..e73d7af594 100644 --- a/3party/boost/boost/icl/type_traits/has_inverse.hpp +++ b/3party/boost/boost/icl/type_traits/has_inverse.hpp @@ -18,7 +18,7 @@ namespace boost{ namespace icl { typedef has_inverse type; BOOST_STATIC_CONSTANT(bool, - value = (type_traits::ice_or::value, + value = (type_traits::ice_or::value, is_floating_point::value>::value)); }; diff --git a/3party/boost/boost/icl/type_traits/is_combinable.hpp b/3party/boost/boost/icl/type_traits/is_combinable.hpp index 5d607246cb..44d23c8d97 100644 --- a/3party/boost/boost/icl/type_traits/is_combinable.hpp +++ b/3party/boost/boost/icl/type_traits/is_combinable.hpp @@ -25,7 +25,7 @@ struct is_overloadable { typedef is_overloadable type; BOOST_STATIC_CONSTANT(bool, value = - (is_same::value) + (boost::is_same::value) ); }; @@ -36,8 +36,8 @@ struct is_codomain_equal { typedef is_codomain_equal type; BOOST_STATIC_CONSTANT(bool, value = - (is_same::value) + (boost::is_same::value) ); }; @@ -47,8 +47,8 @@ struct is_key_compare_equal { typedef is_key_compare_equal type; BOOST_STATIC_CONSTANT(bool, value = - (is_same::value) + (boost::is_same::value) ); }; diff --git a/3party/boost/boost/icl/type_traits/is_container.hpp b/3party/boost/boost/icl/type_traits/is_container.hpp index 6f08b70598..370003cf00 100644 --- a/3party/boost/boost/icl/type_traits/is_container.hpp +++ b/3party/boost/boost/icl/type_traits/is_container.hpp @@ -42,8 +42,8 @@ namespace boost{ namespace icl BOOST_STATIC_CONSTANT(bool, value = (mpl::and_< is_container , detail::has_key_type - , is_same< typename key_type_of::type - , typename value_type_of::type > + , boost::is_same< typename key_type_of::type + , typename value_type_of::type > , mpl::not_ > >::value ) ); diff --git a/3party/boost/boost/icl/type_traits/is_key_container_of.hpp b/3party/boost/boost/icl/type_traits/is_key_container_of.hpp index a348eb25ad..b0b9df5878 100644 --- a/3party/boost/boost/icl/type_traits/is_key_container_of.hpp +++ b/3party/boost/boost/icl/type_traits/is_key_container_of.hpp @@ -64,7 +64,7 @@ namespace boost{ namespace icl typedef is_strict_key_container_of type; BOOST_STATIC_CONSTANT(bool, value = (mpl::and_< is_map - , is_same::type> >::value) + , boost::is_same::type> >::value) ); }; @@ -75,7 +75,7 @@ namespace boost{ namespace icl BOOST_STATIC_CONSTANT(bool, value = (mpl::or_< is_strict_key_container_of , mpl::and_< mpl::or_, is_map > - , is_same > >::value) + , boost::is_same > >::value) ); }; diff --git a/3party/boost/boost/icl/type_traits/is_numeric.hpp b/3party/boost/boost/icl/type_traits/is_numeric.hpp index daa65df432..73bfb7d445 100644 --- a/3party/boost/boost/icl/type_traits/is_numeric.hpp +++ b/3party/boost/boost/icl/type_traits/is_numeric.hpp @@ -14,10 +14,17 @@ Copyright (c) 2010-2010: Joachim Faulhaber namespace boost{ namespace icl { +template struct is_fixed_numeric +{ + typedef is_fixed_numeric type; + BOOST_STATIC_CONSTANT(bool, value = (0 < std::numeric_limits::digits)); +}; + template struct is_numeric { typedef is_numeric type; - BOOST_STATIC_CONSTANT(bool, value = (0 < std::numeric_limits::digits)); + BOOST_STATIC_CONSTANT(bool, value = + (mpl::or_, is_integral >::value) ); }; template diff --git a/3party/boost/boost/interprocess/detail/xsi_shared_memory.hpp b/3party/boost/boost/interprocess/detail/xsi_shared_memory.hpp deleted file mode 100644 index 297e9a5584..0000000000 --- a/3party/boost/boost/interprocess/detail/xsi_shared_memory.hpp +++ /dev/null @@ -1,222 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2009. Distributed under the Boost -// Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/interprocess for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_INTERPROCESS_XSI_SHARED_MEMORY_HPP -#define BOOST_INTERPROCESS_XSI_SHARED_MEMORY_HPP - -#include -#include -#include - -#if defined(BOOST_INTERPROCESS_WINDOWS) -#error "This header can't be used in Windows operating systems" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -//!\file -//!Describes a class representing a native xsi shared memory. - -namespace boost { -namespace interprocess { - -//!A class that wraps XSI (System V) shared memory. -//!Unlike shared_memory_object, xsi_shared_memory needs a valid -//!path and a 8 bit key to identify a shared memory create -//!when all processes destroy all their xsi_shared_memory -//!objects and mapped regions for the same shared memory -//!or the processes end/crash. -//! -//!Warning: XSI shared memory and interprocess portable -//!shared memory (boost::interprocess::shared_memory_object) -//!can't communicate between them. -class xsi_shared_memory -{ - /// @cond - //Non-copyable and non-assignable - xsi_shared_memory(xsi_shared_memory &); - xsi_shared_memory &operator=(xsi_shared_memory &); - /// @endcond - - public: - BOOST_INTERPROCESS_ENABLE_MOVE_EMULATION(xsi_shared_memory) - - //!Default constructor. - //!Represents an empty xsi_shared_memory. - xsi_shared_memory(); - - //!Creates a new XSI shared memory with a key obtained from a call to ftok (with path - //!"path" and id "id"), of size "size" and permissions "perm". - //!If the shared memory previously exists, throws an error. - xsi_shared_memory(create_only_t, const char *path, boost::uint8_t id, std::size_t size, int perm = 0666) - { this->priv_open_or_create(detail::DoCreate, path, id, perm, size); } - - //!Tries to create a new XSI shared memory with a key obtained from a call to ftok (with path - //!"path" and id "id"), of size "size" and permissions "perm". - //!If the shared memory previously exists, it tries to open it. - //!Otherwise throws an error. - xsi_shared_memory(open_or_create_t, const char *path, boost::uint8_t id, std::size_t size, int perm = 0666) - { this->priv_open_or_create(detail::DoOpenOrCreate, path, id, perm, size); } - - //!Tries to open a XSI shared memory with a key obtained from a call to ftok (with path - //!"path" and id "id") and permissions "perm". - //!If the shared memory does not previously exist, it throws an error. - xsi_shared_memory(open_only_t, const char *path, boost::uint8_t id, int perm = 0666) - { this->priv_open_or_create(detail::DoOpen, path, id, perm, 0); } - - //!Moves the ownership of "moved"'s shared memory object to *this. - //!After the call, "moved" does not represent any shared memory object. - //!Does not throw - xsi_shared_memory(BOOST_INTERPROCESS_RV_REF(xsi_shared_memory) moved) - { this->swap(moved); } - - //!Moves the ownership of "moved"'s shared memory to *this. - //!After the call, "moved" does not represent any shared memory. - //!Does not throw - xsi_shared_memory &operator=(BOOST_INTERPROCESS_RV_REF(xsi_shared_memory) moved) - { - xsi_shared_memory tmp(boost::interprocess::move(moved)); - this->swap(tmp); - return *this; - } - - //!Swaps two xsi_shared_memorys. Does not throw - void swap(xsi_shared_memory &other); - - //!Destroys *this. The shared memory won't be destroyed, just - //!this connection to it. Use remove() to destroy the shared memory. - ~xsi_shared_memory(); - - //!Returns the path used to - //!obtain the key. - const char *get_path() const; - - //!Returns the shared memory ID that - //!identifies the shared memory - int get_shmid() const; - - //!Returns access - //!permissions - int get_permissions() const; - - //!Returns the mapping handle. - //!Never throws - mapping_handle_t get_mapping_handle() const; - - //!Erases the XSI shared memory object identified by shmid - //!from the system. - //!Returns false on error. Never throws - static bool remove(int shmid); - - /// @cond - private: - - //!Closes a previously opened file mapping. Never throws. - bool priv_open_or_create( detail::create_enum_t type - , const char *filename - , boost::uint8_t id - , int perm - , std::size_t size); - int m_shmid; - /// @endcond -}; - -/// @cond - -inline xsi_shared_memory::xsi_shared_memory() - : m_shmid(-1) -{} - -inline xsi_shared_memory::~xsi_shared_memory() -{} - -inline int xsi_shared_memory::get_shmid() const -{ return m_shmid; } - -inline void xsi_shared_memory::swap(xsi_shared_memory &other) -{ - std::swap(m_shmid, other.m_shmid); -} - -inline mapping_handle_t xsi_shared_memory::get_mapping_handle() const -{ mapping_handle_t mhnd = { m_shmid, true}; return mhnd; } - -inline bool xsi_shared_memory::priv_open_or_create - (detail::create_enum_t type, const char *filename, boost::uint8_t id, int perm, std::size_t size) -{ - key_t key; - if(filename){ - key = ::ftok(filename, id); - if(((key_t)-1) == key){ - error_info err = system_error_code(); - throw interprocess_exception(err); - } - } - else{ - key = IPC_PRIVATE; - } - - perm &= 0x01FF; - int shmflg = perm; - - switch(type){ - case detail::DoOpen: - shmflg |= 0; - break; - case detail::DoCreate: - shmflg |= IPC_CREAT | IPC_EXCL; - break; - case detail::DoOpenOrCreate: - shmflg |= IPC_CREAT; - break; - default: - { - error_info err = other_error; - throw interprocess_exception(err); - } - } - - int ret = ::shmget(key, size, shmflg); - int shmid = ret; - if((type == detail::DoOpen) && (-1 != ret)){ - //Now get the size - ::shmid_ds xsi_ds; - ret = ::shmctl(ret, IPC_STAT, &xsi_ds); - size = xsi_ds.shm_segsz; - } - if(-1 == ret){ - error_info err = system_error_code(); - throw interprocess_exception(err); - } - - m_shmid = shmid; - return true; -} - -inline bool xsi_shared_memory::remove(int shmid) -{ return -1 != ::shmctl(shmid, IPC_RMID, 0); } - -///@endcond - -} //namespace interprocess { -} //namespace boost { - -#include - -#endif //BOOST_INTERPROCESS_XSI_SHARED_MEMORY_HPP diff --git a/3party/boost/boost/math/common_factor_rt.hpp b/3party/boost/boost/math/common_factor_rt.hpp index 1a70bffbc6..4582a96c7b 100644 --- a/3party/boost/boost/math/common_factor_rt.hpp +++ b/3party/boost/boost/math/common_factor_rt.hpp @@ -22,6 +22,10 @@ #include // for CHAR_MIN #include +#ifdef BOOST_MSVC +#pragma warning(push) +#pragma warning(disable:4127 4244) // Conditional expression is constant +#endif namespace boost { @@ -519,5 +523,8 @@ lcm } // namespace math } // namespace boost +#ifdef BOOST_MSVC +#pragma warning(pop) +#endif #endif // BOOST_MATH_COMMON_FACTOR_RT_HPP diff --git a/3party/boost/boost/math/special_functions/acosh.hpp b/3party/boost/boost/math/special_functions/acosh.hpp index bd8330b6ea..40ca985edc 100644 --- a/3party/boost/boost/math/special_functions/acosh.hpp +++ b/3party/boost/boost/math/special_functions/acosh.hpp @@ -79,7 +79,7 @@ namespace boost T y = x - 1; // approximation by taylor series in y at 0 up to order 2 - T result = sqrt(2 * y) * (1 + y /12 + 3 * y * y / 160); + T result = sqrt(2 * y) * (1 - y /12 + 3 * y * y / 160); return result; } } diff --git a/3party/boost/boost/math/tr1.hpp b/3party/boost/boost/math/tr1.hpp index 6840111974..2fb2f291c6 100644 --- a/3party/boost/boost/math/tr1.hpp +++ b/3party/boost/boost/math/tr1.hpp @@ -20,6 +20,10 @@ namespace boost{ namespace math{ namespace tr1{ extern "C"{ +#else + +#define BOOST_PREVENT_MACRO_SUBSTITUTION /**/ + #endif // __cplusplus // we need to import/export our code only if the user has specifically @@ -115,77 +119,77 @@ typedef long double double_t; #endif // C99 Functions: -double BOOST_MATH_TR1_DECL acosh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL acoshl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_acosh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_acoshl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL asinh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_asinh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL atanh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL atanhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_atanh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_atanhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL cbrtl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_cbrtl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL copysign BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL copysignl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_copysign BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_copysignl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL erf BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL erff BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL erfl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_erf BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_erff BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_erfl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL erfc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL erfcl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_erfc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_erfcl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; #if 0 -double BOOST_MATH_TR1_DECL exp2 BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL exp2f BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL exp2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_exp2 BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_exp2f BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_exp2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; #endif double BOOST_MATH_TR1_DECL boost_expm1 BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; float BOOST_MATH_TR1_DECL boost_expm1f BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; long double BOOST_MATH_TR1_DECL boost_expm1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; #if 0 -double BOOST_MATH_TR1_DECL fdim BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL fdimf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL fdiml BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL fma BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y, double z) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL fmaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y, float z) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL fmal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y, long double z) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_fdim BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_fdimf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_fdiml BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_fma BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y, double z) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_fmaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y, float z) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_fmal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y, long double z) BOOST_MATH_C99_THROW_SPEC; #endif -double BOOST_MATH_TR1_DECL fmax BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL fmaxl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_fmax BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_fmaxl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL fmin BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL fminf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL fminl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_fmin BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_fminf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_fminl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL hypot BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL hypotl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_hypot BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_hypotl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; #if 0 -int BOOST_MATH_TR1_DECL ilogb BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -int BOOST_MATH_TR1_DECL ilogbf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -int BOOST_MATH_TR1_DECL ilogbl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +int BOOST_MATH_TR1_DECL boost_ilogb BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +int BOOST_MATH_TR1_DECL boost_ilogbf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +int BOOST_MATH_TR1_DECL boost_ilogbl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; #endif -double BOOST_MATH_TR1_DECL lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL lgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_lgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; #ifdef BOOST_HAS_LONG_LONG #if 0 -::boost::long_long_type BOOST_MATH_TR1_DECL llrint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -::boost::long_long_type BOOST_MATH_TR1_DECL llrintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -::boost::long_long_type BOOST_MATH_TR1_DECL llrintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +::boost::long_long_type BOOST_MATH_TR1_DECL boost_llrint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +::boost::long_long_type BOOST_MATH_TR1_DECL boost_llrintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +::boost::long_long_type BOOST_MATH_TR1_DECL boost_llrintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; #endif -::boost::long_long_type BOOST_MATH_TR1_DECL llround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -::boost::long_long_type BOOST_MATH_TR1_DECL llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -::boost::long_long_type BOOST_MATH_TR1_DECL llroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +::boost::long_long_type BOOST_MATH_TR1_DECL boost_llround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +::boost::long_long_type BOOST_MATH_TR1_DECL boost_llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +::boost::long_long_type BOOST_MATH_TR1_DECL boost_llroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; #endif double BOOST_MATH_TR1_DECL boost_log1p BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; float BOOST_MATH_TR1_DECL boost_log1pf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; @@ -202,9 +206,9 @@ long BOOST_MATH_TR1_DECL lrint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_ long BOOST_MATH_TR1_DECL lrintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; long BOOST_MATH_TR1_DECL lrintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; #endif -long BOOST_MATH_TR1_DECL lround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -long BOOST_MATH_TR1_DECL lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long BOOST_MATH_TR1_DECL lroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +long BOOST_MATH_TR1_DECL boost_lround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +long BOOST_MATH_TR1_DECL boost_lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long BOOST_MATH_TR1_DECL boost_lroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; #if 0 double BOOST_MATH_TR1_DECL nan BOOST_PREVENT_MACRO_SUBSTITUTION(const char *str) BOOST_MATH_C99_THROW_SPEC; float BOOST_MATH_TR1_DECL nanf BOOST_PREVENT_MACRO_SUBSTITUTION(const char *str) BOOST_MATH_C99_THROW_SPEC; @@ -217,68 +221,68 @@ double BOOST_MATH_TR1_DECL boost_nextafter BOOST_PREVENT_MACRO_SUBSTITUTION(doub float BOOST_MATH_TR1_DECL boost_nextafterf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; long double BOOST_MATH_TR1_DECL boost_nextafterl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(double x, long double y) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long double y) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(double x, long double y) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long double y) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; #if 0 -double BOOST_MATH_TR1_DECL remainder BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL remainderf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL remainderl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL remquo BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y, int *pquo) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL remquof BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y, int *pquo) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL remquol BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y, int *pquo) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL rint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL rintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL rintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_remainder BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_remainderf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_remainderl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_remquo BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y, int *pquo) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_remquof BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y, int *pquo) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_remquol BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y, int *pquo) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_rint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_rintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_rintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; #endif -double BOOST_MATH_TR1_DECL round BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL roundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL roundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_round BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_roundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_roundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; #if 0 -double BOOST_MATH_TR1_DECL scalbln BOOST_PREVENT_MACRO_SUBSTITUTION(double x, long ex) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL scalblnf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long ex) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL scalblnl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long ex) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL scalbn BOOST_PREVENT_MACRO_SUBSTITUTION(double x, int ex) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL scalbnf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, int ex) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL scalbnl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, int ex) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_scalbln BOOST_PREVENT_MACRO_SUBSTITUTION(double x, long ex) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_scalblnf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long ex) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_scalblnl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long ex) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_scalbn BOOST_PREVENT_MACRO_SUBSTITUTION(double x, int ex) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_scalbnf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, int ex) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_scalbnl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, int ex) BOOST_MATH_C99_THROW_SPEC; #endif -double BOOST_MATH_TR1_DECL tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL tgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_tgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; -double BOOST_MATH_TR1_DECL trunc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL truncf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL truncl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_trunc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_truncf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_truncl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.1] associated Laguerre polynomials: -double BOOST_MATH_TR1_DECL assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL assoc_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_assoc_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.2] associated Legendre functions: -double BOOST_MATH_TR1_DECL assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL assoc_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_assoc_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.3] beta function: -double BOOST_MATH_TR1_DECL beta BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL betaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL betal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_beta BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_betaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_betal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.4] (complete) elliptic integral of the first kind: -double BOOST_MATH_TR1_DECL comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL comp_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_comp_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.5] (complete) elliptic integral of the second kind: -double BOOST_MATH_TR1_DECL comp_ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL comp_ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL comp_ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_comp_ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_comp_ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_comp_ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.6] (complete) elliptic integral of the third kind: -double BOOST_MATH_TR1_DECL comp_ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL comp_ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL comp_ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_comp_ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_comp_ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_comp_ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu) BOOST_MATH_C99_THROW_SPEC; #if 0 // [5.2.1.7] confluent hypergeometric functions: double BOOST_MATH_TR1_DECL conf_hyperg BOOST_PREVENT_MACRO_SUBSTITUTION(double a, double c, double x) BOOST_MATH_C99_THROW_SPEC; @@ -286,50 +290,50 @@ float BOOST_MATH_TR1_DECL conf_hypergf BOOST_PREVENT_MACRO_SUBSTITUTION(float a, long double BOOST_MATH_TR1_DECL conf_hypergl BOOST_PREVENT_MACRO_SUBSTITUTION(long double a, long double c, long double x) BOOST_MATH_C99_THROW_SPEC; #endif // [5.2.1.8] regular modified cylindrical Bessel functions: -double BOOST_MATH_TR1_DECL cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL cyl_bessel_il BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_cyl_bessel_il BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.9] cylindrical Bessel functions (of the first kind): -double BOOST_MATH_TR1_DECL cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL cyl_bessel_jl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_cyl_bessel_jl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.10] irregular modified cylindrical Bessel functions: -double BOOST_MATH_TR1_DECL cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL cyl_bessel_kl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_cyl_bessel_kl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.11] cylindrical Neumann functions BOOST_MATH_C99_THROW_SPEC; // cylindrical Bessel functions (of the second kind): -double BOOST_MATH_TR1_DECL cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL cyl_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_cyl_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.12] (incomplete) elliptic integral of the first kind: -double BOOST_MATH_TR1_DECL ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.13] (incomplete) elliptic integral of the second kind: -double BOOST_MATH_TR1_DECL ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.14] (incomplete) elliptic integral of the third kind: -double BOOST_MATH_TR1_DECL ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu, double phi) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu, float phi) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu, long double phi) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu, double phi) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu, float phi) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu, long double phi) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.15] exponential integral: -double BOOST_MATH_TR1_DECL expint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL expintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL expintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_expint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_expintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_expintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.16] Hermite polynomials: -double BOOST_MATH_TR1_DECL hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL hermitel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_hermitel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC; #if 0 // [5.2.1.17] hypergeometric functions: @@ -340,35 +344,35 @@ long double x) BOOST_MATH_C99_THROW_SPEC; #endif // [5.2.1.18] Laguerre polynomials: -double BOOST_MATH_TR1_DECL laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.19] Legendre polynomials: -double BOOST_MATH_TR1_DECL legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, long double x) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.20] Riemann zeta function: -double BOOST_MATH_TR1_DECL riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(double) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(float) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL riemann_zetal BOOST_PREVENT_MACRO_SUBSTITUTION(long double) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(double) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(float) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_riemann_zetal BOOST_PREVENT_MACRO_SUBSTITUTION(long double) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.21] spherical Bessel functions (of the first kind): -double BOOST_MATH_TR1_DECL sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL sph_bessell BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_sph_bessell BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.22] spherical associated Legendre functions: -double BOOST_MATH_TR1_DECL sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double theta) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float theta) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL sph_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double theta) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double theta) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float theta) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_sph_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double theta) BOOST_MATH_C99_THROW_SPEC; // [5.2.1.23] spherical Neumann functions BOOST_MATH_C99_THROW_SPEC; // spherical Bessel functions (of the second kind): -double BOOST_MATH_TR1_DECL sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC; -float BOOST_MATH_TR1_DECL sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC; -long double BOOST_MATH_TR1_DECL sph_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC; +double BOOST_MATH_TR1_DECL boost_sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC; +float BOOST_MATH_TR1_DECL boost_sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC; +long double BOOST_MATH_TR1_DECL boost_sph_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC; #ifdef __cplusplus @@ -382,6 +386,12 @@ namespace boost{ namespace math{ namespace tr1{ // C interfaces: // // C99 Functions: +inline double acosh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_acosh BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline float acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double acoshl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_acoshl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline float acosh BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline long double acosh BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) @@ -390,18 +400,40 @@ template inline typename tools::promote_args::type acosh BOOST_PREVENT_MACRO_SUBSTITUTION(T x) { return boost::math::tr1::acosh BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); } -inline float asinh BOOST_PREVENT_MACRO_SUBSTITUTION(float x){ return boost::math::tr1::asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } -inline long double asinh BOOST_PREVENT_MACRO_SUBSTITUTION(long double x){ return boost::math::tr1::asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline double asinh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_asinh BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline float asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline float asinh BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double asinh BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } template inline typename tools::promote_args::type asinh BOOST_PREVENT_MACRO_SUBSTITUTION(T x) { return boost::math::tr1::asinh BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); } -inline float atanh BOOST_PREVENT_MACRO_SUBSTITUTION(float x){ return boost::math::tr1::atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } -inline long double atanh BOOST_PREVENT_MACRO_SUBSTITUTION(long double x){ return boost::math::tr1::atanhl(x); } +inline double atanh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_atanh BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline float atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double atanhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_atanhl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline float atanh BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double atanh BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::atanhl(x); } template inline typename tools::promote_args::type atanh BOOST_PREVENT_MACRO_SUBSTITUTION(T x) { return boost::math::tr1::atanh BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); } +inline double cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline float cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double cbrtl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_cbrtl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline float cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline long double cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) @@ -410,6 +442,12 @@ template inline typename tools::promote_args::type cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(T x) { return boost::math::tr1::cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); } +inline double copysign BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) +{ return boost::math::tr1::boost_copysign BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline float copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) +{ return boost::math::tr1::boost_copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline long double copysignl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) +{ return boost::math::tr1::boost_copysignl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } inline float copysign BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) { return boost::math::tr1::copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } inline long double copysign BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) @@ -418,6 +456,12 @@ template inline typename tools::promote_args::type copysign BOOST_PREVENT_MACRO_SUBSTITUTION(T1 x, T2 y) { return boost::math::tr1::copysign BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); } +inline double erf BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_erf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline float erff BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_erff BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double erfl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_erfl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline float erf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::erff BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline long double erf BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) @@ -426,6 +470,12 @@ template inline typename tools::promote_args::type erf BOOST_PREVENT_MACRO_SUBSTITUTION(T x) { return boost::math::tr1::erf BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); } +inline double erfc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_erfc BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline float erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double erfcl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_erfcl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline float erfc BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline long double erfc BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) @@ -433,11 +483,13 @@ inline long double erfc BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) template inline typename tools::promote_args::type erfc BOOST_PREVENT_MACRO_SUBSTITUTION(T x) { return boost::math::tr1::erfc BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); } + #if 0 double exp2 BOOST_PREVENT_MACRO_SUBSTITUTION(double x); float exp2f BOOST_PREVENT_MACRO_SUBSTITUTION(float x); long double exp2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x); #endif + inline float expm1f BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::boost_expm1f BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline double expm1 BOOST_PREVENT_MACRO_SUBSTITUTION(double x) @@ -451,6 +503,7 @@ inline long double expm1 BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) template inline typename tools::promote_args::type expm1 BOOST_PREVENT_MACRO_SUBSTITUTION(T x) { return boost::math::tr1::expm1 BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); } + #if 0 double fdim BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y); float fdimf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y); @@ -459,6 +512,12 @@ double fma BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y, double z); float fmaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y, float z); long double fmal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y, long double z); #endif +inline double fmax BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) +{ return boost::math::tr1::boost_fmax BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline float fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) +{ return boost::math::tr1::boost_fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline long double fmaxl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) +{ return boost::math::tr1::boost_fmaxl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } inline float fmax BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) { return boost::math::tr1::fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } inline long double fmax BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) @@ -467,6 +526,12 @@ template inline typename tools::promote_args::type fmax BOOST_PREVENT_MACRO_SUBSTITUTION(T1 x, T2 y) { return boost::math::tr1::fmax BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); } +inline double fmin BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) +{ return boost::math::tr1::boost_fmin BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline float fminf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) +{ return boost::math::tr1::boost_fminf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline long double fminl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) +{ return boost::math::tr1::boost_fminl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } inline float fmin BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) { return boost::math::tr1::fminf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } inline long double fmin BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) @@ -475,6 +540,12 @@ template inline typename tools::promote_args::type fmin BOOST_PREVENT_MACRO_SUBSTITUTION(T1 x, T2 y) { return boost::math::tr1::fmin BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); } +inline float hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) +{ return boost::math::tr1::boost_hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline double hypot BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) +{ return boost::math::tr1::boost_hypot BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline long double hypotl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) +{ return boost::math::tr1::boost_hypotl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } inline float hypot BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) { return boost::math::tr1::hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } inline long double hypot BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) @@ -482,11 +553,19 @@ inline long double hypot BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long do template inline typename tools::promote_args::type hypot BOOST_PREVENT_MACRO_SUBSTITUTION(T1 x, T2 y) { return boost::math::tr1::hypot BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); } + #if 0 int ilogb BOOST_PREVENT_MACRO_SUBSTITUTION(double x); int ilogbf BOOST_PREVENT_MACRO_SUBSTITUTION(float x); int ilogbl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x); #endif + +inline float lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline double lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double lgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_lgammal BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline float lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline long double lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) @@ -494,12 +573,20 @@ inline long double lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) template inline typename tools::promote_args::type lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(T x) { return boost::math::tr1::lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); } + #ifdef BOOST_HAS_LONG_LONG #if 0 ::boost::long_long_type llrint BOOST_PREVENT_MACRO_SUBSTITUTION(double x); ::boost::long_long_type llrintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x); ::boost::long_long_type llrintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x); #endif + +inline ::boost::long_long_type llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline ::boost::long_long_type llround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_llround BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline ::boost::long_long_type llroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_llroundl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline ::boost::long_long_type llround BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline ::boost::long_long_type llround BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) @@ -508,6 +595,7 @@ template inline ::boost::long_long_type llround BOOST_PREVENT_MACRO_SUBSTITUTION(T x) { return llround BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast(x)); } #endif + inline float log1pf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::boost_log1pf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline double log1p BOOST_PREVENT_MACRO_SUBSTITUTION(double x) @@ -533,6 +621,12 @@ long lrint BOOST_PREVENT_MACRO_SUBSTITUTION(double x); long lrintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x); long lrintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x); #endif +inline long lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long lround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_lround BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long lroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_lroundl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline long lround BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline long lround BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) @@ -562,7 +656,13 @@ template inline typename tools::promote_args::type nextafter BOOST_PREVENT_MACRO_SUBSTITUTION(T1 x, T2 y) { return boost::math::tr1::nextafter BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); } -inline float nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long double y) +inline float nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) +{ return boost::math::tr1::boost_nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline double nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) +{ return boost::math::tr1::boost_nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline long double nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) +{ return boost::math::tr1::boost_nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline float nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) { return boost::math::tr1::nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } inline long double nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) { return boost::math::tr1::nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } @@ -580,6 +680,12 @@ double rint BOOST_PREVENT_MACRO_SUBSTITUTION(double x); float rintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x); long double rintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x); #endif +inline float roundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_roundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline double round BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_round BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double roundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_roundl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline float round BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::roundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline long double round BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) @@ -595,6 +701,12 @@ double scalbn BOOST_PREVENT_MACRO_SUBSTITUTION(double x, int ex); float scalbnf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, int ex); long double scalbnl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, int ex); #endif +inline float tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline double tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double tgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_tgammal BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline float tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline long double tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) @@ -603,6 +715,12 @@ template inline typename tools::promote_args::type tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(T x) { return boost::math::tr1::tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); } +inline float truncf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_truncf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline double trunc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_trunc BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double truncl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_truncl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline float trunc BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::truncf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline long double trunc BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) @@ -652,6 +770,12 @@ template<> bool BOOST_MATH_TR1_DECL isnormal NO_MACRO_EXPAND(long d #undef NO_MACRO_EXPAND // [5.2.1.1] associated Laguerre polynomials: +inline float assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x) +{ return boost::math::tr1::boost_assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x); } +inline double assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, double x) +{ return boost::math::tr1::boost_assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x); } +inline long double assoc_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x) +{ return boost::math::tr1::boost_assoc_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x); } inline float assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x) { return boost::math::tr1::assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x); } inline long double assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x) @@ -661,6 +785,12 @@ inline typename tools::promote_args::type assoc_laguerre BOOST_PREVENT_MACRO_ { return boost::math::tr1::assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, static_cast::type>(x)); } // [5.2.1.2] associated Legendre functions: +inline float assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float x) +{ return boost::math::tr1::boost_assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, x); } +inline double assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double x) +{ return boost::math::tr1::boost_assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, x); } +inline long double assoc_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double x) +{ return boost::math::tr1::boost_assoc_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, x); } inline float assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float x) { return boost::math::tr1::assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, x); } inline long double assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double x) @@ -670,6 +800,12 @@ inline typename tools::promote_args::type assoc_legendre BOOST_PREVENT_MACRO_ { return boost::math::tr1::assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, static_cast::type>(x)); } // [5.2.1.3] beta function: +inline float betaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) +{ return boost::math::tr1::boost_betaf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline double beta BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) +{ return boost::math::tr1::boost_beta BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } +inline long double betal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) +{ return boost::math::tr1::boost_betal BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } inline float beta BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) { return boost::math::tr1::betaf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); } inline long double beta BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) @@ -679,6 +815,12 @@ inline typename tools::promote_args::type beta BOOST_PREVENT_MACRO_SUBST { return boost::math::tr1::beta BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); } // [5.2.1.4] (complete) elliptic integral of the first kind: +inline float comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k) +{ return boost::math::tr1::boost_comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(k); } +inline double comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k) +{ return boost::math::tr1::boost_comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(k); } +inline long double comp_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k) +{ return boost::math::tr1::boost_comp_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(k); } inline float comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(float k) { return boost::math::tr1::comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(k); } inline long double comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(long double k) @@ -688,6 +830,12 @@ inline typename tools::promote_args::type comp_ellint_1 BOOST_PREVENT_MACRO_S { return boost::math::tr1::comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(k)); } // [5.2.1.5] BOOST_PREVENT_MACRO_SUBSTITUTION(complete) elliptic integral of the second kind: +inline float comp_ellint_2f(float k) +{ return boost::math::tr1::boost_comp_ellint_2f(k); } +inline double comp_ellint_2(double k) +{ return boost::math::tr1::boost_comp_ellint_2(k); } +inline long double comp_ellint_2l(long double k) +{ return boost::math::tr1::boost_comp_ellint_2l(k); } inline float comp_ellint_2(float k) { return boost::math::tr1::comp_ellint_2f(k); } inline long double comp_ellint_2(long double k) @@ -697,6 +845,12 @@ inline typename tools::promote_args::type comp_ellint_2(T k) { return boost::math::tr1::comp_ellint_2(static_cast::type> BOOST_PREVENT_MACRO_SUBSTITUTION(k)); } // [5.2.1.6] BOOST_PREVENT_MACRO_SUBSTITUTION(complete) elliptic integral of the third kind: +inline float comp_ellint_3f(float k, float nu) +{ return boost::math::tr1::boost_comp_ellint_3f(k, nu); } +inline double comp_ellint_3(double k, double nu) +{ return boost::math::tr1::boost_comp_ellint_3(k, nu); } +inline long double comp_ellint_3l(long double k, long double nu) +{ return boost::math::tr1::boost_comp_ellint_3l(k, nu); } inline float comp_ellint_3(float k, float nu) { return boost::math::tr1::comp_ellint_3f(k, nu); } inline long double comp_ellint_3(long double k, long double nu) @@ -713,6 +867,12 @@ long double conf_hypergl BOOST_PREVENT_MACRO_SUBSTITUTION(long double a, long do #endif // [5.2.1.8] regular modified cylindrical Bessel functions: +inline float cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) +{ return boost::math::tr1::boost_cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } +inline double cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) +{ return boost::math::tr1::boost_cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } +inline long double cyl_bessel_il BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) +{ return boost::math::tr1::boost_cyl_bessel_il BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } inline float cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) { return boost::math::tr1::cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } inline long double cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) @@ -722,6 +882,12 @@ inline typename tools::promote_args::type cyl_bessel_i BOOST_PREVENT_MAC { return boost::math::tr1::cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(nu), static_cast::type>(x)); } // [5.2.1.9] cylindrical Bessel functions (of the first kind): +inline float cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) +{ return boost::math::tr1::boost_cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } +inline double cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) +{ return boost::math::tr1::boost_cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } +inline long double cyl_bessel_jl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) +{ return boost::math::tr1::boost_cyl_bessel_jl BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } inline float cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) { return boost::math::tr1::cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } inline long double cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) @@ -731,6 +897,12 @@ inline typename tools::promote_args::type cyl_bessel_j BOOST_PREVENT_MAC { return boost::math::tr1::cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(nu), static_cast::type>(x)); } // [5.2.1.10] irregular modified cylindrical Bessel functions: +inline float cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) +{ return boost::math::tr1::boost_cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } +inline double cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) +{ return boost::math::tr1::boost_cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } +inline long double cyl_bessel_kl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) +{ return boost::math::tr1::boost_cyl_bessel_kl BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } inline float cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) { return boost::math::tr1::cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } inline long double cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) @@ -741,6 +913,12 @@ inline typename tools::promote_args::type cyl_bessel_k BOOST_PREVENT_MAC // [5.2.1.11] cylindrical Neumann functions; // cylindrical Bessel functions (of the second kind): +inline float cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) +{ return boost::math::tr1::boost_cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } +inline double cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) +{ return boost::math::tr1::boost_cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } +inline long double cyl_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) +{ return boost::math::tr1::boost_cyl_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } inline float cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) { return boost::math::tr1::cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); } inline long double cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) @@ -750,6 +928,12 @@ inline typename tools::promote_args::type cyl_neumann BOOST_PREVENT_MACR { return boost::math::tr1::cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(nu), static_cast::type>(x)); } // [5.2.1.12] (incomplete) elliptic integral of the first kind: +inline float ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) +{ return boost::math::tr1::boost_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); } +inline double ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) +{ return boost::math::tr1::boost_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); } +inline long double ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) +{ return boost::math::tr1::boost_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); } inline float ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) { return boost::math::tr1::ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); } inline long double ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) @@ -759,6 +943,12 @@ inline typename tools::promote_args::type ellint_1 BOOST_PREVENT_MACRO_S { return boost::math::tr1::ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(k), static_cast::type>(phi)); } // [5.2.1.13] (incomplete) elliptic integral of the second kind: +inline float ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) +{ return boost::math::tr1::boost_ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); } +inline double ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) +{ return boost::math::tr1::boost_ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); } +inline long double ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) +{ return boost::math::tr1::boost_ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); } inline float ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) { return boost::math::tr1::ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); } inline long double ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) @@ -768,6 +958,12 @@ inline typename tools::promote_args::type ellint_2 BOOST_PREVENT_MACRO_S { return boost::math::tr1::ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(k), static_cast::type>(phi)); } // [5.2.1.14] (incomplete) elliptic integral of the third kind: +inline float ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu, float phi) +{ return boost::math::tr1::boost_ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu, phi); } +inline double ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu, double phi) +{ return boost::math::tr1::boost_ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu, phi); } +inline long double ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu, long double phi) +{ return boost::math::tr1::boost_ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu, phi); } inline float ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu, float phi) { return boost::math::tr1::ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu, phi); } inline long double ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu, long double phi) @@ -777,6 +973,12 @@ inline typename tools::promote_args::type ellint_3 BOOST_PREVENT_MAC { return boost::math::tr1::ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(k), static_cast::type>(nu), static_cast::type>(phi)); } // [5.2.1.15] exponential integral: +inline float expintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) +{ return boost::math::tr1::boost_expintf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline double expint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) +{ return boost::math::tr1::boost_expint BOOST_PREVENT_MACRO_SUBSTITUTION(x); } +inline long double expintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) +{ return boost::math::tr1::boost_expintl BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline float expint BOOST_PREVENT_MACRO_SUBSTITUTION(float x) { return boost::math::tr1::expintf BOOST_PREVENT_MACRO_SUBSTITUTION(x); } inline long double expint BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) @@ -786,6 +988,12 @@ inline typename tools::promote_args::type expint BOOST_PREVENT_MACRO_SUBSTITU { return boost::math::tr1::expint BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); } // [5.2.1.16] Hermite polynomials: +inline float hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) +{ return boost::math::tr1::boost_hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } +inline double hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) +{ return boost::math::tr1::boost_hermite BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } +inline long double hermitel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) +{ return boost::math::tr1::boost_hermitel BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } inline float hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) { return boost::math::tr1::hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } inline long double hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) @@ -803,6 +1011,12 @@ long double x); #endif // [5.2.1.18] Laguerre polynomials: +inline float laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) +{ return boost::math::tr1::boost_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } +inline double laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) +{ return boost::math::tr1::boost_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } +inline long double laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) +{ return boost::math::tr1::boost_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } inline float laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) { return boost::math::tr1::laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } inline long double laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) @@ -812,6 +1026,12 @@ inline typename tools::promote_args::type laguerre BOOST_PREVENT_MACRO_SUBSTI { return boost::math::tr1::laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, static_cast::type>(x)); } // [5.2.1.19] Legendre polynomials: +inline float legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, float x) +{ return boost::math::tr1::boost_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, x); } +inline double legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, double x) +{ return boost::math::tr1::boost_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(l, x); } +inline long double legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, long double x) +{ return boost::math::tr1::boost_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(l, x); } inline float legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, float x) { return boost::math::tr1::legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, x); } inline long double legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, long double x) @@ -821,6 +1041,12 @@ inline typename tools::promote_args::type legendre BOOST_PREVENT_MACRO_SUBSTI { return boost::math::tr1::legendre BOOST_PREVENT_MACRO_SUBSTITUTION(l, static_cast::type>(x)); } // [5.2.1.20] Riemann zeta function: +inline float riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(float z) +{ return boost::math::tr1::boost_riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(z); } +inline double riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(double z) +{ return boost::math::tr1::boost_riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(z); } +inline long double riemann_zetal BOOST_PREVENT_MACRO_SUBSTITUTION(long double z) +{ return boost::math::tr1::boost_riemann_zetal BOOST_PREVENT_MACRO_SUBSTITUTION(z); } inline float riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(float z) { return boost::math::tr1::riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(z); } inline long double riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(long double z) @@ -830,6 +1056,12 @@ inline typename tools::promote_args::type riemann_zeta BOOST_PREVENT_MACRO_SU { return boost::math::tr1::riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(z)); } // [5.2.1.21] spherical Bessel functions (of the first kind): +inline float sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) +{ return boost::math::tr1::boost_sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } +inline double sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) +{ return boost::math::tr1::boost_sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } +inline long double sph_bessell BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) +{ return boost::math::tr1::boost_sph_bessell BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } inline float sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) { return boost::math::tr1::sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } inline long double sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) @@ -839,6 +1071,12 @@ inline typename tools::promote_args::type sph_bessel BOOST_PREVENT_MACRO_SUBS { return boost::math::tr1::sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(n, static_cast::type>(x)); } // [5.2.1.22] spherical associated Legendre functions: +inline float sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float theta) +{ return boost::math::tr1::boost_sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, theta); } +inline double sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double theta) +{ return boost::math::tr1::boost_sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, theta); } +inline long double sph_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double theta) +{ return boost::math::tr1::boost_sph_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, theta); } inline float sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float theta) { return boost::math::tr1::sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, theta); } inline long double sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double theta) @@ -849,6 +1087,12 @@ inline typename tools::promote_args::type sph_legendre BOOST_PREVENT_MACRO_SU // [5.2.1.23] spherical Neumann functions; // spherical Bessel functions (of the second kind): +inline float sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) +{ return boost::math::tr1::boost_sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } +inline double sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) +{ return boost::math::tr1::boost_sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } +inline long double sph_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) +{ return boost::math::tr1::boost_sph_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } inline float sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) { return boost::math::tr1::sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); } inline long double sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) @@ -859,6 +1103,808 @@ inline typename tools::promote_args::type sph_neumann BOOST_PREVENT_MACRO_SUB }}} // namespaces +#else // __cplusplus + +// C99 Functions: +#ifdef acosh +#undef acosh +#endif +#define acosh boost_acosh +#ifdef acoshf +#undef acoshf +#endif +#define acoshf boost_acoshf +#ifdef acoshl +#undef acoshl +#endif +#define acoshl boost_acoshl + +#ifdef asinh +#undef asinh +#endif +#define asinh boost_asinh +#ifdef asinhf +#undef asinhf +#endif +#define asinhf boost_asinhf +#ifdef asinhl +#undef asinhl +#endif +#define asinhl boost_asinhl + +#ifdef atanh +#undef atanh +#endif +#define atanh boost_atanh +#ifdef atanhf +#undef atanhf +#endif +#define atanhf boost_atanhf +#ifdef atanhl +#undef atanhl +#endif +#define atanhl boost_atanhl + +#ifdef cbrt +#undef cbrt +#endif +#define cbrt boost_cbrt +#ifdef cbrtf +#undef cbrtf +#endif +#define cbrtf boost_cbrtf +#ifdef cbrtl +#undef cbrtl +#endif +#define cbrtl boost_cbrtl + +#ifdef copysign +#undef copysign +#endif +#define copysign boost_copysign +#ifdef copysignf +#undef copysignf +#endif +#define copysignf boost_copysignf +#ifdef copysignl +#undef copysignl +#endif +#define copysignl boost_copysignl + +#ifdef erf +#undef erf +#endif +#define erf boost_erf +#ifdef erff +#undef erff +#endif +#define erff boost_erff +#ifdef erfl +#undef erfl +#endif +#define erfl boost_erfl + +#ifdef erfc +#undef erfc +#endif +#define erfc boost_erfc +#ifdef erfcf +#undef erfcf +#endif +#define erfcf boost_erfcf +#ifdef erfcl +#undef erfcl +#endif +#define erfcl boost_erfcl + +#if 0 +#ifdef exp2 +#undef exp2 +#endif +#define exp2 boost_exp2 +#ifdef exp2f +#undef exp2f +#endif +#define exp2f boost_exp2f +#ifdef exp2l +#undef exp2l +#endif +#define exp2l boost_exp2l +#endif + +#ifdef expm1 +#undef expm1 +#endif +#define expm1 boost_expm1 +#ifdef expm1f +#undef expm1f +#endif +#define expm1f boost_expm1f +#ifdef expm1l +#undef expm1l +#endif +#define expm1l boost_expm1l + +#if 0 +#ifdef fdim +#undef fdim +#endif +#define fdim boost_fdim +#ifdef fdimf +#undef fdimf +#endif +#define fdimf boost_fdimf +#ifdef fdiml +#undef fdiml +#endif +#define fdiml boost_fdiml +#ifdef acosh +#undef acosh +#endif +#define fma boost_fma +#ifdef fmaf +#undef fmaf +#endif +#define fmaf boost_fmaf +#ifdef fmal +#undef fmal +#endif +#define fmal boost_fmal +#endif + +#ifdef fmax +#undef fmax +#endif +#define fmax boost_fmax +#ifdef fmaxf +#undef fmaxf +#endif +#define fmaxf boost_fmaxf +#ifdef fmaxl +#undef fmaxl +#endif +#define fmaxl boost_fmaxl + +#ifdef fmin +#undef fmin +#endif +#define fmin boost_fmin +#ifdef fminf +#undef fminf +#endif +#define fminf boost_fminf +#ifdef fminl +#undef fminl +#endif +#define fminl boost_fminl + +#ifdef hypot +#undef hypot +#endif +#define hypot boost_hypot +#ifdef hypotf +#undef hypotf +#endif +#define hypotf boost_hypotf +#ifdef hypotl +#undef hypotl +#endif +#define hypotl boost_hypotl + +#if 0 +#ifdef ilogb +#undef ilogb +#endif +#define ilogb boost_ilogb +#ifdef ilogbf +#undef ilogbf +#endif +#define ilogbf boost_ilogbf +#ifdef ilogbl +#undef ilogbl +#endif +#define ilogbl boost_ilogbl +#endif + +#ifdef lgamma +#undef lgamma +#endif +#define lgamma boost_lgamma +#ifdef lgammaf +#undef lgammaf +#endif +#define lgammaf boost_lgammaf +#ifdef lgammal +#undef lgammal +#endif +#define lgammal boost_lgammal + +#ifdef BOOST_HAS_LONG_LONG +#if 0 +#ifdef llrint +#undef llrint +#endif +#define llrint boost_llrint +#ifdef llrintf +#undef llrintf +#endif +#define llrintf boost_llrintf +#ifdef llrintl +#undef llrintl +#endif +#define llrintl boost_llrintl +#endif +#ifdef llround +#undef llround +#endif +#define llround boost_llround +#ifdef llroundf +#undef llroundf +#endif +#define llroundf boost_llroundf +#ifdef llroundl +#undef llroundl +#endif +#define llroundl boost_llroundl +#endif + +#ifdef log1p +#undef log1p +#endif +#define log1p boost_log1p +#ifdef log1pf +#undef log1pf +#endif +#define log1pf boost_log1pf +#ifdef log1pl +#undef log1pl +#endif +#define log1pl boost_log1pl + +#if 0 +#ifdef log2 +#undef log2 +#endif +#define log2 boost_log2 +#ifdef log2f +#undef log2f +#endif +#define log2f boost_log2f +#ifdef log2l +#undef log2l +#endif +#define log2l boost_log2l + +#ifdef logb +#undef logb +#endif +#define logb boost_logb +#ifdef logbf +#undef logbf +#endif +#define logbf boost_logbf +#ifdef logbl +#undef logbl +#endif +#define logbl boost_logbl + +#ifdef lrint +#undef lrint +#endif +#define lrint boost_lrint +#ifdef lrintf +#undef lrintf +#endif +#define lrintf boost_lrintf +#ifdef lrintl +#undef lrintl +#endif +#define lrintl boost_lrintl +#endif + +#ifdef lround +#undef lround +#endif +#define lround boost_lround +#ifdef lroundf +#undef lroundf +#endif +#define lroundf boost_lroundf +#ifdef lroundl +#undef lroundl +#endif +#define lroundl boost_lroundl + +#if 0 +#ifdef nan +#undef nan +#endif +#define nan boost_nan +#ifdef nanf +#undef nanf +#endif +#define nanf boost_nanf +#ifdef nanl +#undef nanl +#endif +#define nanl boost_nanl + +#ifdef nearbyint +#undef nearbyint +#endif +#define nearbyint boost_nearbyint +#ifdef nearbyintf +#undef nearbyintf +#endif +#define nearbyintf boost_nearbyintf +#ifdef nearbyintl +#undef nearbyintl +#endif +#define nearbyintl boost_nearbyintl +#endif + +#ifdef nextafter +#undef nextafter +#endif +#define nextafter boost_nextafter +#ifdef nextafterf +#undef nextafterf +#endif +#define nextafterf boost_nextafterf +#ifdef nextafterl +#undef nextafterl +#endif +#define nextafterl boost_nextafterl + +#ifdef nexttoward +#undef nexttoward +#endif +#define nexttoward boost_nexttoward +#ifdef nexttowardf +#undef nexttowardf +#endif +#define nexttowardf boost_nexttowardf +#ifdef nexttowardl +#undef nexttowardl +#endif +#define nexttowardl boost_nexttowardl + +#if 0 +#ifdef remainder +#undef remainder +#endif +#define remainder boost_remainder +#ifdef remainderf +#undef remainderf +#endif +#define remainderf boost_remainderf +#ifdef remainderl +#undef remainderl +#endif +#define remainderl boost_remainderl + +#ifdef remquo +#undef remquo +#endif +#define remquo boost_remquo +#ifdef remquof +#undef remquof +#endif +#define remquof boost_remquof +#ifdef remquol +#undef remquol +#endif +#define remquol boost_remquol + +#ifdef rint +#undef rint +#endif +#define rint boost_rint +#ifdef rintf +#undef rintf +#endif +#define rintf boost_rintf +#ifdef rintl +#undef rintl +#endif +#define rintl boost_rintl +#endif + +#ifdef round +#undef round +#endif +#define round boost_round +#ifdef roundf +#undef roundf +#endif +#define roundf boost_roundf +#ifdef roundl +#undef roundl +#endif +#define roundl boost_roundl + +#if 0 +#ifdef scalbln +#undef scalbln +#endif +#define scalbln boost_scalbln +#ifdef scalblnf +#undef scalblnf +#endif +#define scalblnf boost_scalblnf +#ifdef scalblnl +#undef scalblnl +#endif +#define scalblnl boost_scalblnl + +#ifdef scalbn +#undef scalbn +#endif +#define scalbn boost_scalbn +#ifdef scalbnf +#undef scalbnf +#endif +#define scalbnf boost_scalbnf +#ifdef scalbnl +#undef scalbnl +#endif +#define scalbnl boost_scalbnl +#endif + +#ifdef tgamma +#undef tgamma +#endif +#define tgamma boost_tgamma +#ifdef tgammaf +#undef tgammaf +#endif +#define tgammaf boost_tgammaf +#ifdef tgammal +#undef tgammal +#endif +#define tgammal boost_tgammal + +#ifdef trunc +#undef trunc +#endif +#define trunc boost_trunc +#ifdef truncf +#undef truncf +#endif +#define truncf boost_truncf +#ifdef truncl +#undef truncl +#endif +#define truncl boost_truncl + +// [5.2.1.1] associated Laguerre polynomials: +#ifdef assoc_laguerre +#undef assoc_laguerre +#endif +#define assoc_laguerre boost_assoc_laguerre +#ifdef assoc_laguerref +#undef assoc_laguerref +#endif +#define assoc_laguerref boost_assoc_laguerref +#ifdef assoc_laguerrel +#undef assoc_laguerrel +#endif +#define assoc_laguerrel boost_assoc_laguerrel + +// [5.2.1.2] associated Legendre functions: +#ifdef assoc_legendre +#undef assoc_legendre +#endif +#define assoc_legendre boost_assoc_legendre +#ifdef assoc_legendref +#undef assoc_legendref +#endif +#define assoc_legendref boost_assoc_legendref +#ifdef assoc_legendrel +#undef assoc_legendrel +#endif +#define assoc_legendrel boost_assoc_legendrel + +// [5.2.1.3] beta function: +#ifdef beta +#undef beta +#endif +#define beta boost_beta +#ifdef betaf +#undef betaf +#endif +#define betaf boost_betaf +#ifdef betal +#undef betal +#endif +#define betal boost_betal + +// [5.2.1.4] (complete) elliptic integral of the first kind: +#ifdef comp_ellint_1 +#undef comp_ellint_1 +#endif +#define comp_ellint_1 boost_comp_ellint_1 +#ifdef comp_ellint_1f +#undef comp_ellint_1f +#endif +#define comp_ellint_1f boost_comp_ellint_1f +#ifdef comp_ellint_1l +#undef comp_ellint_1l +#endif +#define comp_ellint_1l boost_comp_ellint_1l + +// [5.2.1.5] (complete) elliptic integral of the second kind: +#ifdef comp_ellint_2 +#undef comp_ellint_2 +#endif +#define comp_ellint_2 boost_comp_ellint_2 +#ifdef comp_ellint_2f +#undef comp_ellint_2f +#endif +#define comp_ellint_2f boost_comp_ellint_2f +#ifdef comp_ellint_2l +#undef comp_ellint_2l +#endif +#define comp_ellint_2l boost_comp_ellint_2l + +// [5.2.1.6] (complete) elliptic integral of the third kind: +#ifdef comp_ellint_3 +#undef comp_ellint_3 +#endif +#define comp_ellint_3 boost_comp_ellint_3 +#ifdef comp_ellint_3f +#undef comp_ellint_3f +#endif +#define comp_ellint_3f boost_comp_ellint_3f +#ifdef comp_ellint_3l +#undef comp_ellint_3l +#endif +#define comp_ellint_3l boost_comp_ellint_3l + +#if 0 +// [5.2.1.7] confluent hypergeometric functions: +#ifdef conf_hyper +#undef conf_hyper +#endif +#define conf_hyper boost_conf_hyper +#ifdef conf_hyperf +#undef conf_hyperf +#endif +#define conf_hyperf boost_conf_hyperf +#ifdef conf_hyperl +#undef conf_hyperl +#endif +#define conf_hyperl boost_conf_hyperl +#endif + +// [5.2.1.8] regular modified cylindrical Bessel functions: +#ifdef cyl_bessel_i +#undef cyl_bessel_i +#endif +#define cyl_bessel_i boost_cyl_bessel_i +#ifdef cyl_bessel_if +#undef cyl_bessel_if +#endif +#define cyl_bessel_if boost_cyl_bessel_if +#ifdef cyl_bessel_il +#undef cyl_bessel_il +#endif +#define cyl_bessel_il boost_cyl_bessel_il + +// [5.2.1.9] cylindrical Bessel functions (of the first kind): +#ifdef cyl_bessel_j +#undef cyl_bessel_j +#endif +#define cyl_bessel_j boost_cyl_bessel_j +#ifdef cyl_bessel_jf +#undef cyl_bessel_jf +#endif +#define cyl_bessel_jf boost_cyl_bessel_jf +#ifdef cyl_bessel_jl +#undef cyl_bessel_jl +#endif +#define cyl_bessel_jl boost_cyl_bessel_jl + +// [5.2.1.10] irregular modified cylindrical Bessel functions: +#ifdef cyl_bessel_k +#undef cyl_bessel_k +#endif +#define cyl_bessel_k boost_cyl_bessel_k +#ifdef cyl_bessel_kf +#undef cyl_bessel_kf +#endif +#define cyl_bessel_kf boost_cyl_bessel_kf +#ifdef cyl_bessel_kl +#undef cyl_bessel_kl +#endif +#define cyl_bessel_kl boost_cyl_bessel_kl + +// [5.2.1.11] cylindrical Neumann functions BOOST_MATH_C99_THROW_SPEC; +// cylindrical Bessel functions (of the second kind): +#ifdef cyl_neumann +#undef cyl_neumann +#endif +#define cyl_neumann boost_cyl_neumann +#ifdef cyl_neumannf +#undef cyl_neumannf +#endif +#define cyl_neumannf boost_cyl_neumannf +#ifdef cyl_neumannl +#undef cyl_neumannl +#endif +#define cyl_neumannl boost_cyl_neumannl + +// [5.2.1.12] (incomplete) elliptic integral of the first kind: +#ifdef ellint_1 +#undef ellint_1 +#endif +#define ellint_1 boost_ellint_1 +#ifdef ellint_1f +#undef ellint_1f +#endif +#define ellint_1f boost_ellint_1f +#ifdef ellint_1l +#undef ellint_1l +#endif +#define ellint_1l boost_ellint_1l + +// [5.2.1.13] (incomplete) elliptic integral of the second kind: +#ifdef ellint_2 +#undef ellint_2 +#endif +#define ellint_2 boost_ellint_2 +#ifdef ellint_2f +#undef ellint_2f +#endif +#define ellint_2f boost_ellint_2f +#ifdef ellint_2l +#undef ellint_2l +#endif +#define ellint_2l boost_ellint_2l + +// [5.2.1.14] (incomplete) elliptic integral of the third kind: +#ifdef ellint_3 +#undef ellint_3 +#endif +#define ellint_3 boost_ellint_3 +#ifdef ellint_3f +#undef ellint_3f +#endif +#define ellint_3f boost_ellint_3f +#ifdef ellint_3l +#undef ellint_3l +#endif +#define ellint_3l boost_ellint_3l + +// [5.2.1.15] exponential integral: +#ifdef expint +#undef expint +#endif +#define expint boost_expint +#ifdef expintf +#undef expintf +#endif +#define expintf boost_expintf +#ifdef expintl +#undef expintl +#endif +#define expintl boost_expintl + +// [5.2.1.16] Hermite polynomials: +#ifdef hermite +#undef hermite +#endif +#define hermite boost_hermite +#ifdef hermitef +#undef hermitef +#endif +#define hermitef boost_hermitef +#ifdef hermitel +#undef hermitel +#endif +#define hermitel boost_hermitel + +#if 0 +// [5.2.1.17] hypergeometric functions: +#ifdef hyperg +#undef hyperg +#endif +#define hyperg boost_hyperg +#ifdef hypergf +#undef hypergf +#endif +#define hypergf boost_hypergf +#ifdef hypergl +#undef hypergl +#endif +#define hypergl boost_hypergl +#endif + +// [5.2.1.18] Laguerre polynomials: +#ifdef laguerre +#undef laguerre +#endif +#define laguerre boost_laguerre +#ifdef laguerref +#undef laguerref +#endif +#define laguerref boost_laguerref +#ifdef laguerrel +#undef laguerrel +#endif +#define laguerrel boost_laguerrel + +// [5.2.1.19] Legendre polynomials: +#ifdef legendre +#undef legendre +#endif +#define legendre boost_legendre +#ifdef legendref +#undef legendref +#endif +#define legendref boost_legendref +#ifdef legendrel +#undef legendrel +#endif +#define legendrel boost_legendrel + +// [5.2.1.20] Riemann zeta function: +#ifdef riemann_zeta +#undef riemann_zeta +#endif +#define riemann_zeta boost_riemann_zeta +#ifdef riemann_zetaf +#undef riemann_zetaf +#endif +#define riemann_zetaf boost_riemann_zetaf +#ifdef riemann_zetal +#undef riemann_zetal +#endif +#define riemann_zetal boost_riemann_zetal + +// [5.2.1.21] spherical Bessel functions (of the first kind): +#ifdef sph_bessel +#undef sph_bessel +#endif +#define sph_bessel boost_sph_bessel +#ifdef sph_besself +#undef sph_besself +#endif +#define sph_besself boost_sph_besself +#ifdef sph_bessell +#undef sph_bessell +#endif +#define sph_bessell boost_sph_bessell + +// [5.2.1.22] spherical associated Legendre functions: +#ifdef sph_legendre +#undef sph_legendre +#endif +#define sph_legendre boost_sph_legendre +#ifdef sph_legendref +#undef sph_legendref +#endif +#define sph_legendref boost_sph_legendref +#ifdef sph_legendrel +#undef sph_legendrel +#endif +#define sph_legendrel boost_sph_legendrel + +// [5.2.1.23] spherical Neumann functions BOOST_MATH_C99_THROW_SPEC; +// spherical Bessel functions (of the second kind): +#ifdef sph_neumann +#undef sph_neumann +#endif +#define sph_neumann boost_sph_neumann +#ifdef sph_neumannf +#undef sph_neumannf +#endif +#define sph_neumannf boost_sph_neumannf +#ifdef sph_neumannl +#undef sph_neumannl +#endif +#define sph_neumannl boost_sph_neumannl + #endif // __cplusplus #endif // BOOST_MATH_TR1_HPP diff --git a/3party/boost/boost/polygon/detail/polygon_set_view.hpp b/3party/boost/boost/polygon/detail/polygon_set_view.hpp index 7b159a89d1..693acc4177 100644 --- a/3party/boost/boost/polygon/detail/polygon_set_view.hpp +++ b/3party/boost/boost/polygon/detail/polygon_set_view.hpp @@ -14,7 +14,13 @@ namespace boost { namespace polygon{ inline void polygon_set_data::clean() const { if(dirty_) { polygon_45_set_data tmp; - if(downcast(tmp) ) { + //very important: + //the 45 degree algorithm does not satisfy + //the precondition of arbitrary polygon formation + //that vertices be "linearly consistent" + //therefore it doesn't work to fall back on 45-degree + //booleans for arbitrary angle polygons + if(0) { //downcast(tmp) ) { tmp.clean(); data_.clear(); is_45_ = true; diff --git a/3party/boost/boost/property_tree/detail/json_parser_read.hpp b/3party/boost/boost/property_tree/detail/json_parser_read.hpp index 3f067949c4..46acc5abdb 100644 --- a/3party/boost/boost/property_tree/detail/json_parser_read.hpp +++ b/3party/boost/boost/property_tree/detail/json_parser_read.hpp @@ -179,6 +179,9 @@ namespace boost { namespace property_tree { namespace json_parser { using namespace boost::spirit::classic; + // There's a boost::assertion too, so another explicit using + // here: + using boost::spirit::classic::assertion; // Assertions assertion expect_object("expected object"); diff --git a/3party/boost/boost/proto/debug.hpp b/3party/boost/boost/proto/debug.hpp index 61a9677e21..87f138ae86 100644 --- a/3party/boost/boost/proto/debug.hpp +++ b/3party/boost/boost/proto/debug.hpp @@ -11,6 +11,7 @@ #include #include +#include #include #include #include @@ -108,32 +109,16 @@ namespace boost { namespace proto } } - namespace functional + namespace detail { - /// \brief Pretty-print a Proto expression tree. - /// - /// A PolymorphicFunctionObject which accepts a Proto expression - /// tree and pretty-prints it to an \c ostream for debugging - /// purposes. - struct display_expr + struct display_expr_impl { - BOOST_PROTO_CALLABLE() - - typedef void result_type; - - /// \param sout The \c ostream to which the expression tree - /// will be written. - /// \param depth The starting indentation depth for this node. - /// Children nodes will be displayed at a starting - /// depth of depth+4. - explicit display_expr(std::ostream &sout = std::cout, int depth = 0) + explicit display_expr_impl(std::ostream &sout, int depth = 0) : depth_(depth) , first_(true) , sout_(sout) {} - /// \brief Pretty-print the current node in a Proto expression - /// tree. template void operator()(Expr const &expr) const { @@ -141,8 +126,8 @@ namespace boost { namespace proto } private: - display_expr(display_expr const &); - display_expr &operator =(display_expr const &); + display_expr_impl(display_expr_impl const &); + display_expr_impl &operator =(display_expr_impl const &); template void impl(Expr const &expr, mpl::long_<0>) const @@ -163,7 +148,7 @@ namespace boost { namespace proto this->sout_.width(this->depth_); this->sout_ << (this->first_? "" : ", "); this->sout_ << tag() << "(\n"; - display_expr display(this->sout_, this->depth_ + 4); + display_expr_impl display(this->sout_, this->depth_ + 4); fusion::for_each(expr, display); this->sout_.width(this->depth_); this->sout_ << "" << ")\n"; @@ -176,6 +161,43 @@ namespace boost { namespace proto }; } + namespace functional + { + /// \brief Pretty-print a Proto expression tree. + /// + /// A PolymorphicFunctionObject which accepts a Proto expression + /// tree and pretty-prints it to an \c ostream for debugging + /// purposes. + struct display_expr + { + BOOST_PROTO_CALLABLE() + + typedef void result_type; + + /// \param sout The \c ostream to which the expression tree + /// will be written. + /// \param depth The starting indentation depth for this node. + /// Children nodes will be displayed at a starting + /// depth of depth+4. + explicit display_expr(std::ostream &sout = std::cout, int depth = 0) + : depth_(depth) + , sout_(sout) + {} + + /// \brief Pretty-print the current node in a Proto expression + /// tree. + template + void operator()(Expr const &expr) const + { + detail::display_expr_impl(this->sout_, this->depth_)(expr); + } + + private: + int depth_; + reference_wrapper sout_; + }; + } + /// \brief Pretty-print a Proto expression tree. /// /// \note Equivalent to functional::display_expr(0, sout)(expr) diff --git a/3party/boost/boost/proto/transform/pass_through.hpp b/3party/boost/boost/proto/transform/pass_through.hpp index 1ce3a21b36..216097bf98 100644 --- a/3party/boost/boost/proto/transform/pass_through.hpp +++ b/3party/boost/boost/proto/transform/pass_through.hpp @@ -178,7 +178,7 @@ expr_type; typedef typename unref_expr::proto_generator proto_generator; - typedef typename BOOST_PROTO_RESULT_OF::type result_type; + typedef typename BOOST_PROTO_RESULT_OF::type const result_type; result_type const operator ()( typename pass_through_impl::expr_param e diff --git a/3party/boost/boost/signals2/detail/signal_template.hpp b/3party/boost/boost/signals2/detail/signal_template.hpp index 7b8a4b8674..7a1e0b9e49 100644 --- a/3party/boost/boost/signals2/detail/signal_template.hpp +++ b/3party/boost/boost/signals2/detail/signal_template.hpp @@ -507,12 +507,12 @@ namespace boost nolock_force_unique_connection_list(); return connection_body_type(new connection_body(slot)); } - void do_disconnect(const group_type &group, mpl::bool_ is_group) + void do_disconnect(const group_type &group, mpl::bool_ /* is_group */) { disconnect(group); } template - void do_disconnect(const T &slot, mpl::bool_ is_group) + void do_disconnect(const T &slot, mpl::bool_ /* is_group */) { shared_ptr local_state = get_readable_state(); diff --git a/3party/boost/boost/tr1/detail/config_all.hpp b/3party/boost/boost/tr1/detail/config_all.hpp index 8a0af23992..b2fba9c268 100644 --- a/3party/boost/boost/tr1/detail/config_all.hpp +++ b/3party/boost/boost/tr1/detail/config_all.hpp @@ -63,6 +63,11 @@ # else # define BOOST_TR1_STD_HEADER(name) <../stlport/name> # endif +# elif defined(__PATHSCALE__) && (defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)) +# define BOOST_TR1_STD_HEADER(name) <../include/name> + +# elif defined(__SUNPRO_CC) && (defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)) +# define BOOST_TR1_STD_HEADER(name) <../stdcxx4/name> # elif defined(__HP_aCC) // HP aCC include path: diff --git a/3party/boost/boost/tr1/functional.hpp b/3party/boost/boost/tr1/functional.hpp index 87e200cb8b..8c97fa892a 100644 --- a/3party/boost/boost/tr1/functional.hpp +++ b/3party/boost/boost/tr1/functional.hpp @@ -128,7 +128,12 @@ template struct hash; } namespace std{ namespace tr1{ - using ::boost::hash; + //using ::boost::hash; + + template + struct hash : public boost::hash + { + }; }} diff --git a/3party/boost/boost/unordered/unordered_map.hpp b/3party/boost/boost/unordered/unordered_map.hpp index 5bad0ebda2..86a6fc6315 100644 --- a/3party/boost/boost/unordered/unordered_map.hpp +++ b/3party/boost/boost/unordered/unordered_map.hpp @@ -160,6 +160,11 @@ namespace boost ~unordered_map() {} #if !defined(BOOST_NO_RVALUE_REFERENCES) + unordered_map(unordered_map const& other) + : table_(other.table_) + { + } + unordered_map(unordered_map&& other) : table_(other.table_, boost::unordered_detail::move_tag()) { @@ -170,6 +175,12 @@ namespace boost { } + unordered_map& operator=(unordered_map const& x) + { + table_ = x.table_; + return *this; + } + unordered_map& operator=(unordered_map&& x) { table_.move(x.table_); @@ -705,6 +716,11 @@ namespace boost ~unordered_multimap() {} #if !defined(BOOST_NO_RVALUE_REFERENCES) + unordered_multimap(unordered_multimap const& other) + : table_(other.table_) + { + } + unordered_multimap(unordered_multimap&& other) : table_(other.table_, boost::unordered_detail::move_tag()) { @@ -715,6 +731,12 @@ namespace boost { } + unordered_multimap& operator=(unordered_multimap const& x) + { + table_ = x.table_; + return *this; + } + unordered_multimap& operator=(unordered_multimap&& x) { table_.move(x.table_); diff --git a/3party/boost/boost/unordered/unordered_set.hpp b/3party/boost/boost/unordered/unordered_set.hpp index ec48b8c8e2..89d1c1cf95 100644 --- a/3party/boost/boost/unordered/unordered_set.hpp +++ b/3party/boost/boost/unordered/unordered_set.hpp @@ -154,6 +154,11 @@ namespace boost ~unordered_set() {} #if !defined(BOOST_NO_RVALUE_REFERENCES) + unordered_set(unordered_set const& other) + : table_(other.table_) + { + } + unordered_set(unordered_set&& other) : table_(other.table_, boost::unordered_detail::move_tag()) { @@ -164,6 +169,12 @@ namespace boost { } + unordered_set& operator=(unordered_set const& x) + { + table_ = x.table_; + return *this; + } + unordered_set& operator=(unordered_set&& x) { table_.move(x.table_); @@ -651,6 +662,11 @@ namespace boost ~unordered_multiset() {} #if !defined(BOOST_NO_RVALUE_REFERENCES) + unordered_multiset(unordered_multiset const& other) + : table_(other.table_) + { + } + unordered_multiset(unordered_multiset&& other) : table_(other.table_, boost::unordered_detail::move_tag()) { @@ -661,6 +677,12 @@ namespace boost { } + unordered_multiset& operator=(unordered_multiset const& x) + { + table_ = x.table_; + return *this; + } + unordered_multiset& operator=(unordered_multiset&& x) { table_.move(x.table_); diff --git a/3party/boost/boost/version.hpp b/3party/boost/boost/version.hpp index b031f6fc3c..c80d428225 100644 --- a/3party/boost/boost/version.hpp +++ b/3party/boost/boost/version.hpp @@ -19,7 +19,7 @@ // BOOST_VERSION / 100 % 1000 is the minor version // BOOST_VERSION / 100000 is the major version -#define BOOST_VERSION 104600 +#define BOOST_VERSION 104601 // // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION @@ -27,7 +27,7 @@ // number, y is the minor version number, and z is the patch level if not 0. // This is used by to select which library version to link to. -#define BOOST_LIB_VERSION "1_46" +#define BOOST_LIB_VERSION "1_46_1" #endif