fixes
This commit is contained in:
@@ -399,6 +399,13 @@ Constraint* Solver::MakeIsEqualCstCt(IntVar* const var,
|
||||
if (value == var->Max()) {
|
||||
return MakeIsGreaterOrEqualCstCt(var, value, boolvar);
|
||||
}
|
||||
if (boolvar->Bound()) {
|
||||
if (boolvar->Min() == 0) {
|
||||
return MakeNonEquality(var, value);
|
||||
} else {
|
||||
return MakeEquality(var, value);
|
||||
}
|
||||
}
|
||||
// TODO(user) : what happens if the constraint is not posted?
|
||||
// The cache becomes tainted.
|
||||
model_cache_->InsertVarConstantExpression(
|
||||
@@ -515,6 +522,13 @@ Constraint* Solver::MakeIsDifferentCstCt(IntVar* const var,
|
||||
if (value == var->Max()) {
|
||||
return MakeIsLessOrEqualCstCt(var, value - 1, boolvar);
|
||||
}
|
||||
if (boolvar->Bound()) {
|
||||
if (boolvar->Min() == 0) {
|
||||
return MakeEquality(var, value);
|
||||
} else {
|
||||
return MakeNonEquality(var, value);
|
||||
}
|
||||
}
|
||||
model_cache_->InsertVarConstantExpression(
|
||||
boolvar,
|
||||
var,
|
||||
|
||||
@@ -1086,7 +1086,7 @@ class IntBuilder {
|
||||
global_model_builder.Register("count", &p_count);
|
||||
global_model_builder.Register("global_cardinality", &p_global_cardinality);
|
||||
global_model_builder.Register("table_int", &p_table_int);
|
||||
global_model_builder.Register("table_int", &p_table_bool);
|
||||
global_model_builder.Register("table_bool", &p_table_bool);
|
||||
}
|
||||
};
|
||||
IntBuilder __int_Builder;
|
||||
|
||||
Reference in New Issue
Block a user