remove most of C API, still missing is local search

This commit is contained in:
lperron@google.com
2012-05-30 13:08:42 +00:00
parent 0e786a833b
commit a7c063f07e
2 changed files with 16 additions and 62 deletions

View File

@@ -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);

View File

@@ -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