|
akreon-convex
Typed convex modeling, conic canonicalization, and primal-dual optimization in C++26.
|
Primal Dual Interior Point Method Solver. More...
#include <pd_ipm.hpp>
Public Types | |
| using | Builder = prob_builder_t< Problem > |
| alias and helpers to get types | |
| using | DecVar = conic::builder_dom_t< Builder > |
| using | ConeMap = decltype(std::declval< const Problem & >().constraint_map()) |
| using | ConeMat = affine::affine_mat_t< ConeMap > |
| using | EqMap = decltype(std::declval< const Problem & >().equality_map()) |
| using | EqMat = affine::affine_mat_t< EqMap > |
| using | CanonicalTrace = decltype(std::declval< const Problem & >().canonical_trace()) |
| using | T = linalg::space_type_t< DecVar > |
| using | NuVar = linalg::Vector< T, EqRows > |
| using | BlockMat = linalg::Matrix< T, N, N > |
| useful types for PD-IPM | |
| using | Var = linalg::Vector< T, N > |
| using | ConeVar = linalg::Vector< T, M > |
| using | Step = NewtonStep< Var, ConeVar, NuVar > |
| using | Residuals = ResidualState< Var, ConeVar, NuVar > |
| using | SolverTrace = EmptySolverTrace |
Public Member Functions | |
| constexpr | PrimalDualIPM (const Problem &prob) |
| CTOR. | |
| constexpr | PrimalDualIPM (const Problem &prob, const config::PrimalDualIPMConfig< T > &config_in) |
| CTOR. | |
| constexpr | PrimalDualIPM (const Problem &prob, const PrimalDualIterate< Var, ConeVar, NuVar > &iterate) |
| CTOR (warm start) | |
| constexpr | PrimalDualIPM (const Problem &prob, const PrimalDualIterate< Var, ConeVar, NuVar > &iterate, const config::PrimalDualIPMConfig< T > &config_in) |
| CTOR (warm start) | |
Public Attributes | |
| PrimalDualResult< Var, ConeVar, NuVar, CanonicalTrace, SolverTrace > | res |
| member vars | |
| bool | dual_feas {false} |
| status flag for dual feasibility | |
| bool | primal_feas {false} |
| status flag for primal feasibility | |
| bool | gap_min {false} |
| status flag for duality gap minimized | |
Static Public Attributes | |
| static constexpr std::size_t | NumCones |
| helpers for size of cones & F mat size & A mat rows | |
| static constexpr std::size_t | M = linalg::mat_rows_v<ConeMat> |
| static constexpr std::size_t | N = linalg::mat_cols_v<ConeMat> |
| static constexpr std::size_t | EqRows = linalg::mat_rows_v<EqMat> |
| static constexpr T | rho {linalg::ln2_v<T>} |
| damping param using for alpha steps in predictor corrector | |
| static constexpr T | beta {1 - linalg::ln2_v<T>} |
| beta F(beta) neighborhood of central path (within feasibility) | |
Primal Dual Interior Point Method Solver.
Definition at line 93 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::BlockMat = linalg::Matrix<T, N, N> |
useful types for PD-IPM
Definition at line 115 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::Builder = prob_builder_t<Problem> |
alias and helpers to get types
Definition at line 95 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::CanonicalTrace = decltype(std::declval<const Problem&>().canonical_trace()) |
Definition at line 101 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::ConeMap = decltype(std::declval<const Problem&>().constraint_map()) |
Definition at line 97 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::ConeMat = affine::affine_mat_t<ConeMap> |
Definition at line 98 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::ConeVar = linalg::Vector<T, M> |
Definition at line 117 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::DecVar = conic::builder_dom_t<Builder> |
Definition at line 96 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::EqMap = decltype(std::declval<const Problem&>().equality_map()) |
Definition at line 99 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::EqMat = affine::affine_mat_t<EqMap> |
Definition at line 100 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::NuVar = linalg::Vector<T, EqRows> |
Definition at line 112 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::Residuals = ResidualState<Var, ConeVar, NuVar> |
Definition at line 119 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::SolverTrace = EmptySolverTrace |
Definition at line 123 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::Step = NewtonStep<Var, ConeVar, NuVar> |
Definition at line 118 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::T = linalg::space_type_t<DecVar> |
Definition at line 103 of file pd_ipm.hpp.
| using convex::PrimalDualIPM< Problem >::Var = linalg::Vector<T, N> |
Definition at line 116 of file pd_ipm.hpp.
|
inlineexplicitconstexpr |
CTOR.
| prob | (ConvexProblem) |
Definition at line 140 of file pd_ipm.hpp.
References convex::dom_size_v.
|
inlineexplicitconstexpr |
CTOR.
| prob | (ConvexProblem) |
| config | (PrimalDualIPMConfig) |
Definition at line 148 of file pd_ipm.hpp.
References convex::dom_size_v.
|
inlineexplicitconstexpr |
CTOR (warm start)
| prob | (ConvexProblem) |
| iterate | (PrimalDualIterate) |
Definition at line 160 of file pd_ipm.hpp.
References convex::dom_size_v, and convex::PrimalDualIPM< Problem >::res.
|
inlineexplicitconstexpr |
CTOR (warm start)
| prob | (ConvexProblem) |
| iterate | (PrimalDualIterate) |
| config | (PrimalDualIPMConfig) |
Definition at line 174 of file pd_ipm.hpp.
References convex::dom_size_v, and convex::PrimalDualIPM< Problem >::res.
|
staticconstexpr |
beta F(beta) neighborhood of central path (within feasibility)
Definition at line 133 of file pd_ipm.hpp.
| bool convex::PrimalDualIPM< Problem >::dual_feas {false} |
status flag for dual feasibility
Definition at line 189 of file pd_ipm.hpp.
|
staticconstexpr |
Definition at line 111 of file pd_ipm.hpp.
| bool convex::PrimalDualIPM< Problem >::gap_min {false} |
status flag for duality gap minimized
Definition at line 191 of file pd_ipm.hpp.
|
staticconstexpr |
Definition at line 108 of file pd_ipm.hpp.
|
staticconstexpr |
Definition at line 109 of file pd_ipm.hpp.
|
staticconstexpr |
helpers for size of cones & F mat size & A mat rows
Definition at line 106 of file pd_ipm.hpp.
| bool convex::PrimalDualIPM< Problem >::primal_feas {false} |
status flag for primal feasibility
Definition at line 190 of file pd_ipm.hpp.
| PrimalDualResult<Var, ConeVar, NuVar, CanonicalTrace, SolverTrace> convex::PrimalDualIPM< Problem >::res |
member vars
PD-IPM result
Definition at line 185 of file pd_ipm.hpp.
Referenced by convex::PrimalDualIPM< Problem >::PrimalDualIPM(), and convex::PrimalDualIPM< Problem >::PrimalDualIPM().
|
staticconstexpr |
damping param using for alpha steps in predictor corrector
Definition at line 130 of file pd_ipm.hpp.