14#ifndef OR_TOOLS_MATH_OPT_SOLVERS_PDLP_SOLVER_H_
15#define OR_TOOLS_MATH_OPT_SOLVERS_PDLP_SOLVER_H_
19#include "absl/status/statusor.h"
20#include "ortools/math_opt/callback.pb.h"
22#include "ortools/math_opt/infeasible_subsystem.pb.h"
23#include "ortools/math_opt/model.pb.h"
24#include "ortools/math_opt/model_parameters.pb.h"
25#include "ortools/math_opt/model_update.pb.h"
26#include "ortools/math_opt/parameters.pb.h"
27#include "ortools/math_opt/result.pb.h"
30#include "ortools/pdlp/solvers.pb.h"
38 static absl::StatusOr<std::unique_ptr<SolverInterface>>
New(
41 absl::StatusOr<SolveResultProto>
Solve(
43 const ModelSolveParametersProto& model_parameters,
45 const CallbackRegistrationProto& callback_registration,
Callback cb,
47 absl::StatusOr<bool>
Update(
const ModelUpdateProto& model_update)
override;
48 absl::StatusOr<ComputeInfeasibleSubsystemResultProto>
54 static absl::StatusOr<pdlp::PrimalDualHybridGradientParams>
MergeParameters(
55 const SolveParametersProto&
parameters,
bool has_message_callback);
60 absl::StatusOr<SolveResultProto> MakeSolveResult(
62 const ModelSolveParametersProto& model_params);
static absl::StatusOr< std::unique_ptr< SolverInterface > > New(const ModelProto &model, const InitArgs &init_args)
absl::StatusOr< ComputeInfeasibleSubsystemResultProto > ComputeInfeasibleSubsystem(const SolveParametersProto ¶meters, MessageCallback message_cb, const SolveInterrupter *interrupter) override
absl::StatusOr< SolveResultProto > Solve(const SolveParametersProto ¶meters, const ModelSolveParametersProto &model_parameters, MessageCallback message_cb, const CallbackRegistrationProto &callback_registration, Callback cb, const SolveInterrupter *interrupter) override
static absl::StatusOr< pdlp::PrimalDualHybridGradientParams > MergeParameters(const SolveParametersProto ¶meters, bool has_message_callback)
Returns the merged parameters and a list of warnings.
absl::StatusOr< bool > Update(const ModelUpdateProto &model_update) override
std::function< void(const std::vector< std::string > &)> MessageCallback
std::function< absl::StatusOr< CallbackResultProto >( const CallbackDataProto &)> Callback
In SWIG mode, we don't want anything besides these top-level includes.
Initialization arguments.