
Module: ppl/ppl Branch: floating_point Commit: 655d6cc8016a48e74e52358d754c0e88d8edc13e URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=655d6cc8016a4...
Author: Fabio Bossi bossi@cs.unipr.it Date: Tue Sep 22 17:08:31 2009 +0200
Added a few details about other floating point formats.
---
src/Float.defs.hh | 30 ++++++++++++++++++++++++++++++ 1 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/src/Float.defs.hh b/src/Float.defs.hh index e743b77..2053a9a 100644 --- a/src/Float.defs.hh +++ b/src/Float.defs.hh @@ -41,6 +41,16 @@ namespace Parma_Polyhedra_Library { /*! \ingroup PPL_CXX_interface */ #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
+struct float_ieee754_half { + static const unsigned int EXPONENT_BITS = 5; + static const unsigned int MANTISSA_BITS = 10; + static const int EXPONENT_BIAS = 15; +}; + +#ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS +/*! \ingroup PPL_CXX_interface */ +#endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS) + struct float_ieee754_single { uint32_t word; static const uint32_t SGN_MASK = 0x80000000; @@ -115,6 +125,26 @@ struct float_ieee754_double { /*! \ingroup PPL_CXX_interface */ #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
+struct float_IBM_single { + static const unsigned int EXPONENT_BITS = 7; + static const unsigned int MANTISSA_BITS = 24; + static const int EXPONENT_BIAS = 64; +}; + +#ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS +/*! \ingroup PPL_CXX_interface */ +#endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS) + +struct float_IBM_double { + static const unsigned int EXPONENT_BITS = 7; + static const unsigned int MANTISSA_BITS = 56; + static const int EXPONENT_BIAS = 64; +}; + +#ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS +/*! \ingroup PPL_CXX_interface */ +#endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS) + struct float_intel_double_extended { #ifdef PPL_WORDS_BIGENDIAN uint32_t msp;