14#ifndef OR_TOOLS_MATH_OPT_SOLVERS_PDLP_BRIDGE_H_
15#define OR_TOOLS_MATH_OPT_SOLVERS_PDLP_BRIDGE_H_
21#include "absl/container/flat_hash_map.h"
22#include "absl/status/statusor.h"
24#include "ortools/math_opt/model.pb.h"
25#include "ortools/math_opt/sparse_containers.pb.h"
58 const Eigen::VectorXd& primal_values,
59 const SparseVectorFilterProto& variable_filter)
const;
61 const Eigen::VectorXd& dual_values,
62 const SparseVectorFilterProto& linear_constraint_filter)
const;
64 const Eigen::VectorXd& reduced_costs,
65 const SparseVectorFilterProto& variable_filter)
const;
69 absl::flat_hash_map<int64_t, int64_t> var_id_to_pdlp_index_;
71 std::vector<int64_t> pdlp_index_to_var_id_;
72 absl::flat_hash_map<int64_t, int64_t> lin_con_id_to_pdlp_index_;
74 std::vector<int64_t> pdlp_index_to_lin_con_id_;
const pdlp::QuadraticProgram & pdlp_lp() const
absl::StatusOr< SparseDoubleVectorProto > DualVariablesToProto(const Eigen::VectorXd &dual_values, const SparseVectorFilterProto &linear_constraint_filter) const
static absl::StatusOr< PdlpBridge > FromProto(const ModelProto &model_proto)
InvertedBounds ListInvertedBounds() 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.