14#ifndef PDLP_PRIMAL_DUAL_HYBRID_GRADIENT_H_
15#define PDLP_PRIMAL_DUAL_HYBRID_GRADIENT_H_
25#include "ortools/pdlp/solve_log.pb.h"
26#include "ortools/pdlp/solvers.pb.h"
153 const std::atomic<bool>* interrupt_solve =
nullptr,
154 std::function<
void(
const std::string&)> message_callback =
nullptr,
165 std::optional<PrimalAndDualSolution> initial_solution,
166 const std::atomic<bool>* interrupt_solve =
nullptr,
167 std::function<
void(
const std::string&)> message_callback =
nullptr,
glop::ProblemSolution ComputeStatuses(const QuadraticProgram &qp, const PrimalAndDualSolution &solution)
Validation utilities for solvers.proto.
SolverResult PrimalDualHybridGradient(QuadraticProgram qp, const PrimalDualHybridGradientParams ¶ms, const std::atomic< bool > *interrupt_solve, std::function< void(const std::string &)> message_callback, IterationStatsCallback iteration_stats_callback)
@ kNormal
An intermediate iteration in the "main" phase.
@ kPrimalFeasibility
An intermediate iteration during a primal feasibility polishing phase.
@ kFeasibilityPolishingTermination
Terminating with a solution found by feasibility polishing.
@ kPresolveTermination
Terminating with a solution found by presolve.
@ kDualFeasibility
An intermediate iteration during a dual feasibility polishing phase.
@ kNormalTermination
Terminating with a solution found by the "main" phase.
Contains the solution of a LinearProgram as returned by a preprocessor.
TerminationCriteria termination_criteria
IterationType iteration_type
IterationStats iteration_stats
QuadraticProgramBoundNorms bound_norms
Eigen::VectorXd primal_solution
Eigen::VectorXd dual_solution
Eigen::VectorXd reduced_costs
Eigen::VectorXd dual_solution
Eigen::VectorXd primal_solution