From 3ba74da77c300d233604152c9036cd569d45d8f3 Mon Sep 17 00:00:00 2001 From: Michael Hemmer Date: Sun, 17 Dec 2006 13:20:08 +0000 Subject: [PATCH] rm use of abs in gcd --- .../include/CGAL/Polynomial/Algebraic_structure_traits.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Polynomial/include/CGAL/Polynomial/Algebraic_structure_traits.h b/Polynomial/include/CGAL/Polynomial/Algebraic_structure_traits.h index 7ce96a0c0f0..f29d06df67e 100644 --- a/Polynomial/include/CGAL/Polynomial/Algebraic_structure_traits.h +++ b/Polynomial/include/CGAL/Polynomial/Algebraic_structure_traits.h @@ -124,14 +124,19 @@ class Polynomial_algebraic_structure_traits_base< POLY, Unique_factorization_dom : public Binary_function< POLY, POLY, POLY > { public: POLY operator()( const POLY& x, const POLY& y ) const { + typedef Algebraic_structure_traits AST; + typename AST::Integral_division idiv; + typename AST::Unit_part upart; + // First: the extreme cases and negative sign corrections. if (x == POLY(0)) { if (y == POLY(0)) return POLY(0); - return y.abs(); // TODO: Is this correct? + return idiv(y,upart(y)); } if (y == POLY(0)) - return x.abs(); // TODO: Is this correct? + return idiv(x,upart(x)); + return INTERN_POLYNOMIAL_GCD::gcd(x,y); }