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.
45 lines
1.5 KiB
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
|
|
|