85 class AdvisorCopyPropagator;
125 if (as.
advisor().owner() !=
this)
144 return sizeof(*this);
182 unsigned int, std::ostream&)
const {}
187 return sizeof(*this);
235 return sizeof(*this);
244 for (
int i=0; i<registered; i++)
249 }
else if (registered == 0) {
288 rel(*
this,
x[0] !=
x[1]);
312 return sizeof(*this);
351 return (
p !=
nullptr) &&
p->advisors_point_to_self();
359 rel(*
this,
x[0] !=
x[1]);
399 bool ok = ch !=
nullptr;
422 bool ok = ch !=
nullptr;
449 bool ok = (c !=
nullptr) && (c->h.value() == 42);
477 bool ok = (c !=
nullptr);
509 bool ok = (sol !=
nullptr);
520 bool ok = (sol !=
nullptr);
551 int* x =
heap.alloc<
int>(1);
566 int* x =
heap.alloc<
int>(1);
570 int* y =
heap.realloc<
int>(x,1,2);
590 bool saw_failure =
false;
591 for (
unsigned long long budget = 0; budget < 32; budget++) {
615 bool saw_failure =
false;
616 for (
unsigned long long budget = 0; budget < 32; budget++) {
632 bool ok = (sol !=
nullptr);
634 return saw_failure && (checks > 0) && ok;
642 bool ok = (sol !=
nullptr);
656 int ranges[3][2] = {{0, 0}, {2, 2}, {4, 4}};
657 bool saw_failure =
false;
658 for (
unsigned long long budget = 0; budget < 8; budget++) {
659 IntSet::fault_reset_allocations();
663 unsigned long long checks;
669 return saw_failure && (checks > 0) &&
670 (IntSet::fault_live_allocations() == 0);
674 if (IntSet::fault_live_allocations() != 0)
686 bool saw_failure =
false;
687 for (
unsigned long long budget = 0; budget < 32; budget++) {
688 LinIntExpr::fault_reset_allocations();
700 return saw_failure && (checks > 0) &&
701 (LinIntExpr::fault_live_allocations() == 0);
705 if (LinIntExpr::fault_live_allocations() != 0)
717 bool saw_failure =
false;
718 for (
unsigned long long budget = 0; budget < 8; budget++) {
719 LinIntExpr::fault_reset_allocations();
757 return saw_failure && (checks > 0) &&
758 (LinIntExpr::fault_live_allocations() == 0);
762 if (LinIntExpr::fault_live_allocations() != 0)
773 for (
int kind = 0; kind < 4; kind++)
779#ifdef GECODE_HAS_FLOAT_VARS
782 bool saw_failure =
false;
783 for (
unsigned long long budget = 0; budget < 32; budget++) {
795 return saw_failure && (checks > 0);
808#ifdef GECODE_HAS_SET_VARS
811 bool saw_failure =
false;
812 for (
unsigned long long budget = 0; budget < 32; budget++) {
824 return saw_failure && (checks > 0);
874 int ranges[2][2] = {{0, 0}, {2, 2}};
875 IntSet::fault_reset_allocations();
884 return IntSet::fault_live_allocations() == 0;
893 LinIntExpr::fault_reset_allocations();
905 return LinIntExpr::fault_live_allocations() == 0;
967 :
Base(
"Fault::MiniModel::DefaultNodes") {}
976 :
Base(
"Fault::MiniModel::BoolMisc") {}
985 :
Base(
"Fault::IntSet::Allocation") {}
994 :
Base(
"Fault::Dispose::NoticeArray") {}
1003 :
Base(
"Fault::Dispose::NoticeArrayResize") {}
1012 :
Base(
"Fault::Clone::DisposalArray") {}
1021 :
Base(
"Fault::Clone::DerivedSpaceUpdate") {}
1030 :
Base(
"Fault::Heap::Allocation") {}
1039 :
Base(
"Fault::Heap::Reallocation") {}
1048 :
Base(
"Fault::Clone::HeapFailures") {}
1057 :
Base(
"Fault::Branch::ActionHeapFailures") {}
1066 :
Base(
"Fault::Branch::ChbHeapFailures") {}
1075 :
Base(
"Fault::IntSet::HeapFailures") {}
1084 :
Base(
"Fault::MiniModel::HeapFailures") {}
1093 :
Base(
"Fault::MiniModel::LinearSumHeapFailures") {}
1102 :
Base(
"Fault::MiniModel::BoolMiscHeapFailure") {}
1108#ifdef GECODE_HAS_FLOAT_VARS
1112 :
Base(
"Fault::MiniModel::FloatHeapFailures") {}
1119#ifdef GECODE_HAS_SET_VARS
1123 :
Base(
"Fault::MiniModel::SetHeapFailures") {}
1133 :
Base(
"Fault::Clone::PropagatorCopy") {}
1143 :
Base(
"Fault::Clone::BrancherCopy") {}
1153 :
Base(
"Fault::Clone::AdvisorCopy") {}
1162 :
Base(
"Fault::Clone::DerivedSpaceCopy") {}
1171 :
Base(
"Fault::Clone::LocalObjectCopy") {}
1192#ifdef GECODE_HAS_FLOAT_VARS
1195#ifdef GECODE_HAS_SET_VARS
Base-class for both propagators and branchers.
virtual size_t dispose(Space &home)
Delete actor and return its size.
Propagator & propagator(void) const
Return the advisor's propagator.
Advisor(Space &home, Propagator &p, Council< A > &c)
Constructor for creation.
void dispose(Space &home, Council< A > &c)
Dispose the advisor.
Class to iterate over advisors of a council.
A & advisor(void) const
Return advisor.
Miscealloneous Boolean expressions.
Passing Boolean variables.
Boolean integer variables.
Base-class for branchers.
Brancher(Home home)
Constructor for creation.
Choice for performing commit
Choice(const Brancher &b, const unsigned int a)
Initialize for particular brancher b and alternatives a.
virtual void archive(Archive &e) const
Archive into e.
Depth-first search engine.
Home class for posting propagators
void notice(Actor &a, ActorProperty p, bool duplicate=false)
Notice actor property.
Passing integer arguments.
Class for specifying integer propagation levels used by minimodel.
static const IntSet empty
Empty set.
Passing integer variables.
Linear expressions over integer variables.
LocalHandle(void)
Create local handle pointing to nullptr object.
void update(Space &home, LocalHandle &lh)
Updating during cloning.
LocalObject * object(void) const
Access to the local object.
LocalObject(Home home)
Constructor for creation.
Exception: Memory exhausted
static PropCost unary(PropCost::Mod m)
Single variable for modifier pcm.
Base-class for propagators.
Propagator(Home home)
Constructor for posting.
virtual T * next(void)
Return next solution (nullptr, if none exists or search has been stopped).
A lock as a scoped frontend for a mutex.
A mutex for mutual exclausion among several threads.
Base(std::string s)
Create and register test with name s.
bool advisors_point_to_self(void) const
virtual void reschedule(Space &)
Schedule function.
static AdvisorCopyPropagator * post(Home home)
virtual size_t dispose(Space &home)
Delete actor and return its size.
AdvisorCopyPropagator(Space &home, AdvisorCopyPropagator &p)
virtual PropCost cost(const Space &, const ModEventDelta &) const
Cost function.
virtual Actor * copy(Space &home)
Create copy.
AdvisorCopyPropagator(Home home)
Council< ThrowingAdvisor > c
virtual ExecStatus propagate(Space &, const ModEventDelta &)
Propagation function.
AdvisorCopyPropagator * p
AdvisorCopySpace(AdvisorCopySpace &s)
virtual Space * copy(void)
Copying member function.
bool advisors_point_to_source(void) const
virtual bool run(void)
Run test.
BranchActionHeapFailures(void)
virtual bool run(void)
Run test.
BranchChbHeapFailures(void)
void post_chb_branch(void)
BranchPostSpace(BranchPostSpace &s)
virtual Space * copy(void)
Copying member function.
void post_plain_branch(void)
void post_action_branch(void)
virtual bool run(void)
Run test.
virtual bool run(void)
Run test.
CloneCopySpace(CloneCopySpace &s)
virtual Space * copy(void)
Copying member function.
CloneDerivedSpaceCopy(void)
virtual bool run(void)
Run test.
virtual bool run(void)
Run test.
CloneDerivedSpaceUpdate(void)
virtual bool run(void)
Run test.
virtual bool run(void)
Run test.
CloneLocalObjectCopy(void)
virtual bool run(void)
Run test.
ClonePropagatorCopy(void)
virtual bool run(void)
Run test.
virtual Space * copy(void)
Copying member function.
DerivedCopySpace(DerivedCopySpace &s)
virtual Space * copy(void)
Copying member function.
DerivedUpdateSpace(DerivedUpdateSpace &s)
virtual bool run(void)
Run test.
DisposeNoticeArrayResize(void)
virtual bool run(void)
Run test.
virtual Space * copy(void)
Copying member function.
DisposeSpace(DisposeSpace &s)
virtual void post(Home, BoolVar, bool, const IntPropLevels &)
virtual ~FaultBoolMisc(void)
FaultLocalHandle(FaultLocalObject *o)
void update(Space &home, FaultLocalHandle &h)
FaultLocalObject(Home home, int v)
virtual size_t dispose(Space &)
Delete actor and return its size.
FaultLocalObject(Space &home, FaultLocalObject &o)
virtual Actor * copy(Space &home)
Create copy.
virtual bool run(void)
Run test.
virtual bool run(void)
Run test.
virtual bool run(void)
Run test.
virtual bool run(void)
Run test.
virtual Space * copy(void)
Copying member function.
LocalCopySpace(LocalCopySpace &s)
virtual bool run(void)
Run test.
MiniModelBoolMiscHeapFailure(void)
virtual bool run(void)
Run test.
MiniModelDefaultNodes(void)
virtual bool run(void)
Run test.
MiniModelFloatHeapFailures(void)
virtual bool run(void)
Run test.
MiniModelHeapFailures(void)
virtual bool run(void)
Run test.
virtual bool run(void)
Run test.
MiniModelLinearSumHeapFailures(void)
MiniModelSetHeapFailures(void)
virtual bool run(void)
Run test.
MiniModelSpace(MiniModelSpace &s)
virtual Space * copy(void)
Copying member function.
static void post(Home home)
virtual Actor * copy(Space &home)
Create copy.
NoticeDisposeActor(Home home)
virtual size_t dispose(Space &home)
Delete actor and return its size.
NoticeDisposeSpace(int registered=0, bool fail_next=false)
virtual Space * copy(void)
Copying member function.
NoticeDisposeSpace(NoticeDisposeSpace &s)
void dispose(Space &home, Council< ThrowingAdvisor > &c)
ThrowingAdvisor(Space &home, ThrowingAdvisor &a)
Propagator * owner(void) const
ThrowingAdvisor(Space &home, Propagator &p, Council< ThrowingAdvisor > &c, int id0)
virtual bool status(const Space &) const
Check status of brancher, return true if alternatives left.
virtual ExecStatus commit(Space &, const Choice &, unsigned int)
Commit for choice c and alternative a.
virtual const Choice * choice(Space &)
Return choice.
virtual void print(const Space &, const Choice &, unsigned int, std::ostream &) const
Print branch for choice c and alternative a.
virtual Actor * copy(Space &home)
Create copy.
static void post(Home home)
ThrowingBrancher(Home home)
ThrowingBrancher(Space &home, ThrowingBrancher &b)
virtual const Choice * choice(const Space &, Archive &)
Return choice from e.
virtual size_t dispose(Space &)
Delete actor and return its size.
ThrowingChoice(const Brancher &b)
virtual void archive(Archive &e) const
Archive into e.
virtual PropCost cost(const Space &, const ModEventDelta &) const
Cost function.
static void post(Home home)
ThrowingPropagator(Space &home, ThrowingPropagator &p)
virtual size_t dispose(Space &home)
Delete actor and return its size.
virtual Actor * copy(Space &home)
Create copy.
ThrowingPropagator(Home home)
virtual ExecStatus propagate(Space &home, const ModEventDelta &)
Propagation function.
virtual void reschedule(Space &)
Schedule function.
Heap heap
The single global heap.
ExecStatus ES_SUBSUMED(Propagator &p)
Propagator p is subsumed
void ignore(Actor &a, ActorProperty p, bool duplicate=false)
Ignore actor property.
int ModEventDelta
Modification event deltas.
@ AP_DISPOSE
Actor must always be disposed.
void branch(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
Branch over x with variable selection vars and value selection vals.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVar x1)
Post propagator for .
Space(void)
Default constructor.
Space * clone(void) const
Clone space.
const Choice * choice(void)
Create new choice for current brancher.
SpaceStatus status(StatusStatistics &stat)
Query space status.
void commit(const Choice &c, unsigned int a)
Commit choice c for alternative a.
@ SS_FAILED
Space is failed
Phase
Named phase for deterministic test failure injection.
void reset(void)
Reset all failpoint state.
void check(Phase p)
Check failpoint for phase p.
unsigned long long count(void)
Number of checks observed for the configured phase.
void fail_after(Phase p, unsigned long long n)
Fail after n successful checks for phase p.
Gecode toplevel namespace
IntVarBranch INT_VAR_ACTION_SIZE_MAX(double d=1.0, BranchTbl tbl=nullptr)
Select variable with largest action divided by domain size with decay factor d.
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
IntValBranch INT_VAL_MIN(void)
Select smallest value.
SetExpr setunion(const SetVarArgs &)
Union of set variables.
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
IntVarBranch INT_VAR_CHB_SIZE_MAX(IntCHB c, BranchTbl tbl=nullptr)
Select variable with largest CHB Q-score divided by domain size.
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest domain size.
bool dispose_notice_resize_failure_does_not_dispose_unregistered_actor(void)
MiniModelBoolMisc minimodel_bool_misc
bool minimodel_failure_releases_default_nodes(void)
bool clone_after_failed_disposal_array(void)
bool linear_sum_constructor_heap_failures_release_nodes(int kind)
bool clone_heap_failures_recover_source(void)
bool dispose_notice_initial_failure_does_not_dispose_actor(void)
bool int_set_failure_releases_object(void)
HeapReallocation heap_reallocation
MiniModelSetHeapFailures minimodel_set_heap_failures
bool clone_after_failed_derived_update(void)
DisposeNoticeArray dispose_notice_array
HeapAllocation heap_allocation
MiniModelDefaultNodes minimodel_default_nodes
bool clone_after_failed_copy(Phase p, unsigned long long n)
CloneHeapFailures clone_heap_failures
ClonePropagatorCopy clone_propagator_copy
CloneDisposalArray clone_disposal_array
bool minimodel_heap_failure_releases_bool_misc(void)
bool minimodel_float_heap_failures_are_recoverable(void)
CloneLocalObjectCopy clone_local_object_copy
bool heap_reallocation_failpoint_throws(void)
IntSetAllocation int_set_allocation
bool clone_after_failed_local_object_copy(void)
MiniModelFloatHeapFailures minimodel_float_heap_failures
BranchActionHeapFailures branch_action_heap_failures
bool expect_memory_exhausted(Phase p, unsigned long long n)
MiniModelLinearSumHeapFailures minimodel_linear_sum_heap_failures
bool branch_post_heap_failures_are_recoverable(bool chb)
Support::Mutex fault_mutex
bool clone_after_failed_advisor_copy(void)
CloneDerivedSpaceUpdate clone_derived_space_update
bool minimodel_set_heap_failures_are_recoverable(void)
IntSetHeapFailures int_set_heap_failures
bool derived_update_space_is_usable(DerivedUpdateSpace &s)
bool minimodel_linear_sum_heap_failures_release_nodes(void)
bool int_set_heap_failures_release_object(void)
CloneDerivedSpaceCopy clone_derived_space_copy
CloneBrancherCopy clone_brancher_copy
BranchChbHeapFailures branch_chb_heap_failures
CloneAdvisorCopy clone_advisor_copy
bool minimodel_failure_releases_bool_misc(void)
MiniModelBoolMiscHeapFailure minimodel_bool_misc_heap_failure
MiniModelHeapFailures minimodel_heap_failures
DisposeNoticeArrayResize dispose_notice_array_resize
bool heap_allocation_failpoint_throws(void)
bool minimodel_heap_failures_release_nodes(void)