|
| virtual | ~interval_templatet ()=default |
| | interval_templatet ()=default |
| | interval_templatet (const type2tc &) |
| | interval_templatet (const T &x) |
| | interval_templatet (const T &l, const T &u) |
| T | get_lower () const |
| T | get_upper () const |
| T | adjust (const T &v) const |
| virtual void | set (bool is_upper, const T &b) |
| virtual T | get (bool is_upper) const |
| void | set_upper (const T &b) |
| void | set_lower (const T &b) |
| void | dump () const |
| virtual bool | is_le_than (const T &a, const T &b) const |
| virtual bool | empty () const |
| | Checks whether there are values that satisfy the the interval.
|
| bool | is_bottom () const |
| virtual bool | is_top () const |
| bool | singleton () const |
| | There is only one value that satisfies.
|
| virtual void | make_le_than (const T &v) |
| virtual bool | contains (const T &e) const |
| void | make_sound_le (interval_templatet< T > &v) |
| virtual void | make_ge_than (const T &v) |
| void | join (const interval_templatet< T > &i) |
| | Union or disjunction.
|
| void | meet (const interval_templatet< T > &i) |
| | Intersection or conjunction.
|
| void | intersect_with (const interval_templatet &i) |
| bool | is_subseteq (const interval_templatet &other) const |
| virtual void | approx_union_with (const interval_templatet &i) |
| interval_templatet< T > | interval_bitand (const interval_templatet< T > &, const interval_templatet< T > &) const |
| interval_templatet< T > | interval_bitor (const interval_templatet< T > &, const interval_templatet< T > &) const |
| interval_templatet< T > | interval_bitxor (const interval_templatet< T > &, const interval_templatet< T > &) const |
| interval_templatet< T > | interval_logical_right_shift (const interval_templatet< T > &, const interval_templatet< T > &) const |
| interval_templatet< T > | interval_left_shift (const interval_templatet< T > &, const interval_templatet< T > &) const |
| interval_templatet< T > | interval_arithmetic_right_shift (const interval_templatet< T > &, const interval_templatet< T > &) const |
| bool | has_changed (const interval_templatet< T > &i) |
| | This is just to check if a value has changed.
|
| void | make_lower_interval () |
| | Generates an interval of the form (-infinity, 0].
|
| signed_max_or signed_max_right_shift interval_templatet< BigInt > | interval_arithmetic_right_shift (const interval_templatet< BigInt > &lhs, const interval_templatet< BigInt > &rhs) const |
|
| static interval_templatet< T > | ternary_if (const interval_templatet< T > &cond, const interval_templatet< T > &true_value, const interval_templatet< T > &false_value) |
| static bool | is_representable (const type2tc &) |
| | Whether an interval can be built for a value of type t; when it cannot, expressions over such values evaluate to top.
|
| static interval_templatet< T > | cast (const interval_templatet< T > &, const type2tc &) |
| static interval_templatet< T > | logical_right_shift (const interval_templatet< T > &lhs, const interval_templatet< T > &rhs) |
| static interval_templatet< T > | left_shift (const interval_templatet< T > &lhs, const interval_templatet< T > &rhs) |
| static interval_templatet< T > | arithmetic_right_shift (const interval_templatet< T > &lhs, const interval_templatet< T > &rhs) |
| static interval_templatet< T > | bitnot (const interval_templatet< T > &w) |
| static interval_templatet< T > | equality (const interval_templatet< T > &lhs, const interval_templatet< T > &rhs) |
| static interval_templatet< T > | invert_bool (const interval_templatet< T > &i) |
| static interval_templatet< T > | not_equal (const interval_templatet< T > &lhs, const interval_templatet< T > &rhs) |
| static interval_templatet< T > | less_than (const interval_templatet< T > &lhs, const interval_templatet< T > &rhs) |
| static interval_templatet< T > | less_than_equal (const interval_templatet< T > &lhs, const interval_templatet< T > &rhs) |
| static interval_templatet< T > | greater_than_equal (const interval_templatet< T > &lhs, const interval_templatet< T > &rhs) |
| static interval_templatet< T > | greater_than (const interval_templatet< T > &lhs, const interval_templatet< T > &rhs) |
| static void | contract_interval_le (interval_templatet< T > &a, interval_templatet< T > &b) |
| | Computer the contraction of "a" and "b" under a <= b.
|
template<class
T>
class interval_templatet< T >
This class is used to store intervals in the form of lower <= upper.
It also has support for infinite. For this the variables _set are used.
- Template Parameters
-
| T | template type for the numeric value (e.g. int, float, bigint) |