mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-07-13 23:25:21 -04:00
132 lines
5.1 KiB
C++
132 lines
5.1 KiB
C++
// Copyright John Maddock 2008.
|
|
// 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)
|
|
//
|
|
#include <boost/math/policies/policy.hpp>
|
|
#include <boost/math/special_functions/math_fwd.hpp>
|
|
|
|
namespace boost{ namespace math{ namespace policies{
|
|
|
|
template <>
|
|
struct policy<
|
|
domain_error<errno_on_error>,
|
|
pole_error<errno_on_error>,
|
|
overflow_error<errno_on_error>,
|
|
evaluation_error<errno_on_error>,
|
|
rounding_error<errno_on_error>,
|
|
default_policy, default_policy, default_policy, default_policy, default_policy, default_policy>
|
|
{
|
|
public:
|
|
typedef domain_error<errno_on_error> domain_error_type;
|
|
typedef pole_error<errno_on_error> pole_error_type;
|
|
typedef overflow_error<errno_on_error> overflow_error_type;
|
|
typedef underflow_error<errno_on_error> underflow_error_type;
|
|
typedef denorm_error<errno_on_error> denorm_error_type;
|
|
typedef evaluation_error<errno_on_error> evaluation_error_type;
|
|
typedef rounding_error<errno_on_error> rounding_error_type;
|
|
typedef indeterminate_result_error<> indeterminate_result_error_type;
|
|
#if BOOST_MATH_DIGITS10_POLICY == 0
|
|
typedef digits2<> precision_type;
|
|
#else
|
|
typedef detail::precision<digits10<>, digits2<> >::type precision_type;
|
|
#endif
|
|
typedef promote_float<> promote_float_type;
|
|
typedef promote_double<> promote_double_type;
|
|
typedef discrete_quantile<> discrete_quantile_type;
|
|
typedef assert_undefined<> assert_undefined_type;
|
|
typedef max_series_iterations<> max_series_iterations_type;
|
|
typedef max_root_iterations<> max_root_iterations_type;
|
|
};
|
|
|
|
template <>
|
|
struct policy<
|
|
domain_error<errno_on_error>,
|
|
pole_error<errno_on_error>,
|
|
overflow_error<errno_on_error>,
|
|
evaluation_error<errno_on_error>,
|
|
rounding_error<errno_on_error>,
|
|
detail::forwarding_arg1,
|
|
detail::forwarding_arg2,
|
|
default_policy, default_policy, default_policy, default_policy, default_policy, default_policy>
|
|
{
|
|
public:
|
|
typedef domain_error<errno_on_error> domain_error_type;
|
|
typedef pole_error<errno_on_error> pole_error_type;
|
|
typedef overflow_error<errno_on_error> overflow_error_type;
|
|
typedef underflow_error<errno_on_error> underflow_error_type;
|
|
typedef denorm_error<errno_on_error> denorm_error_type;
|
|
typedef evaluation_error<errno_on_error> evaluation_error_type;
|
|
typedef rounding_error<errno_on_error> rounding_error_type;
|
|
typedef indeterminate_result_error<> indeterminate_result_error_type;
|
|
#if BOOST_MATH_DIGITS10_POLICY == 0
|
|
typedef digits2<> precision_type;
|
|
#else
|
|
typedef detail::precision<digits10<>, digits2<> >::type precision_type;
|
|
#endif
|
|
typedef promote_float<false> promote_float_type;
|
|
typedef promote_double<false> promote_double_type;
|
|
typedef discrete_quantile<> discrete_quantile_type;
|
|
typedef assert_undefined<> assert_undefined_type;
|
|
typedef max_series_iterations<> max_series_iterations_type;
|
|
typedef max_root_iterations<> max_root_iterations_type;
|
|
};
|
|
|
|
template <>
|
|
struct normalise<policy<domain_error<errno_on_error>, pole_error<errno_on_error>, overflow_error<errno_on_error>, evaluation_error<errno_on_error>, rounding_error<errno_on_error> >,
|
|
promote_float<false>,
|
|
promote_double<false>,
|
|
discrete_quantile<>,
|
|
assert_undefined<>,
|
|
default_policy,
|
|
default_policy,
|
|
default_policy,
|
|
default_policy,
|
|
default_policy,
|
|
default_policy,
|
|
default_policy>
|
|
{
|
|
typedef policy<domain_error<errno_on_error>, pole_error<errno_on_error>, overflow_error<errno_on_error>, evaluation_error<errno_on_error>, rounding_error<errno_on_error>, detail::forwarding_arg1, detail::forwarding_arg2> type;
|
|
};
|
|
|
|
template <>
|
|
struct normalise<policy<domain_error<errno_on_error>, pole_error<errno_on_error>, overflow_error<errno_on_error>, evaluation_error<errno_on_error>, rounding_error<errno_on_error>, detail::forwarding_arg1, detail::forwarding_arg2 >,
|
|
promote_float<false>,
|
|
promote_double<false>,
|
|
discrete_quantile<>,
|
|
assert_undefined<>,
|
|
default_policy,
|
|
default_policy,
|
|
default_policy,
|
|
default_policy,
|
|
default_policy,
|
|
default_policy,
|
|
default_policy>
|
|
{
|
|
typedef policy<domain_error<errno_on_error>, pole_error<errno_on_error>, overflow_error<errno_on_error>, evaluation_error<errno_on_error>, rounding_error<errno_on_error>, detail::forwarding_arg1, detail::forwarding_arg2> type;
|
|
};
|
|
|
|
}}} // namespaces
|
|
|
|
namespace c_policies{
|
|
|
|
using boost::math::policies::policy;
|
|
using boost::math::policies::errno_on_error;
|
|
using boost::math::policies::domain_error;
|
|
using boost::math::policies::pole_error;
|
|
using boost::math::policies::overflow_error;
|
|
using boost::math::policies::rounding_error;
|
|
using boost::math::policies::evaluation_error;
|
|
|
|
typedef policy<
|
|
domain_error<errno_on_error>,
|
|
pole_error<errno_on_error>,
|
|
overflow_error<errno_on_error>,
|
|
evaluation_error<errno_on_error>,
|
|
rounding_error<errno_on_error>
|
|
> c_policy;
|
|
|
|
BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS(c_policy)
|
|
|
|
}
|