#include <Interval_Restriction.defs.hh>


Public Member Functions | |
| Interval_Restriction_Integer () | |
| void | set_integer (bool v=true) |
| bool | get_integer () const |
| const_int_nodef (integer_bit, Base::next_bit) | |
| const_int_nodef (next_bit, integer_bit+1) | |
| bool | has_restriction () const |
| void | normalize () const |
| template<typename T > | |
| Result | restrict (Rounding_Dir rdir, T &x, Result dir) const |
Definition at line 146 of file Interval_Restriction.defs.hh.
| Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::Interval_Restriction_Integer | ( | ) | [inline] |
Definition at line 148 of file Interval_Restriction.defs.hh.
| Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::const_int_nodef | ( | next_bit | , | |
| integer_bit+ | 1 | |||
| ) |
| Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::const_int_nodef | ( | integer_bit | , | |
| Base::next_bit | ||||
| ) |
| bool Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::get_integer | ( | ) | const [inline] |
Definition at line 153 of file Interval_Restriction.defs.hh.
References Parma_Polyhedra_Library::Interval_NS::get_bit().
Referenced by Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::has_restriction(), and Parma_Polyhedra_Library::output_restriction().
00153 { 00154 return get_bit(Base::bitset, integer_bit); 00155 }
| bool Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::has_restriction | ( | ) | const [inline] |
Definition at line 159 of file Interval_Restriction.defs.hh.
References Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::get_integer().
Referenced by Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::restrict().
00159 { 00160 return get_integer(); 00161 }
| void Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::normalize | ( | ) | const [inline] |
Definition at line 162 of file Interval_Restriction.defs.hh.
| Result Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::restrict | ( | Rounding_Dir | rdir, | |
| T & | x, | |||
| Result | dir | |||
| ) | const [inline] |
Definition at line 165 of file Interval_Restriction.defs.hh.
References Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::has_restriction(), and Parma_Polyhedra_Library::is_integer().
00165 { 00166 if (!has_restriction()) 00167 return dir; 00168 switch (dir) { 00169 case V_GT: 00170 if (is_integer(x)) 00171 return add_assign_r(x, x, static_cast<T>(1), rdir); 00172 /* Fall through */ 00173 case V_GE: 00174 return ceil_assign_r(x, x, rdir); 00175 case V_LT: 00176 if (is_integer(x)) 00177 return sub_assign_r(x, x, static_cast<T>(1), rdir); 00178 /* Fall through */ 00179 case V_LE: 00180 return floor_assign_r(x, x, rdir); 00181 default: 00182 PPL_ASSERT(false); 00183 return dir; 00184 } 00185 }
| void Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::set_integer | ( | bool | v = true |
) | [inline] |
Definition at line 150 of file Interval_Restriction.defs.hh.
References Parma_Polyhedra_Library::Interval_NS::set_bit().
Referenced by Parma_Polyhedra_Library::add_restriction(), Parma_Polyhedra_Library::assign_restriction(), Parma_Polyhedra_Library::diff_restriction(), Parma_Polyhedra_Library::div_restriction(), Parma_Polyhedra_Library::intersect_restriction(), Parma_Polyhedra_Library::join_restriction(), Parma_Polyhedra_Library::mul_restriction(), Parma_Polyhedra_Library::neg_restriction(), and Parma_Polyhedra_Library::sub_restriction().
00150 { 00151 return set_bit(Base::bitset, integer_bit, v); 00152 }
1.6.3