31 const double muliplier =
static_cast<double>(std::abs(old_coeff));
35 if (muliplier != 1.0) {
40 if (old_factor == 0.0) old_factor = 1.0;
55 for (
int i = 0; i < cp_model->
objective().vars_size(); ++i) {
72 Domain obj_domain(min_obj, max_obj);
86 ct->add_vars(obj_ref);
We call domain any subset of Int64 = [kint64min, kint64max].
Domain IntersectionWith(const Domain &domain) const
Returns the intersection of D and domain.
::operations_research::sat::LinearConstraintProto * mutable_linear()
const ::operations_research::sat::CpObjectiveProto & objective() const
const ::operations_research::sat::IntegerVariableProto & variables(int index) const
bool has_objective() const
int variables_size() const
::operations_research::sat::ConstraintProto * add_constraints()
::operations_research::sat::IntegerVariableProto * add_variables()
::operations_research::sat::CpObjectiveProto * mutable_objective()
::PROTOBUF_NAMESPACE_ID::int64 coeffs(int index) const
void set_vars(int index, ::PROTOBUF_NAMESPACE_ID::int32 value)
void add_coeffs(::PROTOBUF_NAMESPACE_ID::int64 value)
double scaling_factor() const
::PROTOBUF_NAMESPACE_ID::int64 domain(int index) const
void set_coeffs(int index, ::PROTOBUF_NAMESPACE_ID::int64 value)
void set_offset(double value)
::PROTOBUF_NAMESPACE_ID::int32 vars(int index) const
void add_vars(::PROTOBUF_NAMESPACE_ID::int32 value)
void set_scaling_factor(double value)
::PROTOBUF_NAMESPACE_ID::int64 domain(int index) const
bool RefIsPositive(int ref)
void EncodeObjectiveAsSingleVariable(CpModelProto *cp_model)
void FillDomainInProto(const Domain &domain, ProtoWithDomain *proto)
Domain ReadDomainFromProto(const ProtoWithDomain &proto)
Collection of objects used to extend the Constraint Solver library.