66 forceinline
unsigned long long int
68 return l.load(std::memory_order_acquire);
73 l.store(l0, std::memory_order_release);
93 forceinline
unsigned long long int
95 return l.load(std::memory_order_acquire);
100 l.store(l0, std::memory_order_release);
115 t0(s.
t0.load(std::memory_order_acquire)),
116 l(s.
l.load(std::memory_order_acquire)) {}
119 const clock_rep t00 = s.
t0.load(std::memory_order_acquire);
120 const double l0 = s.
l.load(std::memory_order_acquire);
122 t0.store(t00, std::memory_order_release);
123 l.store(l0, std::memory_order_release);
129 return l.load(std::memory_order_acquire);
134 l.store(l0, std::memory_order_release);
139 t0.store(clock::now().time_since_epoch().
count(),
140 std::memory_order_release);
159 forceinline
unsigned long long int
161 return l.load(std::memory_order_acquire);
166 l.store(l0, std::memory_order_release);
Stop-object based on number of failures
std::atomic< unsigned long long int > l
Failure limit.
FailStop & operator=(const FailStop &s)
Assignment operator.
FailStop(unsigned long long int l)
Stop if failure limit l is exceeded.
unsigned long long int limit(void) const
Return current limit.
Stop-object based on number of nodes
NodeStop(unsigned long long int l)
Stop if node limit l is exceeded.
unsigned long long int limit(void) const
Return current limit.
std::atomic< unsigned long long int > l
Node limit.
NodeStop & operator=(const NodeStop &s)
Assignment operator.
Stop-object based on number of restarts
RestartStop & operator=(const RestartStop &s)
Assignment operator.
std::atomic< unsigned long long int > l
Restart limit.
RestartStop(unsigned long long int l)
Stop if restart limit l is exceeded.
unsigned long long int limit(void) const
Return current limit.
Stop(void)
Default constructor.
virtual ~Stop(void)
Destructor.
Stop-object based on time
clock::time_point::rep clock_rep
std::chrono::steady_clock clock
TimeStop(double l)
Stop if search exceeds l milliseconds (from creation of this object).
double limit(void) const
Return current limit in milliseconds.
std::atomic< double > l
Current limit in milliseconds.
std::atomic< clock_rep > t0
Clock representation at the start of timing.
TimeStop & operator=(const TimeStop &s)
Assignment operator.
void reset(void)
Reset time to zero.
Gecode toplevel namespace
void count(Home home, const IntVarArgs &x, int n, IntRelType irt, int m, IntPropLevel ipl=IPL_DEF)
Post propagator for .