[PPL-devel] [GIT] ppl/ppl(bounded_arithmetic): Added the declaration and a stub implementation of new method
Roberto Bagnara
bagnara at cs.unipr.it
Tue Apr 21 11:36:44 CEST 2009
Module: ppl/ppl
Branch: bounded_arithmetic
Commit: 3879ecb87976c3fec4e498b45f75d2424ee98c2e
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=3879ecb87976c3fec4e498b45f75d2424ee98c2e
Author: Roberto Bagnara <bagnara at cs.unipr.it>
Date: Tue Apr 21 11:34:24 2009 +0200
Added the declaration and a stub implementation of new method
Polyhedron::wrap_assign().
---
src/Polyhedron.defs.hh | 40 ++++++++++++++++++++++++++++++++++++++++
src/Polyhedron_public.cc | 10 ++++++++++
2 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/src/Polyhedron.defs.hh b/src/Polyhedron.defs.hh
index 6e4ba7f..0c8f1e9 100644
--- a/src/Polyhedron.defs.hh
+++ b/src/Polyhedron.defs.hh
@@ -1423,6 +1423,46 @@ public:
*/
void time_elapse_assign(const Polyhedron& y);
+ /*! \brief
+ \ref Wrapping_Operator "Wraps" the specified dimensions of the
+ vector space.
+
+ \param vars
+ The set of Variable objects corresponding to the space dimensions
+ to be wrapped.
+
+ \param w
+ The width of the bounded integer type corresponding to
+ all the dimensions to be wrapped.
+
+ \param s
+ The signedness of the bounded integer type corresponding to
+ all the dimensions to be wrapped.
+
+ \param w
+ The overflow behavior of the bounded integer type corresponding to
+ all the dimensions to be wrapped.
+
+ \param wrap_individually
+ <CODE>true</CODE> if the dimensions should be wrapped individually
+ (something that results in greater efficiency to the detriment of
+ precision).
+
+ \param k_threshold
+ A precision parameter of the \ref Wrap_Operator "wrapping operator":
+ higher values result in possibly improved precision.
+
+ \exception std::invalid_argument
+ Thrown if \p *this is dimension-incompatible with one of the
+ Variable objects contained in \p vars.
+ */
+ void wrap_assign(const Variables_Set& vars,
+ Bounded_Integer_Type_Width w,
+ Bounded_Integer_Type_Signedness s,
+ Bounded_Integer_Type_Overflow o,
+ bool wrap_individually = true,
+ unsigned k_threshold = 16);
+
//! Assigns to \p *this its topological closure.
void topological_closure_assign();
diff --git a/src/Polyhedron_public.cc b/src/Polyhedron_public.cc
index 5f95530..ea0b69e 100644
--- a/src/Polyhedron_public.cc
+++ b/src/Polyhedron_public.cc
@@ -3460,6 +3460,16 @@ PPL::Polyhedron::time_elapse_assign(const Polyhedron& y) {
}
void
+PPL::Polyhedron::wrap_assign(const Variables_Set& vars,
+ Bounded_Integer_Type_Width w,
+ Bounded_Integer_Type_Signedness s,
+ Bounded_Integer_Type_Overflow o,
+ bool wrap_individually,
+ unsigned k_threshold) {
+ // FIXME: to be written.
+}
+
+void
PPL::Polyhedron::topological_closure_assign() {
// Necessarily closed polyhedra are trivially closed.
if (is_necessarily_closed())
More information about the PPL-devel
mailing list