From 51729e09e79451f4787a81d642e429a189c9dd82 Mon Sep 17 00:00:00 2001 From: Marcin Niestroj Date: Wed, 22 Jun 2022 22:48:47 +0200 Subject: [PATCH] number: fix multiplication and division when precision differs This is clearly a copy-paste bug, as there is addition in both places now. Fix that. Fixes: 26ab08df2ed0 ("Test and fix mixed precision arithmetic with component types.") --- include/boost/multiprecision/number.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/multiprecision/number.hpp b/include/boost/multiprecision/number.hpp index e688ac16..c6e8167c 100644 --- a/include/boost/multiprecision/number.hpp +++ b/include/boost/multiprecision/number.hpp @@ -721,7 +721,7 @@ class number BOOST_MP_CONSTEXPR_IF_VARIABLE_PRECISION(number) if (precision_guard.precision() != boost::multiprecision::detail::current_precision_of(*this)) { - number t(*this + v); + number t(*this * v); return *this = std::move(t); } @@ -891,7 +891,7 @@ class number BOOST_MP_CONSTEXPR_IF_VARIABLE_PRECISION(number) if (precision_guard.precision() != boost::multiprecision::detail::current_precision_of(*this)) { - number t(*this + v); + number t(*this / v); return *this = std::move(t); }