[PPL-devel] [GIT] ppl/ppl(master): For clarity, renamed three-state Float method is_inf () as inf_sign().

Enea Zaffanella zaffanella at cs.unipr.it
Wed Feb 15 14:55:09 CET 2012


Module: ppl/ppl
Branch: master
Commit: 2bcc4ac88501983c95dc035d8fc7ff5dbbf76975
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=2bcc4ac88501983c95dc035d8fc7ff5dbbf76975

Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date:   Wed Feb 15 14:39:43 2012 +0100

For clarity, renamed three-state Float method is_inf() as inf_sign().
Similarly, renamed is_zero() as zero_sign().

---

 src/Float.defs.hh            |   24 ++++++++++++------------
 src/Float.inlines.hh         |   24 ++++++++++++------------
 src/checked_float.inlines.hh |   28 ++++++++++++++++------------
 3 files changed, 40 insertions(+), 36 deletions(-)

diff --git a/src/Float.defs.hh b/src/Float.defs.hh
index 81e3799..597b2dc 100644
--- a/src/Float.defs.hh
+++ b/src/Float.defs.hh
@@ -65,9 +65,9 @@ struct float_ieee754_half {
   static const int EXPONENT_MIN_DENORM = EXPONENT_MIN
 					- static_cast<int>(MANTISSA_BITS);
   static const Floating_Point_Format floating_point_format = IEEE754_HALF;
-  int is_inf() const;
+  int inf_sign() const;
   bool is_nan() const;
-  int is_zero() const;
+  int zero_sign() const;
   bool sign_bit() const;
   void negate();
   void dec();
@@ -98,9 +98,9 @@ struct float_ieee754_single {
   static const int EXPONENT_MIN_DENORM = EXPONENT_MIN
 					- static_cast<int>(MANTISSA_BITS);
   static const Floating_Point_Format floating_point_format = IEEE754_SINGLE;
-  int is_inf() const;
+  int inf_sign() const;
   bool is_nan() const;
-  int is_zero() const;
+  int zero_sign() const;
   bool sign_bit() const;
   void negate();
   void dec();
@@ -144,9 +144,9 @@ struct float_ieee754_double {
   static const int EXPONENT_MIN_DENORM = EXPONENT_MIN
 					- static_cast<int>(MANTISSA_BITS);
   static const Floating_Point_Format floating_point_format = IEEE754_DOUBLE;
-  int is_inf() const;
+  int inf_sign() const;
   bool is_nan() const;
-  int is_zero() const;
+  int zero_sign() const;
   bool sign_bit() const;
   void negate();
   void dec();
@@ -176,9 +176,9 @@ struct float_ibm_single {
   static const int EXPONENT_MIN_DENORM = EXPONENT_MIN
 					- static_cast<int>(MANTISSA_BITS);
   static const Floating_Point_Format floating_point_format = IBM_SINGLE;
-  int is_inf() const;
+  int inf_sign() const;
   bool is_nan() const;
-  int is_zero() const;
+  int zero_sign() const;
   bool sign_bit() const;
   void negate();
   void dec();
@@ -229,9 +229,9 @@ struct float_intel_double_extended {
 					- static_cast<int>(MANTISSA_BITS);
   static const Floating_Point_Format floating_point_format =
                                      INTEL_DOUBLE_EXTENDED;
-  int is_inf() const;
+  int inf_sign() const;
   bool is_nan() const;
-  int is_zero() const;
+  int zero_sign() const;
   bool sign_bit() const;
   void negate();
   void dec();
@@ -268,9 +268,9 @@ struct float_ieee754_quad {
   static const int EXPONENT_MIN = -EXPONENT_MAX + 1;
   static const int EXPONENT_MIN_DENORM = EXPONENT_MIN
 					- static_cast<int>(MANTISSA_BITS);
-  int is_inf() const;
+  int inf_sign() const;
   bool is_nan() const;
-  int is_zero() const;
+  int zero_sign() const;
   bool sign_bit() const;
   void negate();
   void dec();
diff --git a/src/Float.inlines.hh b/src/Float.inlines.hh
index c9b0108..88bb1a1 100644
--- a/src/Float.inlines.hh
+++ b/src/Float.inlines.hh
@@ -31,7 +31,7 @@ site: http://bugseng.com/products/ppl/ . */
 namespace Parma_Polyhedra_Library {
 
 inline int
-float_ieee754_half::is_inf() const {
+float_ieee754_half::inf_sign() const {
   if (word == NEG_INF)
     return -1;
   if (word == POS_INF)
@@ -45,7 +45,7 @@ float_ieee754_half::is_nan() const {
 }
 
 inline int
-float_ieee754_half::is_zero() const {
+float_ieee754_half::zero_sign() const {
   if (word == NEG_ZERO)
     return -1;
   if (word == POS_ZERO)
@@ -92,7 +92,7 @@ float_ieee754_half::build(bool negative, mpz_t mantissa, int exponent) {
 }
 
 inline int
-float_ieee754_single::is_inf() const {
+float_ieee754_single::inf_sign() const {
   if (word == NEG_INF)
     return -1;
   if (word == POS_INF)
@@ -106,7 +106,7 @@ float_ieee754_single::is_nan() const {
 }
 
 inline int
-float_ieee754_single::is_zero() const {
+float_ieee754_single::zero_sign() const {
   if (word == NEG_ZERO)
     return -1;
   if (word == POS_ZERO)
@@ -153,7 +153,7 @@ float_ieee754_single::build(bool negative, mpz_t mantissa, int exponent) {
 }
 
 inline int
-float_ieee754_double::is_inf() const {
+float_ieee754_double::inf_sign() const {
   if (lsp != LSP_INF)
     return 0;
   if (msp == MSP_NEG_INF)
@@ -170,7 +170,7 @@ float_ieee754_double::is_nan() const {
 }
 
 inline int
-float_ieee754_double::is_zero() const {
+float_ieee754_double::zero_sign() const {
   if (lsp != LSP_ZERO)
     return 0;
   if (msp == MSP_NEG_ZERO)
@@ -239,7 +239,7 @@ float_ieee754_double::build(bool negative, mpz_t mantissa, int exponent) {
 }
 
 inline int
-float_ibm_single::is_inf() const {
+float_ibm_single::inf_sign() const {
   if (word == NEG_INF)
     return -1;
   if (word == POS_INF)
@@ -253,7 +253,7 @@ float_ibm_single::is_nan() const {
 }
 
 inline int
-float_ibm_single::is_zero() const {
+float_ibm_single::zero_sign() const {
   if (word == NEG_ZERO)
     return -1;
   if (word == POS_ZERO)
@@ -300,7 +300,7 @@ float_ibm_single::build(bool negative, mpz_t mantissa, int exponent) {
 }
 
 inline int
-float_intel_double_extended::is_inf() const {
+float_intel_double_extended::inf_sign() const {
   if (lsp != LSP_INF)
     return 0;
   uint32_t a = msp & MSP_NEG_INF;
@@ -318,7 +318,7 @@ float_intel_double_extended::is_nan() const {
 }
 
 inline int
-float_intel_double_extended::is_zero() const {
+float_intel_double_extended::zero_sign() const {
   if (lsp != LSP_ZERO)
     return 0;
   uint32_t a = msp & MSP_NEG_INF;
@@ -382,7 +382,7 @@ float_intel_double_extended::build(bool negative,
 }
 
 inline int
-float_ieee754_quad::is_inf() const {
+float_ieee754_quad::inf_sign() const {
   if (lsp != LSP_INF)
     return 0;
   if (msp == MSP_NEG_INF)
@@ -399,7 +399,7 @@ float_ieee754_quad::is_nan() const {
 }
 
 inline int
-float_ieee754_quad::is_zero() const {
+float_ieee754_quad::zero_sign() const {
   if (lsp != LSP_ZERO)
     return 0;
   if (msp == MSP_NEG_ZERO)
diff --git a/src/checked_float.inlines.hh b/src/checked_float.inlines.hh
index 16fff99..ffb5bd0 100644
--- a/src/checked_float.inlines.hh
+++ b/src/checked_float.inlines.hh
@@ -153,11 +153,15 @@ classify_float(const T v, bool nan, bool inf, bool sign) {
   if ((nan || sign) && CHECK_P(Policy::has_nan, f.u.binary.is_nan()))
     return V_NAN;
   if (inf) {
-    int i = CHECK_P(Policy::has_infinity, f.u.binary.is_inf());
-    if (i < 0)
-      return V_EQ_MINUS_INFINITY;
-    if (i > 0)
-      return V_EQ_PLUS_INFINITY;
+    if (Policy::has_infinity) {
+      int sign = f.u.binary.inf_sign();
+      if (sign < 0)
+        return V_EQ_MINUS_INFINITY;
+      if (sign > 0)
+        return V_EQ_PLUS_INFINITY;
+    }
+    else
+      PPL_ASSERT(f.u.binary.inf_sign() == 0);
   }
   if (sign) {
     if (v < 0)
@@ -180,20 +184,20 @@ template <typename Policy, typename T>
 inline bool
 is_inf_float(const T v) {
   Float<T> f(v);
-  return CHECK_P(Policy::has_infinity, (f.u.binary.is_inf() != 0));
+  return CHECK_P(Policy::has_infinity, (f.u.binary.inf_sign() != 0));
 }
 template <typename Policy, typename T>
 inline bool
 is_minf_float(const T v) {
   Float<T> f(v);
-  return CHECK_P(Policy::has_infinity, (f.u.binary.is_inf() < 0));
+  return CHECK_P(Policy::has_infinity, (f.u.binary.inf_sign() == -1));
 }
 
 template <typename Policy, typename T>
 inline bool
 is_pinf_float(const T v) {
   Float<T> f(v);
-  return CHECK_P(Policy::has_infinity, (f.u.binary.is_inf() > 0));
+  return CHECK_P(Policy::has_infinity, (f.u.binary.inf_sign() == 1));
 }
 
 
@@ -228,8 +232,8 @@ inline void
 pred_float(T& v) {
   Float<T> f(v);
   PPL_ASSERT(!f.u.binary.is_nan());
-  PPL_ASSERT(f.u.binary.is_inf() >= 0);
-  if (f.u.binary.is_zero() > 0) {
+  PPL_ASSERT(f.u.binary.inf_sign() >= 0);
+  if (f.u.binary.zero_sign() == 1) {
     f.u.binary.negate();
     f.u.binary.inc();
   }
@@ -247,8 +251,8 @@ inline void
 succ_float(T& v) {
   Float<T> f(v);
   PPL_ASSERT(!f.u.binary.is_nan());
-  PPL_ASSERT(f.u.binary.is_inf() <= 0);
-  if (f.u.binary.is_zero() < 0) {
+  PPL_ASSERT(f.u.binary.inf_sign() <= 0);
+  if (f.u.binary.zero_sign() == -1) {
     f.u.binary.negate();
     f.u.binary.inc();
   }




More information about the PPL-devel mailing list