[PPL-devel] [GIT] ppl/ppl(floating_point): Added class absolute_error.

Fabio Bossi bossi at cs.unipr.it
Wed Jul 21 12:02:00 CEST 2010


Module: ppl/ppl
Branch: floating_point
Commit: 7421b099f14c21bd61400d345201e92022d836aa
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=7421b099f14c21bd61400d345201e92022d836aa

Author: Fabio Bossi <bossi at cs.unipr.it>
Date:   Wed Jul 21 12:01:17 2010 +0200

Added class absolute_error.

---

 src/Float.defs.hh |   59 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 4 deletions(-)

diff --git a/src/Float.defs.hh b/src/Float.defs.hh
index fff7b68..d2f2678 100644
--- a/src/Float.defs.hh
+++ b/src/Float.defs.hh
@@ -364,11 +364,62 @@ template <typename FP_Interval_Type>
 FP_Interval_Type compute_absolute_error(const Floating_Point_Format
                                         analyzed_format);
 
-// TODO.
-/*
+template <typename FP_Interval_Type, Floating_Point_Format>
+class absolute_error;
+
+template <typename FP_Interval_Type>
+class absolute_error<FP_Interval_Type, IEEE754_HALF> {
+  static const FP_Interval_Type value;
+};
+
+template <typename FP_Interval_Type>
+const FP_Interval_Type absolute_error<FP_Interval_Type, IEEE754_HALF>::value =
+  compute_absolute_error<FP_Interval_Type>(IEEE754_HALF);
+
+template <typename FP_Interval_Type>
+class absolute_error<FP_Interval_Type, IEEE754_SINGLE> {
+  static const FP_Interval_Type value;
+};
+
+template <typename FP_Interval_Type>
+const FP_Interval_Type absolute_error<FP_Interval_Type, IEEE754_SINGLE>::value =
+  compute_absolute_error<FP_Interval_Type>(IEEE754_SINGLE);
+
+template <typename FP_Interval_Type>
+class absolute_error<FP_Interval_Type, IEEE754_DOUBLE> {
+  static const FP_Interval_Type value;
+};
+
+template <typename FP_Interval_Type>
+const FP_Interval_Type absolute_error<FP_Interval_Type, IEEE754_DOUBLE>::value =
+  compute_absolute_error<FP_Interval_Type>(IEEE754_DOUBLE);
+
+template <typename FP_Interval_Type>
+class absolute_error<FP_Interval_Type, IBM_SINGLE> {
+  static const FP_Interval_Type value;
+};
+
+template <typename FP_Interval_Type>
+const FP_Interval_Type absolute_error<FP_Interval_Type, IBM_SINGLE>::value =
+  compute_absolute_error<FP_Interval_Type>(IBM_SINGLE);
+
+template <typename FP_Interval_Type>
+class absolute_error<FP_Interval_Type, IEEE754_QUAD> {
+  static const FP_Interval_Type value;
+};
+
+template <typename FP_Interval_Type>
+const FP_Interval_Type absolute_error<FP_Interval_Type, IEEE754_QUAD>::value =
+  compute_absolute_error<FP_Interval_Type>(IEEE754_QUAD);
+
+template <typename FP_Interval_Type>
+class absolute_error<FP_Interval_Type, INTEL_DOUBLE_EXTENDED> {
+  static const FP_Interval_Type value;
+};
+
 template <typename FP_Interval_Type>
-FP_Interval_Type absolute_error = compute_absolute_error();
-*/
+const FP_Interval_Type absolute_error<FP_Interval_Type, INTEL_DOUBLE_EXTENDED>::value =
+  compute_absolute_error<FP_Interval_Type>(INTEL_DOUBLE_EXTENDED);
 
 } // namespace Parma_Polyhedra_Library
 




More information about the PPL-devel mailing list