// LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt
#ifdef _MSC_VER
-# define _SCL_SECURE_NO_WARNINGS
+#define _SCL_SECURE_NO_WARNINGS
#endif
#include "test.hpp"
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && \
- !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ) && \
- !defined(TEST_TOMMATH) && !defined(TEST_CPP_INT) && !defined(TEST_MPFI_50) &&!defined(TEST_FLOAT128) && !defined(TEST_CPP_BIN_FLOAT)
-# define TEST_MPF_50
-# define TEST_MPF
-# define TEST_BACKEND
-# define TEST_MPZ
-# define TEST_MPFR
-# define TEST_MPFR_50
-# define TEST_CPP_DEC_FLOAT
-# define TEST_MPQ
-# define TEST_TOMMATH
-# define TEST_CPP_INT
-# define TEST_MPFI_50
-# define TEST_FLOAT128
-# define TEST_CPP_BIN_FLOAT
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && \
+ !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ) && \
+ !defined(TEST_TOMMATH) && !defined(TEST_CPP_INT) && !defined(TEST_MPFI_50) && !defined(TEST_FLOAT128) && !defined(TEST_CPP_BIN_FLOAT)
+#define TEST_MPF_50
+#define TEST_MPF
+#define TEST_BACKEND
+#define TEST_MPZ
+#define TEST_MPFR
+#define TEST_MPFR_50
+#define TEST_CPP_DEC_FLOAT
+#define TEST_MPQ
+#define TEST_TOMMATH
+#define TEST_CPP_INT
+#define TEST_MPFI_50
+#define TEST_FLOAT128
+#define TEST_CPP_BIN_FLOAT
#ifdef _MSC_VER
#pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
#endif
#ifdef BOOST_MSVC
-#pragma warning(disable:4127)
+#pragma warning(disable : 4127)
#endif
-#define PRINT(x)\
+#define PRINT(x) \
std::cout << BOOST_STRINGIZE(x) << " = " << std::numeric_limits<Number>::x << std::endl;
template <class Number>
BOOST_CHECK((boost::math::isnormal)(sqrt(minv)));
BOOST_CHECK((boost::math::isnormal)(sqrt(maxv)));
- if(std::numeric_limits<Number>::is_specialized)
+ if (std::numeric_limits<Number>::is_specialized)
{
- if(std::numeric_limits<Number>::has_quiet_NaN)
+ if (std::numeric_limits<Number>::has_quiet_NaN)
{
BOOST_TEST((boost::math::isnan)(std::numeric_limits<Number>::quiet_NaN()));
BOOST_TEST(FP_NAN == (boost::math::fpclassify)(std::numeric_limits<Number>::quiet_NaN()));
BOOST_TEST(!(boost::math::isnormal)(std::numeric_limits<Number>::quiet_NaN()));
BOOST_TEST(!(boost::math::isinf)(std::numeric_limits<Number>::quiet_NaN()));
}
- if(std::numeric_limits<Number>::has_signaling_NaN)
+ if (std::numeric_limits<Number>::has_signaling_NaN)
{
BOOST_TEST((boost::math::isnan)(std::numeric_limits<Number>::signaling_NaN()));
BOOST_TEST(FP_NAN == (boost::math::fpclassify)(std::numeric_limits<Number>::signaling_NaN()));
BOOST_TEST(!(boost::math::isnormal)(std::numeric_limits<Number>::signaling_NaN()));
BOOST_TEST(!(boost::math::isinf)(std::numeric_limits<Number>::signaling_NaN()));
}
- if(std::numeric_limits<Number>::has_infinity)
+ if (std::numeric_limits<Number>::has_infinity)
{
BOOST_TEST((boost::math::isinf)(std::numeric_limits<Number>::infinity()));
BOOST_TEST(FP_INFINITE == (boost::math::fpclassify)(std::numeric_limits<Number>::infinity()));
BOOST_TEST(!(boost::math::isnormal)(std::numeric_limits<Number>::infinity()));
BOOST_TEST(!(boost::math::isnan)(std::numeric_limits<Number>::infinity()));
}
- if(std::numeric_limits<Number>::has_denorm == std::denorm_present)
+ if (std::numeric_limits<Number>::has_denorm == std::denorm_present)
{
BOOST_TEST(FP_SUBNORMAL == (boost::math::fpclassify)(std::numeric_limits<Number>::denorm_min()));
- BOOST_TEST(FP_SUBNORMAL == (boost::math::fpclassify)(std::numeric_limits<Number>::min() / 2));
+ BOOST_TEST(FP_SUBNORMAL == (boost::math::fpclassify)((std::numeric_limits<Number>::min)() / 2));
BOOST_TEST((boost::math::isfinite)(std::numeric_limits<Number>::denorm_min()));
BOOST_TEST(!(boost::math::isnormal)(std::numeric_limits<Number>::denorm_min()));
BOOST_TEST(!(boost::math::isinf)(std::numeric_limits<Number>::denorm_min()));
BOOST_TEST(!(boost::math::isnan)(std::numeric_limits<Number>::denorm_min()));
BOOST_TEST(0 == std::numeric_limits<Number>::denorm_min() / 2);
- BOOST_TEST(0 != std::numeric_limits<Number>::min() / 2);
+ BOOST_TEST(0 != (std::numeric_limits<Number>::min)() / 2);
BOOST_TEST(0 != std::numeric_limits<Number>::denorm_min());
}
}
BOOST_TEST(!(boost::math::isinf)(n));
BOOST_TEST(!(boost::math::isnan)(n));
- if(std::numeric_limits<Number>::round_style == std::round_to_nearest)
+ if (std::numeric_limits<Number>::round_style == std::round_to_nearest)
{
BOOST_CHECK_EQUAL(std::numeric_limits<Number>::round_error(), 0.5);
}
- else if(std::numeric_limits<Number>::round_style != std::round_indeterminate)
+ else if (std::numeric_limits<Number>::round_style != std::round_indeterminate)
{
// Round error is 1.0:
BOOST_CHECK_EQUAL(std::numeric_limits<Number>::round_error(), 1);
template <class Number>
void test_specific(const boost::mpl::int_<boost::multiprecision::number_kind_integer>&)
{
- if(std::numeric_limits<Number>::is_modulo)
+ if (std::numeric_limits<Number>::is_modulo)
{
- if(!std::numeric_limits<Number>::is_signed)
+ if (!std::numeric_limits<Number>::is_signed)
{
BOOST_TEST(1 + (std::numeric_limits<Number>::max)() == 0);
BOOST_TEST(--Number(0) == (std::numeric_limits<Number>::max)());
void test()
{
typedef typename boost::mpl::if_c<
- std::numeric_limits<Number>::is_specialized,
- typename boost::multiprecision::number_category<Number>::type,
- boost::mpl::int_<500> // not a number type
- >::type fp_test_type;
+ std::numeric_limits<Number>::is_specialized,
+ typename boost::multiprecision::number_category<Number>::type,
+ boost::mpl::int_<500> // not a number type
+ >::type fp_test_type;
test_specific<Number>(fp_test_type());
std::cout << "numeric_limits values for type " << typeid(Number).name() << std::endl;
PRINT(is_specialized);
- if(std::numeric_limits<Number>::is_integer)
+ if (std::numeric_limits<Number>::is_integer)
{
std::cout << std::hex << std::showbase;
}
- std::cout << "max()" << " = " << (std::numeric_limits<Number>::max)() << std::endl;
- if(std::numeric_limits<Number>::is_integer)
+ std::cout << "max()"
+ << " = " << (std::numeric_limits<Number>::max)() << std::endl;
+ if (std::numeric_limits<Number>::is_integer)
{
std::cout << std::dec;
}
- std::cout << "max()" << " = " << (std::numeric_limits<Number>::max)() << std::endl;
- std::cout << "min()" << " = " << (std::numeric_limits<Number>::min)() << std::endl;
+ std::cout << "max()"
+ << " = " << (std::numeric_limits<Number>::max)() << std::endl;
+ std::cout << "min()"
+ << " = " << (std::numeric_limits<Number>::min)() << std::endl;
#ifndef BOOST_NO_CXX11_NUMERIC_LIMITS
PRINT(lowest());
#endif
PRINT(round_style);
}
-
int main()
{
#ifdef TEST_BACKEND
#endif
return boost::report_errors();
}
-