
Module: ppl/ppl Branch: master Commit: b3fe5242d062a0831d1a098d06d4b89456a21429 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=b3fe5242d062a...
Author: Enea Zaffanella zaffanella@cs.unipr.it Date: Mon May 11 18:53:23 2009 +0200
Renamed rational_sqrt_precision_parameter to irrational_precision.
---
src/Init.cc | 2 +- src/checked.cc | 4 ++-- src/checked_mpq.inlines.hh | 24 +++++++++++------------- 3 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/src/Init.cc b/src/Init.cc index 45e994d..c8b7d9f 100644 --- a/src/Init.cc +++ b/src/Init.cc @@ -175,7 +175,7 @@ PPL::Init::Init() {
// The default is choosen to have a precision greater than most // precise IEC559 floating point (112 bits of mantissa). - set_rational_sqrt_precision_parameter(128); + set_irrational_precision(128); } }
diff --git a/src/checked.cc b/src/checked.cc index 3529e87..42b57b6 100644 --- a/src/checked.cc +++ b/src/checked.cc @@ -32,8 +32,8 @@ Not_A_Number NOT_A_NUMBER;
namespace Checked {
-//! Holds the precision parameter used for rational sqrt calculations. -unsigned long rational_sqrt_precision_parameter; +//! Holds the precision parameter used for irrational calculations. +unsigned irrational_precision;
struct number_struct { unsigned int base; diff --git a/src/checked_mpq.inlines.hh b/src/checked_mpq.inlines.hh index 436d61e..c99c6e1 100644 --- a/src/checked_mpq.inlines.hh +++ b/src/checked_mpq.inlines.hh @@ -377,7 +377,7 @@ sub_mul_mpq(mpq_class& to, const mpq_class& x, const mpq_class& y,
PPL_SPECIALIZE_SUB_MUL(sub_mul_mpq, mpq_class, mpq_class, mpq_class)
-extern unsigned long rational_sqrt_precision_parameter; +extern unsigned irrational_precision;
template <typename To_Policy, typename From_Policy> inline Result @@ -395,15 +395,13 @@ sqrt_mpq(mpq_class& to, const mpq_class& from, Rounding_Dir dir) { mpz_class& to_b = gt1 ? to.get_den() : to.get_num(); Rounding_Dir rdir = gt1 ? dir : inverse(dir); mul_2exp<To_Policy, From_Policy>(to_a, from_a, - 2*rational_sqrt_precision_parameter, - ROUND_IGNORE); + 2*irrational_precision, ROUND_IGNORE); Result rdiv = div<To_Policy, To_Policy, To_Policy>(to_a, to_a, from_b, rdir); Result rsqrt = sqrt<To_Policy, To_Policy>(to_a, to_a, rdir); to_b = 1; mul_2exp<To_Policy, To_Policy>(to_b, to_b, - rational_sqrt_precision_parameter, - ROUND_IGNORE); + irrational_precision, ROUND_IGNORE); to.canonicalize(); return rdiv != V_EQ ? rdiv : rsqrt; } @@ -457,27 +455,27 @@ PPL_SPECIALIZE_ASSIGN(assign_mpq_long_double, mpq_class, long double)
} // namespace Checked
-//! Returns the precision parameter used for rational square root calculations. +//! Returns the precision parameter used for irrational calculations. inline unsigned -rational_sqrt_precision_parameter() { - return Checked::rational_sqrt_precision_parameter; +irrational_precision() { + return Checked::irrational_precision; }
-//! Sets the precision parameter used for rational square root calculations. +//! Sets the precision parameter used for irrational calculations. /*! The lesser between numerator and denominator is limited to 2**\p p.
If \p p is less than or equal to <CODE>INT_MAX</CODE>, sets the - precision parameter used for rational square root calculations to \p p. + precision parameter used for irrational calculations to \p p.
\exception std::invalid_argument Thrown if \p p is greater than <CODE>INT_MAX</CODE>. */ inline void -set_rational_sqrt_precision_parameter(const unsigned p) { +set_irrational_precision(const unsigned p) { if (p <= INT_MAX) - Checked::rational_sqrt_precision_parameter = p; + Checked::irrational_precision = p; else - throw std::invalid_argument("PPL::set_rational_sqrt_precision_parameter(p)" + throw std::invalid_argument("PPL::set_irrational_precision(p)" " with p > INT_MAX"); }