[PPL-devel] [GIT] ppl/ppl(master): Further improvements to documentation of helper functions.
Enea Zaffanella
zaffanella at cs.unipr.it
Sat Mar 31 13:55:21 CEST 2012
Module: ppl/ppl
Branch: master
Commit: 992e9dc81a58f65429e7650ca2077fd95f1efda1
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=992e9dc81a58f65429e7650ca2077fd95f1efda1
Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date: Sat Mar 31 10:20:08 2012 +0200
Further improvements to documentation of helper functions.
---
src/linearize.hh | 190 ++++++++++++++++++++++++++++++++---------------------
1 files changed, 115 insertions(+), 75 deletions(-)
diff --git a/src/linearize.hh b/src/linearize.hh
index 6bd75d8..1a074ae 100644
--- a/src/linearize.hh
+++ b/src/linearize.hh
@@ -32,30 +32,38 @@ site: http://bugseng.com/products/ppl/ . */
namespace Parma_Polyhedra_Library {
-/*! \brief
+/*! \brief \relates Parma_Polyhedra_Library::Concrete_Expression
Helper function used by <CODE>linearize</CODE> to linearize a
sum of floating point expressions.
- \par Template type parameters
-
- - The class template parameter \p Target specifies the implementation
- of Concrete_Expression to be used.
- - 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.
-
Makes \p result become the linearization of \p *this in the given
composite abstract store.
- \param bop_expr The binary operator concrete expression to linearize.
- Its binary operator type must be <CODE>ADD</CODE>.
- \param oracle The FP_Oracle to be queried.
- \param lf_store The linear form abstract store.
- \param result The modified linear form.
+ \tparam Target
+ A type template parameter specifying the instantiation of
+ Concrete_Expression to be used.
+
+ \tparam FP_Interval_Type
+ A type template parameter for the intervals used in the abstract domain.
+ The interval bounds should have a floating point type.
- \return <CODE>true</CODE> if the linearization succeeded,
+ \return
+ <CODE>true</CODE> if the linearization succeeded,
<CODE>false</CODE> otherwise.
+ \param bop_expr
+ The binary operator concrete expression to linearize.
+ Its binary operator type must be <CODE>ADD</CODE>.
+
+ \param oracle
+ The FP_Oracle to be queried.
+
+ \param lf_store
+ The linear form abstract store.
+
+ \param result
+ The modified linear form.
+
\par Linearization of sum floating-point expressions
Let \f$i + \sum_{v \in \cV}i_{v}v \f$ and
@@ -132,30 +140,38 @@ add_linearize(const Binary_Operator<Target>& bop_expr,
return !result.overflows();
}
-/*! \brief
+/*! \brief \relates Parma_Polyhedra_Library::Concrete_Expression
Helper function used by <CODE>linearize</CODE> to linearize a
difference of floating point expressions.
- \par Template type parameters
-
- - The class template parameter \p Target specifies the implementation
- of Concrete_Expression to be used.
- - 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.
-
Makes \p result become the linearization of \p *this in the given
composite abstract store.
- \param bop_expr The binary operator concrete expression to linearize.
- Its binary operator type must be <CODE>SUB</CODE>.
- \param oracle The FP_Oracle to be queried.
- \param lf_store The linear form abstract store.
- \param result The modified linear form.
+ \tparam Target
+ A type template parameter specifying the instantiation of
+ Concrete_Expression to be used.
- \return <CODE>true</CODE> if the linearization succeeded,
+ \tparam FP_Interval_Type
+ A type template parameter for the intervals used in the abstract domain.
+ The interval bounds should have a floating point type.
+
+ \return
+ <CODE>true</CODE> if the linearization succeeded,
<CODE>false</CODE> otherwise.
+ \param bop_expr
+ The binary operator concrete expression to linearize.
+ Its binary operator type must be <CODE>SUB</CODE>.
+
+ \param oracle
+ The FP_Oracle to be queried.
+
+ \param lf_store
+ The linear form abstract store.
+
+ \param result
+ The modified linear form.
+
\par Linearization of difference floating-point expressions
Let \f$i + \sum_{v \in \cV}i_{v}v \f$ and
@@ -238,30 +254,38 @@ sub_linearize(const Binary_Operator<Target>& bop_expr,
return !result.overflows();
}
-/*! \brief
+/*! \brief \relates Parma_Polyhedra_Library::Concrete_Expression
Helper function used by <CODE>linearize</CODE> to linearize a
product of floating point expressions.
- \par Template type parameters
-
- - The class template parameter \p Target specifies the implementation
- of Concrete_Expression to be used.
- - 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.
-
Makes \p result become the linearization of \p *this in the given
composite abstract store.
- \param bop_expr The binary operator concrete expression to linearize.
- Its binary operator type must be <CODE>MUL</CODE>.
- \param oracle The FP_Oracle to be queried.
- \param lf_store The linear form abstract store.
- \param result The modified linear form.
+ \tparam Target
+ A type template parameter specifying the instantiation of
+ Concrete_Expression to be used.
+
+ \tparam FP_Interval_Type
+ A type template parameter for the intervals used in the abstract domain.
+ The interval bounds should have a floating point type.
- \return <CODE>true</CODE> if the linearization succeeded,
+ \return
+ <CODE>true</CODE> if the linearization succeeded,
<CODE>false</CODE> otherwise.
+ \param bop_expr
+ The binary operator concrete expression to linearize.
+ Its binary operator type must be <CODE>MUL</CODE>.
+
+ \param oracle
+ The FP_Oracle to be queried.
+
+ \param lf_store
+ The linear form abstract store.
+
+ \param result
+ The modified linear form.
+
\par Linearization of multiplication floating-point expressions
Let \f$i + \sum_{v \in \cV}i_{v}v \f$ and
@@ -428,30 +452,38 @@ mul_linearize(const Binary_Operator<Target>& bop_expr,
return !result.overflows();
}
-/*! \brief
+/*! \brief \relates Parma_Polyhedra_Library::Concrete_Expression
Helper function used by <CODE>linearize</CODE> to linearize a
division of floating point expressions.
- \par Template type parameters
-
- - The class template parameter \p Target specifies the implementation
- of Concrete_Expression to be used.
- - 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.
-
Makes \p result become the linearization of \p *this in the given
composite abstract store.
- \param bop_expr The binary operator concrete expression to linearize.
- Its binary operator type must be <CODE>DIV</CODE>.
- \param oracle The FP_Oracle to be queried.
- \param lf_store The linear form abstract store.
- \param result The modified linear form.
+ \tparam Target
+ A type template parameter specifying the instantiation of
+ Concrete_Expression to be used.
- \return <CODE>true</CODE> if the linearization succeeded,
+ \tparam FP_Interval_Type
+ A type template parameter for the intervals used in the abstract domain.
+ The interval bounds should have a floating point type.
+
+ \return
+ <CODE>true</CODE> if the linearization succeeded,
<CODE>false</CODE> otherwise.
+ \param bop_expr
+ The binary operator concrete expression to linearize.
+ Its binary operator type must be <CODE>DIV</CODE>.
+
+ \param oracle
+ The FP_Oracle to be queried.
+
+ \param lf_store
+ The linear form abstract store.
+
+ \param result
+ The modified linear form.
+
\par Linearization of division floating-point expressions
Let \f$i + \sum_{v \in \cV}i_{v}v \f$ and
@@ -561,28 +593,36 @@ div_linearize(const Binary_Operator<Target>& bop_expr,
return !result.overflows();
}
-/*! \brief
+/*! \brief \relates Parma_Polyhedra_Library::Concrete_Expression
Helper function used by <CODE>linearize</CODE> to linearize a cast
floating point expression.
- \par Template type parameters
-
- - The class template parameter \p Target specifies the implementation
- of Concrete_Expression to be used.
- - 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.
-
Makes \p result become the linearization of \p *this in the given
composite abstract store.
- \param cast_expr The cast operator concrete expression to linearize.
- \param oracle The FP_Oracle to be queried.
- \param lf_store The linear form abstract store.
- \param result The modified linear form.
+ \tparam Target
+ A type template parameter specifying the instantiation of
+ Concrete_Expression to be used.
- \return <CODE>true</CODE> if the linearization succeeded,
+ \tparam FP_Interval_Type
+ A type template parameter for the intervals used in the abstract domain.
+ The interval bounds should have a floating point type.
+
+ \return
+ <CODE>true</CODE> if the linearization succeeded,
<CODE>false</CODE> otherwise.
+
+ \param cast_expr
+ The cast operator concrete expression to linearize.
+
+ \param oracle
+ The FP_Oracle to be queried.
+
+ \param lf_store
+ The linear form abstract store.
+
+ \param result
+ The modified linear form.
*/
template <typename Target, typename FP_Interval_Type>
static bool
@@ -644,7 +684,7 @@ cast_linearize(const Cast_Operator<Target>& cast_expr,
}
//! Linearizes a floating point expression.
-/*! \relates Concrete_Expression
+/*! \relates Parma_Polyhedra_Library::Concrete_Expression
Makes \p result become a linear form that correctly approximates the
value of \p expr in the given composite abstract store.
More information about the PPL-devel
mailing list