[PPL-devel] [GIT] ppl/ppl(floating_point): Added some more documentation.
Fabio Bossi
bossi at cs.unipr.it
Mon Sep 21 15:38:03 CEST 2009
Module: ppl/ppl
Branch: floating_point
Commit: e382dfd1d7fa78031d49b05b7bbc0fac51ca3aa9
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=e382dfd1d7fa78031d49b05b7bbc0fac51ca3aa9
Author: Fabio Bossi <bossi at cs.unipr.it>
Date: Mon Sep 21 15:41:16 2009 +0200
Added some more documentation.
---
src/Polyhedron.defs.hh | 60 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 60 insertions(+), 0 deletions(-)
diff --git a/src/Polyhedron.defs.hh b/src/Polyhedron.defs.hh
index 3c3a9d5..7ecc2cf 100644
--- a/src/Polyhedron.defs.hh
+++ b/src/Polyhedron.defs.hh
@@ -2628,6 +2628,25 @@ protected:
//@} // Exception Throwers
#endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
+ //! Helper function that overapproximates an interval linear form.
+ /*!
+ \param lf
+ The linear form on intervals with floating point boundaries to approximate.
+
+ \param lf_dimension
+ Must be the space dimension of \p lf.
+
+ \param store
+ The interval abstract store in which the approximation is performed.
+
+ \param result
+ Used to store the result.
+
+ This function makes \p result become a linear form that is a correct
+ approximation of \p lf in \p store. The resulting linear form has the
+ property that all of its variable coefficients have a non-significative
+ upper bound and can thus be considered as singletons.
+ */
template <typename FP_Format, typename Interval_Info>
static void overapproximate_linear_form(
const Linear_Form<Interval <FP_Format, Interval_Info> >& lf,
@@ -2635,12 +2654,53 @@ protected:
const std::map< dimension_type, Interval<FP_Format, Interval_Info> >& store,
Linear_Form<Interval <FP_Format, Interval_Info> >& result);
+ /*! \brief
+ Helper function that makes \p result become a Linear_Expression obtained
+ by normalizing the denominators in \p lf.
+
+ \param lf
+ The linear form on intervals with floating point boundarie to normalize.
+ It should be the result of an application of static method
+ <CODE>overapproximate_linear_form</CODE>.
+
+ \param l_dimension
+ Must be the space dimension of \p lf.
+
+ \param result
+ Used to store the result.
+
+ This function ignores the upper bound of intervals in \p lf,
+ so that in fact the result can be seen as \p lf multiplied by a proper
+ normalization constant.
+ */
template <typename FP_Format, typename Interval_Info>
static void convert_to_integer_expression(
const Linear_Form<Interval <FP_Format, Interval_Info> >& lf,
const dimension_type lf_dimension,
Linear_Expression& result);
+ //! Normalization helper function.
+ /*!
+ \param lf
+ The linear form on intervals with floating point boundaries to normalize.
+ It should be the result of an application of static method
+ <CODE>overapproximate_linear_form</CODE>.
+
+ \param lf_dimension
+ Must be the space dimension of \p lf.
+
+ \param res
+ Stores the normalized linear form, except its inhomogeneous term.
+
+ \param res_low_coeff
+ Stores the lower boundary of the inhomogeneous term of the result.
+
+ \param res_hi_coeff
+ Stores the higher boundary of the inhomogeneous term of the result.
+
+ Results are obtained by normalizing denominators in \p lf, ignoring
+ the upper bounds of variable coefficients in \p lf.
+ */
template <typename FP_Format, typename Interval_Info>
static void convert_to_integer_expressions(
const Linear_Form<Interval <FP_Format, Interval_Info> >& lf,
More information about the PPL-devel
mailing list