[PPL-devel] [GIT] ppl/ppl(floating_point): Added some documentation.

Fabio Bossi bossi at cs.unipr.it
Sat Jul 24 18:45:59 CEST 2010


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

Author: Fabio Bossi <bossi at cs.unipr.it>
Date:   Sat Jul 24 18:45:38 2010 +0200

Added some documentation.

---

 src/Float.defs.hh       |   16 +++++++++++++
 src/Linear_Form.defs.hh |   55 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+), 0 deletions(-)

diff --git a/src/Float.defs.hh b/src/Float.defs.hh
index e68c3bd..e484458 100644
--- a/src/Float.defs.hh
+++ b/src/Float.defs.hh
@@ -360,6 +360,22 @@ public:
 };
 #endif
 
+/*! \brief
+  Computes the absolute error of floating point computations.
+
+  \par Template type parameters
+
+  - The class template parameter \p FP_Interval_Type represents the type
+  of the intervals used in the abstract domain. The interval bounds
+  should have a floating point type.
+
+  \param analyzed_format The floating point format used by the analyzed
+  program.
+
+  \return The interval \f$[-\omega; \omega]\f$ where \f$\omega\f$ is the
+  smallest non-zero positive number in the less precise floating point
+  format between the analyzer format and the analyzed format.
+*/
 template <typename FP_Interval_Type>
 const FP_Interval_Type& compute_absolute_error(
                         Floating_Point_Format analyzed_format);
diff --git a/src/Linear_Form.defs.hh b/src/Linear_Form.defs.hh
index ccb4e0f..c8c07ae 100644
--- a/src/Linear_Form.defs.hh
+++ b/src/Linear_Form.defs.hh
@@ -325,11 +325,66 @@ public:
 
   // Floating point analysis related methods.
 
+  /*! \brief
+    Verifies if the linear form overflows.
+
+    \return
+    Returns <CODE>false</CODE> if all coefficients in \p lf are bounded,
+    <CODE>true</CODE> otherwise.
+
+    \p T must be the type of possibly unbounded quantities.
+  */
   bool overflows() const;
 
+  /*! \brief
+    Computes the relative error associated to floating point computations
+    that operate on a quantity that is overapproximated by \p *this.
+
+    \param analyzed_format The floating point format used by the analyzed
+    program.
+    \param result Becomes the linear form corresponding to the relative
+    error committed.
+
+    This method makes <CODE>result</CODE> become a linear form
+    obtained by evaluating the function \f$\varepsilon_{\mathbf{f}}(l)\f$
+    on the linear form. This function is defined as:
+    \f[
+    \varepsilon_{\mathbf{f}}\left([a;b]+\sum_{v \in \cV}[a_{v};b_{v}]v\right)
+    \defeq
+    (\textrm{max}(|a|,|b|) \amifp [-\beta^{-\textrm{p}};\beta^{-\textrm{p}}])
+    +
+    \sum_{v \in \cV}(\textrm{max}(|a_{v}|,|b_{v}|)
+    \amifp
+    [-\beta^{-\textrm{p}};\beta^{-\textrm{p}}])v
+    \f]
+    where p is the fraction size in bits for the format \f$\mathbf{f}\f$ and
+    \f$\beta\f$ the base.
+
+    The result is undefined if \p T is not the type of an interval with
+    floating point boundaries.
+  */
   void relative_error(Floating_Point_Format analyzed_format,
                       Linear_Form& result) const;
 
+  /*! \brief
+    Makes \p result become an interval that overapproximates all the
+    possible values of \p *this in the interval abstract store \p store.
+
+    \param store The abstract store.
+    \param result The linear form that will store the result.
+
+    This method makes <CODE>result</CODE> become
+    \f$\iota(lf)\rho^{\#}\f$, that is an interval defined as:
+    \f[
+    \iota\left(i + \sum_{v \in \cV}i_{v}v\right)\rho^{\#}
+    \defeq
+    i \asifp \left(\bigoplus_{v \in \cV}{}^{\#}i_{v} \amifp
+    \rho^{\#}(v)\right)
+    \f]
+
+    The result is undefined if \p T is not the type of an interval with
+    floating point boundaries.
+  */
   void intervalize(const Box<C>& store, C& result) const;
 
 private:




More information about the PPL-devel mailing list