avoid expensive assignement

This commit is contained in:
Valentin Balaschenko
2026-02-04 13:21:24 +00:00
parent ed13af878e
commit a86a90edd7

View File

@@ -38,7 +38,10 @@ Number::getround()
Number::rounding_mode
Number::setround(rounding_mode mode)
{
return std::exchange(mode_, mode);
auto const old = mode_;
if (old != mode)
mode_ = mode;
return old;
}
MantissaRange::mantissa_scale
@@ -52,6 +55,8 @@ Number::setMantissaScale(MantissaRange::mantissa_scale scale)
{
if (scale != MantissaRange::small && scale != MantissaRange::large)
LogicError("Unknown mantissa scale");
if (range_.get().scale == scale)
return;
range_ = scale == MantissaRange::small ? smallRange : largeRange;
}