20#include "absl/container/flat_hash_set.h"
39 for (
int i = 0; i < in_proto.
expression().ids_size(); ++i) {
64 absl::flat_hash_set<VariableId> vars;
71 return std::vector<VariableId>(vars.begin(), vars.end());
void set_indicator_id(::int64_t value)
void set_upper_bound(double value)
::int64_t indicator_id() const
void set_lower_bound(double value)
const ::std::string & name() const
double upper_bound() const
double lower_bound() const
void set_name(Arg_ &&arg, Args_... args)
::operations_research::math_opt::SparseDoubleVectorProto *PROTOBUF_NONNULL mutable_expression()
const ::operations_research::math_opt::SparseDoubleVectorProto & expression() const
bool activate_on_zero() const
void set_activate_on_zero(bool value)
bool has_indicator_id() const
optional int64 indicator_id = 1;
bool set(VariableId id, double coeff)
Returns true if the stored value changes.
::int64_t ids(int index) const
void add_ids(::int64_t value)
double values(int index) const
void add_values(double value)
An object oriented wrapper for quadratic constraints in ModelStorage.
ElementId< ElementType::kVariable > VariableId
std::vector< K > SortedMapKeys(const absl::flat_hash_map< K, V > &in_map)
SparseCoefficientMap linear_terms
IndicatorConstraintProto ProtoType
std::optional< VariableId > indicator
static IndicatorConstraintData FromProto(const ProtoType &in_proto)
std::vector< VariableId > RelatedVariables() const
void DeleteVariable(VariableId var)