You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libreoffice/0001-Use-gcd-from-boost-mat...

45 lines
1.5 KiB

From 9f68be99919871283238e4a12940d9581d724af2 Mon Sep 17 00:00:00 2001
From: David Ostrovsky <david@ostrovsky.org>
Date: Thu, 4 May 2017 19:14:13 +0200
Subject: [PATCH] Use gcd from boost::math::gcd
According to the documentation "Run-time GCD & LCM Determination": [1],
gcd should be consumed from boost::math::gcd.
[1] <http://www.boost.org/doc/libs/1_64_0/libs/math/doc/html/math_toolkit/run_time.html>
Change-Id: I026a4e8ead75399765eb73fa5434a57958676383
Reviewed-on: https://gerrit.libreoffice.org/37260
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
---
tools/source/generic/fract.cxx | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/source/generic/fract.cxx b/tools/source/generic/fract.cxx
index bc9bef467e86..afcb2e60ba42 100644
--- a/tools/source/generic/fract.cxx
+++ b/tools/source/generic/fract.cxx
@@ -30,6 +30,7 @@
#include <algorithm>
#include <cmath>
+#include <boost/math/common_factor_rt.hpp>
#include <boost/rational.hpp>
template<typename T>
@@ -180,8 +181,8 @@ namespace
T den = r.denominator();
// Avoid overflow and preserve normalization
- T gcd1 = boost::integer::gcd(i.numerator(), den);
- T gcd2 = boost::integer::gcd(num, i.denominator());
+ T gcd1 = boost::math::gcd(i.numerator(), den);
+ T gcd2 = boost::math::gcd(num, i.denominator());
bool fail = false;
fail |= o3tl::checked_multiply(i.numerator() / gcd1, num / gcd2, num);
--
2.12.2