19#include "absl/container/flat_hash_set.h"
20#include "absl/status/statusor.h"
29 const Model& model,
const SparseVectorFilterProto& proto) {
31 if (proto.filter_by_ids()) {
32 absl::flat_hash_set<Variable> filtered;
33 for (
const int64_t
id : proto.filtered_ids()) {
36 <<
"cannot create MapFilter<Variable> from proto, variable id: "
37 <<
id <<
" not in model";
47 const Model& model,
const SparseVectorFilterProto& proto) {
49 proto.skip_zero_values()};
50 if (proto.filter_by_ids()) {
51 absl::flat_hash_set<LinearConstraint> filtered;
52 for (
const int64_t
id : proto.filtered_ids()) {
55 <<
"cannot create MapFilter<LinearConstraint> from proto, "
56 "linear constraint id: "
57 <<
id <<
" not in model";
66absl::StatusOr<MapFilter<QuadraticConstraint>>
68 const SparseVectorFilterProto& proto) {
70 proto.skip_zero_values()};
71 if (proto.filter_by_ids()) {
72 absl::flat_hash_set<QuadraticConstraint> filtered;
73 for (
const int64_t
id : proto.filtered_ids()) {
76 <<
"cannot create MapFilter<QuadraticConstraint> from proto, "
77 "quadratic constraint id: "
78 <<
id <<
" not in model";
bool has_variable(int64_t id) const
Returns true if this id has been created and not yet deleted.
bool has_quadratic_constraint(int64_t id) const
Returns true if this id has been created and not yet deleted.
Variable variable(int64_t id) const
Will CHECK if has_variable(id) is false.
bool has_linear_constraint(int64_t id) const
Returns true if this id has been created and not yet deleted.
LinearConstraint linear_constraint(int64_t id) const
Will CHECK if has_linear_constraint(id) is false.
QuadraticConstraint quadratic_constraint(int64_t id) const
Will CHECK if has_quadratic_constraint(id) is false.
An object oriented wrapper for quadratic constraints in ModelStorage.
absl::StatusOr< MapFilter< LinearConstraint > > LinearConstraintFilterFromProto(const Model &model, const SparseVectorFilterProto &proto)
absl::StatusOr< MapFilter< QuadraticConstraint > > QuadraticConstraintFilterFromProto(const Model &model, const SparseVectorFilterProto &proto)
absl::StatusOr< MapFilter< Variable > > VariableFilterFromProto(const Model &model, const SparseVectorFilterProto &proto)
StatusBuilder InvalidArgumentErrorBuilder()
std::optional< absl::flat_hash_set< KeyType > > filtered_keys