14 #ifndef OR_TOOLS_MATH_OPT_SOLVERS_PDLP_BRIDGE_H_
15 #define OR_TOOLS_MATH_OPT_SOLVERS_PDLP_BRIDGE_H_
22 #include "absl/container/flat_hash_map.h"
23 #include "absl/status/statusor.h"
25 #include "ortools/math_opt/model.pb.h"
26 #include "ortools/math_opt/model_parameters.pb.h"
27 #include "ortools/math_opt/sparse_containers.pb.h"
61 const Eigen::VectorXd& primal_values,
62 const SparseVectorFilterProto& variable_filter)
const;
64 const Eigen::VectorXd& dual_values,
65 const SparseVectorFilterProto& linear_constraint_filter)
const;
67 const Eigen::VectorXd& reduced_costs,
68 const SparseVectorFilterProto& variable_filter)
const;
70 const SolutionHintProto& solution_hint)
const;
74 absl::flat_hash_map<int64_t, int64_t> var_id_to_pdlp_index_;
76 std::vector<int64_t> pdlp_index_to_var_id_;
77 absl::flat_hash_map<int64_t, int64_t> lin_con_id_to_pdlp_index_;
79 std::vector<int64_t> pdlp_index_to_lin_con_id_;
absl::StatusOr< SparseDoubleVectorProto > DualVariablesToProto(const Eigen::VectorXd &dual_values, const SparseVectorFilterProto &linear_constraint_filter) const
const pdlp::QuadraticProgram & pdlp_lp() const
static absl::StatusOr< PdlpBridge > FromProto(const ModelProto &model_proto)
InvertedBounds ListInvertedBounds() const
pdlp::PrimalAndDualSolution SolutionHintToWarmStart(const SolutionHintProto &solution_hint) const
absl::StatusOr< SparseDoubleVectorProto > PrimalVariablesToProto(const Eigen::VectorXd &primal_values, const SparseVectorFilterProto &variable_filter) const
absl::StatusOr< SparseDoubleVectorProto > ReducedCostsToProto(const Eigen::VectorXd &reduced_costs, const SparseVectorFilterProto &variable_filter) const
CpModelProto const * model_proto
Collection of objects used to extend the Constraint Solver library.