21 #include "absl/status/status.h"
22 #include "absl/strings/str_cat.h"
23 #include "ortools/math_opt/model_parameters.pb.h"
25 #include "ortools/math_opt/sparse_containers.pb.h"
37 CheckIdsSubset(v.filtered_ids(), valid_ids,
"filtered_ids",
"model IDs"));
38 if (!v.filter_by_ids() && !v.filtered_ids().empty()) {
39 return absl::InvalidArgumentError(
40 "Invalid SparseVectorFilterProto.filter_by_id* specification. To "
42 "IDs you must set SparseVectorFilterProto.filter_by_ids to 'true'.");
45 return absl::OkStatus();
53 <<
"invalid primal_variables_filter";
56 <<
"invalid dual_variables_filter";
60 <<
"invalid dual_linear_constraints_filter";
65 return absl::OkStatus();
absl::Status CheckIdsNonnegativeAndStrictlyIncreasing(absl::Span< const int64_t > ids)
absl::Status ValidateSparseVectorFilter(const SparseVectorFilterProto &v, const IdNameBiMap &valid_ids)
absl::Status CheckIdsSubset(absl::Span< const int64_t > ids, const IdNameBiMap &universe, absl::string_view ids_description, absl::string_view universe_description)
absl::Status ValidateBasis(const BasisProto &basis, const ModelSummary &model_summary)
absl::Status ValidateModelSolveParameters(const ModelSolveParametersProto ¶meters, const ModelSummary &model_summary)
Collection of objects used to extend the Constraint Solver library.
#define RETURN_IF_ERROR(expr)
IdNameBiMap linear_constraints