diff --git a/include/boost/math/tools/polynomial.hpp b/include/boost/math/tools/polynomial.hpp index d9064e1e4..5ebc85205 100644 --- a/include/boost/math/tools/polynomial.hpp +++ b/include/boost/math/tools/polynomial.hpp @@ -558,9 +558,10 @@ bool operator == (const polynomial &a, const polynomial &b) // Unary minus (negate). template -polynomial operator - (const polynomial& a) +polynomial operator - (polynomial a) { - return a * T(-1); + std::transform(a.data().begin(), a.data().end(), a.data().begin(), std::negate()); + return a; } template