#include <finite_domain.hpp>
|
| FiniteDomain (int domsize=0) |
| construct as domain 0..(domain size - 1)
|
|
| FiniteDomain (std::pair< int, int > bounds) |
| construct as contiguous domain lb..ub
|
|
| FiniteDomain (int lb, int ub) |
| construct as contiguous domain lb..ub
|
|
bool | empty () const |
| empty domain return emtpy?
|
|
int | size () const |
| size of the domain
|
|
int | lb () const |
| lower bound
|
|
int | ub () const |
| upper bound
|
|
void | inc (int &v) const |
| increment domain value
|
|
int | undet () const |
| undetermined
|
|
bool | in (int v) const |
| test domain membership
|
|
Specification of a finite domain
- Note
- Even if currently only contiguous domains are supported, users shouldn't assume this, but use the provided methods to manipulate domain values.
◆ FiniteDomain() [1/3]
ired::FiniteDomain::FiniteDomain |
( |
int |
domsize = 0 | ) |
|
|
inlineexplicit |
construct as domain 0..(domain size - 1)
- Parameters
-
domsize | size of the domain |
◆ FiniteDomain() [2/3]
ired::FiniteDomain::FiniteDomain |
( |
std::pair< int, int > |
bounds | ) |
|
|
inlineexplicit |
construct as contiguous domain lb..ub
- Parameters
-
bounds | lower and upper bound |
- Note
- both, lower and upper bound, are included in the domain
◆ FiniteDomain() [3/3]
ired::FiniteDomain::FiniteDomain |
( |
int |
lb, |
|
|
int |
ub |
|
) |
| |
|
inline |
construct as contiguous domain lb..ub
- Parameters
-
lb | lower bound |
ub | upper bound |
- Note
- both, lower and upper bound, are included in the domain
◆ empty()
bool ired::FiniteDomain::empty |
( |
| ) |
const |
|
inline |
empty domain return emtpy?
- Note
- domains are empty whenever ub < lb
◆ in()
bool ired::FiniteDomain::in |
( |
int |
v | ) |
const |
|
inline |
test domain membership
- Parameters
-
- Returns
- whether v is in the domain
◆ inc()
void ired::FiniteDomain::inc |
( |
int & |
v | ) |
const |
|
inline |
increment domain value
- Parameters
-
Sets v to the next larger domain value after v or the lowest domain value if v was undetermined.
- Note
- undefined behavior if v neither in the domain nor 'undet', which has to be lb_-1
-
if v was the last domain variable, then afterwards, in(v) is false and v exceeds the upper bound.
◆ lb()
int ired::FiniteDomain::lb |
( |
| ) |
const |
|
inline |
◆ size()
int ired::FiniteDomain::size |
( |
| ) |
const |
|
inline |
size of the domain
- Returns
- size
◆ ub()
int ired::FiniteDomain::ub |
( |
| ) |
const |
|
inline |
◆ undet()
int ired::FiniteDomain::undet |
( |
| ) |
const |
|
inline |
undetermined
- Returns
- domain-specific undetermined value
The documentation for this class was generated from the following file: