Zero integer view.
More...
#include <view.hpp >
int min (void) const
Return minimum of domain.
int max (void) const
Return maximum of domain.
int med (void) const
Return median of domain (greatest element not greater than the median)
int val (void) const
Return assigned value (only if assigned)
unsigned int size (void) const
Return size (cardinality) of domain.
unsigned int width (void) const
Return width of domain (distance between maximum and minimum)
unsigned int regret_min (void) const
Return regret of domain minimum (distance to next larger value)
unsigned int regret_max (void) const
Return regret of domain maximum (distance to next smaller value)
bool range (void) const
Test whether domain is a range.
bool in (int n) const
Test whether n is contained in domain.
bool in (long long int n) const
Test whether n is contained in domain.
ModEvent lq (Space &home, int n)
Restrict domain values to be less or equal than n .
ModEvent lq (Space &home, long long int n)
Restrict domain values to be less or equal than n .
ModEvent le (Space &home, int n)
Restrict domain values to be less than n .
ModEvent le (Space &home, long long int n)
Restrict domain values to be less than n .
ModEvent gq (Space &home, int n)
Restrict domain values to be greater or equal than n .
ModEvent gq (Space &home, long long int n)
Restrict domain values to be greater or equal than n .
ModEvent gr (Space &home, int n)
Restrict domain values to be greater than n .
ModEvent gr (Space &home, long long int n)
Restrict domain values to be greater than n .
ModEvent nq (Space &home, int n)
Restrict domain values to be different from n .
ModEvent nq (Space &home, long long int n)
Restrict domain values to be different from n .
ModEvent eq (Space &home, int n)
Restrict domain values to be equal to n .
ModEvent eq (Space &home, long long int n)
Restrict domain values to be equal to n .
Views can be both updated by range and value iterators. Value iterators do not need to be strict in that the same value is allowed to occur more than once in the iterated sequence.
The argument depends must be true, if the iterator passed as argument depends on the view on which the operation is invoked. In this case, the view is only updated after the iterator has been consumed. Otherwise, the domain might be updated concurrently while following the iterator.
template<class I>
ModEvent narrow_r (Space &home, I &i, bool depends=true)
Replace domain by ranges described by i .
template<class I>
ModEvent inter_r (Space &home, I &i, bool depends=true)
Intersect domain with ranges described by i .
template<class I>
ModEvent minus_r (Space &home, I &i, bool depends=true)
Remove from domain the ranges described by i .
template<class I>
ModEvent narrow_v (Space &home, I &i, bool depends=true)
Replace domain by values described by i .
template<class I>
ModEvent inter_v (Space &home, I &i, bool depends=true)
Intersect domain with values described by i .
template<class I>
ModEvent minus_v (Space &home, I &i, bool depends=true)
Remove from domain the values described by i .
int min (const Delta &d) const
Return minimum value just pruned.
int max (const Delta &d) const
Return maximum value just pruned.
unsigned int width (const Delta &d) const
Return width of values just pruned.
bool any (const Delta &d) const
Test whether arbitrary values got pruned.
typedef IntView::VarImpType VarImpType
The variable implementation type corresponding to the constant view.
typedef IntView::VarType VarType
The variable type corresponding to the constant view.
unsigned int degree (void) const
Return degree (number of subscribed propagators and advisors)
double afc (void) const
Return accumulated failure count.
VarImpType * varimp (void) const
Return dummy variable implementation of view.
bool assigned (void) const
Test whether view is assigned.
void subscribe (Space &home, Propagator &p, PropCond pc, bool schedule =true)
Subscribe propagator p with propagation condition pc to view.
void cancel (Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
void reschedule (Space &home, Propagator &p, PropCond pc)
Re-schedule propagator p with propagation condition pc .
void update (Space &home, ConstView &y )
Update this view to be a clone of view y .
bool operator< (const ConstView &y ) const
Whether this view comes before view y (arbitray order)
static bool varderived (void)
Return whether this view is derived from a VarImpView .
static void schedule (Space &home, Propagator &p, ModEvent me )
Schedule propagator p with modification event me .
static ModEvent me (const ModEventDelta &med )
Return modification event for view type in med .
static ModEventDelta med (ModEvent me )
Translate modification event me to modification event delta for view.
static ModEvent modevent (const Delta &d)
Return modification event.
Zero integer view.
A zero integer view for provides operations such that behaves as a view assigned to .
Definition at line 1014 of file view.hpp .
◆ ZeroIntView()
Gecode::Int::ZeroIntView::ZeroIntView
(
void )
inline
Default constructor.
Definition at line 41 of file zero.hpp .
◆ min() [1/2]
int Gecode::Int::ZeroIntView::min
(
void )
const
inline
Return minimum of domain.
Definition at line 48 of file zero.hpp .
◆ max() [1/2]
int Gecode::Int::ZeroIntView::max
(
void )
const
inline
Return maximum of domain.
Definition at line 52 of file zero.hpp .
◆ med()
int Gecode::Int::ZeroIntView::med
(
void )
const
inline
Return median of domain (greatest element not greater than the median)
Definition at line 56 of file zero.hpp .
◆ val()
int Gecode::Int::ZeroIntView::val
(
void )
const
inline
Return assigned value (only if assigned)
Definition at line 60 of file zero.hpp .
◆ size()
unsigned int Gecode::Int::ZeroIntView::size
(
void )
const
inline
Return size (cardinality) of domain.
Definition at line 65 of file zero.hpp .
◆ width() [1/2]
unsigned int Gecode::Int::ZeroIntView::width
(
void )
const
inline
Return width of domain (distance between maximum and minimum)
Definition at line 69 of file zero.hpp .
◆ regret_min()
unsigned int Gecode::Int::ZeroIntView::regret_min
(
void )
const
inline
Return regret of domain minimum (distance to next larger value)
Definition at line 73 of file zero.hpp .
◆ regret_max()
unsigned int Gecode::Int::ZeroIntView::regret_max
(
void )
const
inline
Return regret of domain maximum (distance to next smaller value)
Definition at line 77 of file zero.hpp .
◆ range()
bool Gecode::Int::ZeroIntView::range
(
void )
const
inline
Test whether domain is a range.
Definition at line 87 of file zero.hpp .
◆ in() [1/2]
bool Gecode::Int::ZeroIntView::in
(
int n )
const
inline
Test whether n is contained in domain.
Definition at line 91 of file zero.hpp .
◆ in() [2/2]
bool Gecode::Int::ZeroIntView::in
(
long long int n )
const
inline
Test whether n is contained in domain.
Definition at line 95 of file zero.hpp .
◆ lq() [1/2]
Restrict domain values to be less or equal than n .
Definition at line 105 of file zero.hpp .
◆ lq() [2/2]
ModEvent Gecode::Int::ZeroIntView::lq
(
Space & home ,
long long int n )
inline
Restrict domain values to be less or equal than n .
Definition at line 109 of file zero.hpp .
◆ le() [1/2]
Restrict domain values to be less than n .
Definition at line 114 of file zero.hpp .
◆ le() [2/2]
ModEvent Gecode::Int::ZeroIntView::le
(
Space & home ,
long long int n )
inline
Restrict domain values to be less than n .
Definition at line 118 of file zero.hpp .
◆ gq() [1/2]
Restrict domain values to be greater or equal than n .
Definition at line 123 of file zero.hpp .
◆ gq() [2/2]
ModEvent Gecode::Int::ZeroIntView::gq
(
Space & home ,
long long int n )
inline
Restrict domain values to be greater or equal than n .
Definition at line 127 of file zero.hpp .
◆ gr() [1/2]
Restrict domain values to be greater than n .
Definition at line 132 of file zero.hpp .
◆ gr() [2/2]
ModEvent Gecode::Int::ZeroIntView::gr
(
Space & home ,
long long int n )
inline
Restrict domain values to be greater than n .
Definition at line 136 of file zero.hpp .
◆ nq() [1/2]
Restrict domain values to be different from n .
Definition at line 141 of file zero.hpp .
◆ nq() [2/2]
ModEvent Gecode::Int::ZeroIntView::nq
(
Space & home ,
long long int n )
inline
Restrict domain values to be different from n .
Definition at line 145 of file zero.hpp .
◆ eq() [1/2]
Restrict domain values to be equal to n .
Definition at line 150 of file zero.hpp .
◆ eq() [2/2]
ModEvent Gecode::Int::ZeroIntView::eq
(
Space & home ,
long long int n )
inline
Restrict domain values to be equal to n .
Definition at line 154 of file zero.hpp .
◆ narrow_r()
template<class I>
ModEvent Gecode::Int::ZeroIntView::narrow_r
(
Space & home ,
I & i ,
bool depends = true )
inline
Replace domain by ranges described by i .
Definition at line 166 of file zero.hpp .
◆ inter_r()
template<class I>
ModEvent Gecode::Int::ZeroIntView::inter_r
(
Space & home ,
I & i ,
bool depends = true )
inline
Intersect domain with ranges described by i .
Definition at line 171 of file zero.hpp .
◆ minus_r()
template<class I>
ModEvent Gecode::Int::ZeroIntView::minus_r
(
Space & home ,
I & i ,
bool depends = true )
inline
Remove from domain the ranges described by i .
Definition at line 178 of file zero.hpp .
◆ narrow_v()
template<class I>
ModEvent Gecode::Int::ZeroIntView::narrow_v
(
Space & home ,
I & i ,
bool depends = true )
inline
Replace domain by values described by i .
Definition at line 185 of file zero.hpp .
◆ inter_v()
template<class I>
ModEvent Gecode::Int::ZeroIntView::inter_v
(
Space & home ,
I & i ,
bool depends = true )
inline
Intersect domain with values described by i .
Definition at line 190 of file zero.hpp .
◆ minus_v()
template<class I>
ModEvent Gecode::Int::ZeroIntView::minus_v
(
Space & home ,
I & i ,
bool depends = true )
inline
Remove from domain the values described by i .
Definition at line 197 of file zero.hpp .
◆ min() [2/2]
int Gecode::Int::ZeroIntView::min
(
const Delta & d )
const
inline
Return minimum value just pruned.
Definition at line 208 of file zero.hpp .
◆ max() [2/2]
int Gecode::Int::ZeroIntView::max
(
const Delta & d )
const
inline
Return maximum value just pruned.
Definition at line 212 of file zero.hpp .
◆ width() [2/2]
unsigned int Gecode::Int::ZeroIntView::width
(
const Delta & d )
const
inline
Return width of values just pruned.
Definition at line 216 of file zero.hpp .
◆ any()
bool Gecode::Int::ZeroIntView::any
(
const Delta & d )
const
inline
Test whether arbitrary values got pruned.
Definition at line 220 of file zero.hpp .
◆ operator==()
Test whether views x and y are the same.
Definition at line 298 of file zero.hpp .
◆ operator!=()
Test whether views x and y are the same.
Definition at line 302 of file zero.hpp .
The documentation for this class was generated from the following files: