remove most of C API, still missing is local search
This commit is contained in:
@@ -1433,24 +1433,15 @@ class Solver {
|
||||
IntVar* const b);
|
||||
|
||||
// b == (v in set)
|
||||
Constraint* MakeIsMemberCt(IntVar* const v, const int64* const values,
|
||||
int size, IntVar* const b);
|
||||
Constraint* MakeIsMemberCt(IntVar* const v, const std::vector<int64>& values,
|
||||
IntVar* const b);
|
||||
Constraint* MakeIsMemberCt(IntVar* const v, const int* const values,
|
||||
int size, IntVar* const b);
|
||||
Constraint* MakeIsMemberCt(IntVar* const v, const std::vector<int>& values,
|
||||
IntVar* const b);
|
||||
IntVar* MakeIsMemberVar(IntVar* const v, const int64* const values, int size);
|
||||
IntVar* MakeIsMemberVar(IntVar* const v, const std::vector<int64>& values);
|
||||
IntVar* MakeIsMemberVar(IntVar* const v, const int* const values, int size);
|
||||
IntVar* MakeIsMemberVar(IntVar* const v, const std::vector<int>& values);
|
||||
// v in set. Propagation is lazy, i.e. this constraint does not
|
||||
// creates holes in the domain of the variable.
|
||||
Constraint* MakeMemberCt(IntVar* const v, const int64* const values,
|
||||
int size);
|
||||
Constraint* MakeMemberCt(IntVar* const v, const std::vector<int64>& values);
|
||||
Constraint* MakeMemberCt(IntVar* const v, const int* const values, int size);
|
||||
Constraint* MakeMemberCt(IntVar* const v, const std::vector<int>& values);
|
||||
|
||||
|
||||
|
||||
@@ -896,30 +896,18 @@ class MemberCt : public Constraint {
|
||||
};
|
||||
} // namespace
|
||||
|
||||
Constraint* Solver::MakeMemberCt(IntVar* const var,
|
||||
const int64* const values,
|
||||
int size) {
|
||||
ConstIntArray local_values(values, size);
|
||||
return RevAlloc(
|
||||
new MemberCt(this, var, local_values.SortedCopyWithoutDuplicates(true)));
|
||||
}
|
||||
|
||||
Constraint* Solver::MakeMemberCt(IntVar* const var,
|
||||
const std::vector<int64>& values) {
|
||||
return MakeMemberCt(var, values.data(), values.size());
|
||||
}
|
||||
|
||||
Constraint* Solver::MakeMemberCt(IntVar* const var,
|
||||
const int* const values,
|
||||
int size) {
|
||||
ConstIntArray local_values(values, size);
|
||||
ConstIntArray local_values(values);
|
||||
return RevAlloc(
|
||||
new MemberCt(this, var, local_values.SortedCopyWithoutDuplicates(true)));
|
||||
}
|
||||
|
||||
Constraint* Solver::MakeMemberCt(IntVar* const var,
|
||||
const std::vector<int>& values) {
|
||||
return MakeMemberCt(var, values.data(), values.size());
|
||||
ConstIntArray local_values(values);
|
||||
return RevAlloc(
|
||||
new MemberCt(this, var, local_values.SortedCopyWithoutDuplicates(true)));
|
||||
}
|
||||
|
||||
// ----- IsMemberCt -----
|
||||
@@ -1011,29 +999,10 @@ class IsMemberCt : public Constraint {
|
||||
};
|
||||
} // namespace
|
||||
|
||||
Constraint* Solver::MakeIsMemberCt(IntVar* const var,
|
||||
const int64* const values,
|
||||
int size,
|
||||
IntVar* const boolvar) {
|
||||
ConstIntArray local_values(values, size);
|
||||
return RevAlloc(
|
||||
new IsMemberCt(this,
|
||||
var,
|
||||
local_values.SortedCopyWithoutDuplicates(true),
|
||||
boolvar));
|
||||
}
|
||||
|
||||
Constraint* Solver::MakeIsMemberCt(IntVar* const var,
|
||||
const std::vector<int64>& values,
|
||||
IntVar* const boolvar) {
|
||||
return MakeIsMemberCt(var, values.data(), values.size(), boolvar);
|
||||
}
|
||||
|
||||
Constraint* Solver::MakeIsMemberCt(IntVar* const var,
|
||||
const int* const values,
|
||||
int size,
|
||||
IntVar* const boolvar) {
|
||||
ConstIntArray local_values(values, size);
|
||||
ConstIntArray local_values(values);
|
||||
return RevAlloc(
|
||||
new IsMemberCt(this,
|
||||
var,
|
||||
@@ -1044,31 +1013,25 @@ Constraint* Solver::MakeIsMemberCt(IntVar* const var,
|
||||
Constraint* Solver::MakeIsMemberCt(IntVar* const var,
|
||||
const std::vector<int>& values,
|
||||
IntVar* const boolvar) {
|
||||
return MakeIsMemberCt(var, values.data(), values.size(), boolvar);
|
||||
}
|
||||
|
||||
IntVar* Solver::MakeIsMemberVar(IntVar* const var,
|
||||
const int64* const values,
|
||||
int size) {
|
||||
IntVar* const b = MakeBoolVar();
|
||||
AddConstraint(MakeIsMemberCt(var, values, size, b));
|
||||
return b;
|
||||
ConstIntArray local_values(values);
|
||||
return RevAlloc(
|
||||
new IsMemberCt(this,
|
||||
var,
|
||||
local_values.SortedCopyWithoutDuplicates(true),
|
||||
boolvar));
|
||||
}
|
||||
|
||||
IntVar* Solver::MakeIsMemberVar(IntVar* const var,
|
||||
const std::vector<int64>& values) {
|
||||
return MakeIsMemberVar(var, values.data(), values.size());
|
||||
}
|
||||
|
||||
IntVar* Solver::MakeIsMemberVar(IntVar* const var,
|
||||
const int* const values,
|
||||
int size) {
|
||||
IntVar* const b = MakeBoolVar();
|
||||
AddConstraint(MakeIsMemberCt(var, values, size, b));
|
||||
AddConstraint(MakeIsMemberCt(var, values, b));
|
||||
return b;
|
||||
}
|
||||
|
||||
IntVar* Solver::MakeIsMemberVar(IntVar* const var, const std::vector<int>& values) {
|
||||
return MakeIsMemberVar(var, values.data(), values.size());
|
||||
IntVar* const b = MakeBoolVar();
|
||||
AddConstraint(MakeIsMemberCt(var, values, b));
|
||||
return b;
|
||||
}
|
||||
|
||||
} // namespace operations_research
|
||||
|
||||
Reference in New Issue
Block a user