Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions include/boost/decimal/decimal32_fast.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ namespace decimal {

namespace detail {

BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d32_fast_inf = std::numeric_limits<std::uint_fast32_t>::max();
BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d32_fast_qnan = std::numeric_limits<std::uint_fast32_t>::max() - 1;
BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d32_fast_snan = std::numeric_limits<std::uint_fast32_t>::max() - 2;
BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d32_fast_inf = std::numeric_limits<std::uint_fast32_t>::max() - 3;
BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d32_fast_qnan = std::numeric_limits<std::uint_fast32_t>::max() - 2;
BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d32_fast_snan = std::numeric_limits<std::uint_fast32_t>::max() - 1;

}

Expand Down Expand Up @@ -461,7 +461,7 @@ constexpr auto isinf(decimal32_fast val) noexcept -> bool
constexpr auto isnan(decimal32_fast val) noexcept -> bool
{
#ifndef BOOST_DECIMAL_FAST_MATH
return val.significand_ == detail::d32_fast_qnan || val.significand_ == detail::d32_fast_snan;
return val.significand_ >= detail::d32_fast_qnan;
#else
static_cast<void>(val);
return false;
Expand Down Expand Up @@ -489,7 +489,7 @@ constexpr auto isnormal(decimal32_fast val) noexcept -> bool

constexpr auto isfinite(decimal32_fast val) noexcept -> bool
{
return val.significand_ < detail::d32_fast_snan;
return val.significand_ < detail::d32_fast_inf;
}

constexpr auto operator==(decimal32_fast lhs, decimal32_fast rhs) noexcept -> bool
Expand Down
13 changes: 6 additions & 7 deletions include/boost/decimal/decimal64_fast.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ namespace decimal {

namespace detail {

BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d64_fast_inf = std::numeric_limits<std::uint_fast64_t>::max();
BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d64_fast_qnan = std::numeric_limits<std::uint_fast64_t>::max() - 1;
BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d64_fast_snan = std::numeric_limits<std::uint_fast64_t>::max() - 2;
BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d64_fast_inf = std::numeric_limits<std::uint_fast64_t>::max() - 3;
BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d64_fast_qnan = std::numeric_limits<std::uint_fast64_t>::max() - 2;
BOOST_DECIMAL_CONSTEXPR_VARIABLE auto d64_fast_snan = std::numeric_limits<std::uint_fast64_t>::max() - 1;

struct decimal64_fast_components
{
Expand Down Expand Up @@ -479,8 +479,7 @@ constexpr auto isinf(decimal64_fast val) noexcept -> bool
constexpr auto isnan(decimal64_fast val) noexcept -> bool
{
#ifndef BOOST_DECIMAL_FAST_MATH
return val.significand_ == detail::d64_fast_qnan ||
val.significand_ == detail::d64_fast_snan;
return val.significand_ >= detail::d64_fast_qnan;
#else
static_cast<void>(val);
return false;
Expand Down Expand Up @@ -513,12 +512,12 @@ constexpr auto isnormal(decimal64_fast val) noexcept -> bool

constexpr auto isfinite(decimal64_fast val) noexcept -> bool
{
return val.significand_ < detail::d64_fast_snan;
return val.significand_ < detail::d64_fast_inf;
}

constexpr auto not_finite(decimal64_fast val) noexcept -> bool
{
return val.significand_ >= detail::d64_fast_snan;
return val.significand_ >= detail::d64_fast_inf;
}

constexpr auto operator==(decimal64_fast lhs, decimal64_fast rhs) noexcept -> bool
Expand Down
Loading