14#ifndef PDLP_ITERATION_STATS_H_
15#define PDLP_ITERATION_STATS_H_
22#include "absl/types/optional.h"
24#include "ortools/pdlp/solve_log.pb.h"
25#include "ortools/pdlp/solvers.pb.h"
35 const Eigen::VectorXd& primal_solution,
36 const Eigen::VectorXd& dual_solution, PointType candidate_type);
50 const Eigen::VectorXd& col_scaling_vec,
51 const Eigen::VectorXd& row_scaling_vec,
52 const Eigen::VectorXd& scaled_primal_solution,
53 const Eigen::VectorXd& scaled_dual_solution, PointType candidate_type);
64 const Eigen::VectorXd& col_scaling_vec,
65 const Eigen::VectorXd& row_scaling_vec,
66 const Eigen::VectorXd& scaled_primal_ray,
67 const Eigen::VectorXd& scaled_dual_ray, PointType candidate_type);
77 const Eigen::VectorXd& primal_solution,
78 const Eigen::VectorXd& dual_solution,
79 bool use_zero_primal_objective =
false);
84 const IterationStats& stats, PointType candidate_type);
89 const IterationStats& stats, PointType candidate_type);
94 PointType point_type);
101 const Eigen::VectorXd& primal_solution,
102 const Eigen::VectorXd& dual_solution,
103 const std::vector<int>& random_projection_seeds,
104 PointMetadata& metadata);
ConvergenceInformation ComputeScaledConvergenceInformation(const ShardedQuadraticProgram &sharded_qp, const VectorXd &primal_solution, const VectorXd &dual_solution, PointType candidate_type)
VectorXd ReducedCosts(const ShardedQuadraticProgram &sharded_qp, const VectorXd &primal_solution, const VectorXd &dual_solution, bool use_zero_primal_objective)
absl::optional< PointMetadata > GetPointMetadata(const IterationStats &stats, const PointType point_type)
InfeasibilityInformation ComputeInfeasibilityInformation(const ShardedQuadraticProgram &scaled_sharded_qp, const Eigen::VectorXd &col_scaling_vec, const Eigen::VectorXd &row_scaling_vec, const Eigen::VectorXd &scaled_primal_ray, const Eigen::VectorXd &scaled_dual_ray, PointType candidate_type)
absl::optional< ConvergenceInformation > GetConvergenceInformation(const IterationStats &stats, PointType candidate_type)
void SetRandomProjections(const ShardedQuadraticProgram &sharded_qp, const Eigen::VectorXd &primal_solution, const Eigen::VectorXd &dual_solution, const std::vector< int > &random_projection_seeds, PointMetadata &metadata)
absl::optional< InfeasibilityInformation > GetInfeasibilityInformation(const IterationStats &stats, PointType candidate_type)
ConvergenceInformation ComputeConvergenceInformation(const ShardedQuadraticProgram &scaled_sharded_qp, const Eigen::VectorXd &col_scaling_vec, const Eigen::VectorXd &row_scaling_vec, const Eigen::VectorXd &scaled_primal_solution, const Eigen::VectorXd &scaled_dual_solution, PointType candidate_type)