akreon-convex
Typed convex modeling, conic canonicalization, and primal-dual optimization in C++26.
Loading...
Searching...
No Matches
convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT > Struct Template Reference

Final primal-dual solve result plus optional structural and iteration traces. More...

#include <pd_ipm_result.hpp>

Public Types

using Scalar = linalg::vector_element_t< Var >
 
using CanonicalTrace = CanonicalTraceT
 
using SolverTrace = SolverTraceT
 

Public Attributes

config::SolverResult tag {}
 Solver result tag.
 
linalg::NumericalEvent event {}
 Report of any numerical events.
 
bool stalled {}
 Tag that indicates if backtracking stalled.
 
std::size_t num_iter {}
 Number of iterations until convergence, stalled, or max.
 
Scalar mu {}
 Normalized duality gap.
 
Scalar convex_obj {}
 Convex objective result.
 
Scalar dual_obj {}
 Dual objective result.
 
PrimalDualIterate< Var, ConeVar, NuVar > iterate {}
 PD iterate (z, x, y, nu)
 
Var rd {}
 Dual residual.
 
ConeVar rp {}
 Primal residual.
 
NuVar req {}
 Equality residual.
 
CanonicalTraceT canonical_trace {}
 Attached canonical trace.
 
SolverTraceT solver_trace {}
 Solver trace.
 

Detailed Description

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
struct convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >

Final primal-dual solve result plus optional structural and iteration traces.

forward declaration of pd result

Definition at line 36 of file pd_ipm_result.hpp.

Member Typedef Documentation

◆ CanonicalTrace

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
using convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::CanonicalTrace = CanonicalTraceT

Definition at line 38 of file pd_ipm_result.hpp.

◆ Scalar

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
using convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::Scalar = linalg::vector_element_t<Var>

Definition at line 37 of file pd_ipm_result.hpp.

◆ SolverTrace

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
using convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::SolverTrace = SolverTraceT

Definition at line 39 of file pd_ipm_result.hpp.

Member Data Documentation

◆ canonical_trace

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
CanonicalTraceT convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::canonical_trace {}

Attached canonical trace.

Definition at line 57 of file pd_ipm_result.hpp.

◆ convex_obj

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
Scalar convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::convex_obj {}

Convex objective result.

Definition at line 48 of file pd_ipm_result.hpp.

◆ dual_obj

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
Scalar convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::dual_obj {}

Dual objective result.

Definition at line 49 of file pd_ipm_result.hpp.

◆ event

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
linalg::NumericalEvent convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::event {}

Report of any numerical events.

Definition at line 42 of file pd_ipm_result.hpp.

◆ iterate

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
PrimalDualIterate<Var, ConeVar, NuVar> convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::iterate {}

PD iterate (z, x, y, nu)

Definition at line 52 of file pd_ipm_result.hpp.

◆ mu

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
Scalar convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::mu {}

Normalized duality gap.

Definition at line 47 of file pd_ipm_result.hpp.

◆ num_iter

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
std::size_t convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::num_iter {}

Number of iterations until convergence, stalled, or max.

Definition at line 45 of file pd_ipm_result.hpp.

◆ rd

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
Var convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::rd {}

Dual residual.

Definition at line 53 of file pd_ipm_result.hpp.

◆ req

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
NuVar convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::req {}

Equality residual.

Definition at line 55 of file pd_ipm_result.hpp.

◆ rp

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
ConeVar convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::rp {}

Primal residual.

Definition at line 54 of file pd_ipm_result.hpp.

◆ solver_trace

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
SolverTraceT convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::solver_trace {}

Solver trace.

Definition at line 58 of file pd_ipm_result.hpp.

◆ stalled

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
bool convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::stalled {}

Tag that indicates if backtracking stalled.

Definition at line 43 of file pd_ipm_result.hpp.

◆ tag

template<linalg::VectorContainer Var, linalg::VectorContainer ConeVar, linalg::VectorContainer NuVar, typename CanonicalTraceT = EmptyCanonicalTrace, typename SolverTraceT = EmptySolverTrace>
config::SolverResult convex::PrimalDualResult< Var, ConeVar, NuVar, CanonicalTraceT, SolverTraceT >::tag {}

Solver result tag.

Definition at line 41 of file pd_ipm_result.hpp.


The documentation for this struct was generated from the following file: