16#ifndef OR_TOOLS_MATH_OPT_CPP_COMPUTE_INFEASIBLE_SUBSYSTEM_RESULT_H_
17#define OR_TOOLS_MATH_OPT_CPP_COMPUTE_INFEASIBLE_SUBSYSTEM_RESULT_H_
22#include "absl/container/flat_hash_map.h"
23#include "absl/container/flat_hash_set.h"
24#include "absl/status/status.h"
25#include "absl/status/statusor.h"
34#include "ortools/math_opt/infeasible_subsystem.pb.h"
48 ModelSubsetProto::Bounds
Proto()
const;
67 static absl::StatusOr<ModelSubset>
FromProto(
const ModelStorage*
model,
68 const ModelSubsetProto&
proto);
74 ModelSubsetProto
Proto()
const;
107 static absl::StatusOr<ComputeInfeasibleSubsystemResult>
FromProto(
108 const ModelStorage*
model,
109 const ComputeInfeasibleSubsystemResultProto& result_proto);
116 ComputeInfeasibleSubsystemResultProto
Proto()
const;
CpModelProto proto
The output proto.
An object oriented wrapper for quadratic constraints in ModelStorage.
std::ostream & operator<<(std::ostream &ostr, const IndicatorConstraint &constraint)
@ kUndetermined
Solver does not claim a status.
absl::Status CheckModelStorage(const ModelStorage *expected_storage) const
static absl::StatusOr< ComputeInfeasibleSubsystemResult > FromProto(const ModelStorage *model, const ComputeInfeasibleSubsystemResultProto &result_proto)
ModelSubset infeasible_subsystem
FeasibilityStatus feasibility
The primal feasibility status of the model, as determined by the solver.
ComputeInfeasibleSubsystemResultProto Proto() const
ModelSubsetProto::Bounds Proto() const
friend bool operator==(const Bounds &lhs, const Bounds &rhs)
friend bool operator!=(const Bounds &lhs, const Bounds &rhs)
static Bounds FromProto(const ModelSubsetProto::Bounds &bounds_proto)
absl::flat_hash_map< Variable, Bounds > variable_bounds
absl::flat_hash_set< SecondOrderConeConstraint > second_order_cone_constraints
absl::flat_hash_set< Variable > variable_integrality
bool empty() const
True if this object corresponds to the empty subset.
absl::flat_hash_set< Sos1Constraint > sos1_constraints
ModelSubsetProto Proto() const
absl::Status CheckModelStorage(const ModelStorage *expected_storage) const
absl::flat_hash_map< LinearConstraint, Bounds > linear_constraints
std::string ToString() const
absl::flat_hash_set< IndicatorConstraint > indicator_constraints
static absl::StatusOr< ModelSubset > FromProto(const ModelStorage *model, const ModelSubsetProto &proto)
absl::flat_hash_map< QuadraticConstraint, Bounds > quadratic_constraints
absl::flat_hash_set< Sos2Constraint > sos2_constraints