19#include "absl/container/flat_hash_set.h"
33 for (
int i = 0; i < in_proto.
linear_terms().ids_size(); ++i) {
59 absl::flat_hash_set<VariableId> vars(quad_terms.begin(), quad_terms.end());
63 return std::vector<VariableId>(vars.begin(), vars.end());
double lower_bound() const
::operations_research::math_opt::SparseDoubleMatrixProto *PROTOBUF_NONNULL mutable_quadratic_terms()
double upper_bound() const
void set_name(Arg_ &&arg, Args_... args)
void set_upper_bound(double value)
const ::operations_research::math_opt::SparseDoubleMatrixProto & quadratic_terms() const
const ::operations_research::math_opt::SparseDoubleVectorProto & linear_terms() const
const ::std::string & name() const
void set_lower_bound(double value)
::operations_research::math_opt::SparseDoubleVectorProto *PROTOBUF_NONNULL mutable_linear_terms()
bool set(VariableId id, double coeff)
Returns true if the stored value changes.
double coefficients(int index) const
::int64_t row_ids(int index) const
::int64_t column_ids(int index) const
::int64_t ids(int index) const
double values(int index) const
bool set(VariableId first, VariableId second, double value)
An object oriented wrapper for quadratic constraints in ModelStorage.
ElementId< ElementType::kVariable > VariableId
SparseSymmetricMatrix quadratic_terms
void DeleteVariable(VariableId var)
QuadraticConstraintProto ProtoType
SparseCoefficientMap linear_terms
static QuadraticConstraintData FromProto(const ProtoType &in_proto)
std::vector< VariableId > RelatedVariables() const