[GIT] ppl/ppl(bounded_arithmetic): Added the declaration and a stub implementation of new method

Module: ppl/ppl Branch: bounded_arithmetic Commit: 3879ecb87976c3fec4e498b45f75d2424ee98c2e URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=3879ecb87976c...
Author: Roberto Bagnara bagnara@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())
participants (1)
-
Roberto Bagnara