14#ifndef OR_TOOLS_MATH_OPT_SOLVERS_PDLP_BRIDGE_H_
15#define OR_TOOLS_MATH_OPT_SOLVERS_PDLP_BRIDGE_H_
20#include "absl/container/flat_hash_map.h"
21#include "absl/status/statusor.h"
23#include "ortools/pdlp/quadratic_program.h"
24#include "ortools/math_opt/model.pb.h"
25#include "ortools/math_opt/sparse_containers.pb.h"
49 const pdlp::QuadraticProgram&
pdlp_lp()
const {
return pdlp_lp_; }
54 const Eigen::VectorXd& primal_values,
55 const SparseVectorFilterProto& variable_filter)
const;
57 const Eigen::VectorXd& dual_values,
58 const SparseVectorFilterProto& linear_constraint_filter)
const;
60 const Eigen::VectorXd& reduced_costs,
61 const SparseVectorFilterProto& variable_filter)
const;
64 pdlp::QuadraticProgram pdlp_lp_;
65 absl::flat_hash_map<int64_t, int64_t> var_id_to_pdlp_index_;
67 std::vector<int64_t> pdlp_index_to_var_id_;
68 absl::flat_hash_map<int64_t, int64_t> lin_con_id_to_pdlp_index_;
70 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)
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.