14#ifndef PDLP_TERMINATION_H_
15#define PDLP_TERMINATION_H_
57 const std::atomic<bool>* interrupt_solve =
nullptr);
77 bool force_numerical_termination =
false);
87double EpsilonRatio(
double epsilon_absolute,
double epsilon_relative);
TerminationCriteria_DetailedOptimalityCriteria DetailedOptimalityCriteria
TerminationCriteria_SimpleOptimalityCriteria SimpleOptimalityCriteria
nested types -------------------------------------------------—
Validation utilities for solvers.proto.
std::optional< TerminationReasonAndPointType > CheckSimpleTerminationCriteria(const TerminationCriteria &criteria, const IterationStats &stats, const std::atomic< bool > *interrupt_solve)
TerminationCriteria::DetailedOptimalityCriteria EffectiveOptimalityCriteria(const TerminationCriteria &termination_criteria)
Computes the effective optimality criteria for a TerminationCriteria.
QuadraticProgramBoundNorms BoundNormsFromProblemStats(const QuadraticProgramStats &stats)
double EpsilonRatio(const double epsilon_absolute, const double epsilon_relative)
std::optional< TerminationReasonAndPointType > CheckIterateTerminationCriteria(const TerminationCriteria &criteria, const IterationStats &stats, const QuadraticProgramBoundNorms &bound_norms, const bool force_numerical_termination)
bool OptimalityCriteriaMet(const TerminationCriteria::DetailedOptimalityCriteria &optimality_criteria, const ConvergenceInformation &stats, const OptimalityNorm optimality_norm, const QuadraticProgramBoundNorms &bound_norms)
Determines if the optimality criteria are met.
bool ObjectiveGapMet(const TerminationCriteria::DetailedOptimalityCriteria &optimality_criteria, const ConvergenceInformation &stats)
RelativeConvergenceInformation ComputeRelativeResiduals(const TerminationCriteria::DetailedOptimalityCriteria &optimality_criteria, const ConvergenceInformation &stats, const QuadraticProgramBoundNorms &bound_norms)
double l_inf_norm_constraint_bounds
double l_inf_norm_primal_linear_objective
double l2_norm_constraint_bounds
double l2_norm_primal_linear_objective