akreon-convex
Typed convex modeling, conic canonicalization, and primal-dual optimization in C++26.
Loading...
Searching...
No Matches
conic::ExpCone< Slack > Struct Template Reference

forward decl for exp More...

#include <exp_cone.hpp>

Inheritance diagram for conic::ExpCone< Slack >:
[legend]

Public Types

using ConeBase = Cone< Slack, ExpCone< Slack >, ConeType::ASYMMETRIC >
 bring into scope alias from cone base
 
- Public Types inherited from conic::Cone< Slack, ExpCone< Slack >, ConeType::ASYMMETRIC >
using T = linalg::vector_element_t< Slack >
 alias for mat type
 
using HessianMat = linalg::Matrix< T, M, M >
 hessian type
 

Public Member Functions

constexpr Slack x0_impl () const
 default interior point
 
constexpr bool in_cone_impl (const Slack &x) const
 in interior of K
 
constexpr T alpha_max_impl (const Slack &x, const linalg::Vector< T, M > &p) const
 fraction to boundary dK
 
- Public Member Functions inherited from conic::Cone< Slack, ExpCone< Slack >, ConeType::ASYMMETRIC >
constexpr Slack x0 () const
 default interior point (initial slack in cone space)
 
constexpr Slack y0 () const
 default interior point (initial slack in dual cone)
 
constexpr bool in_cone (const Slack &x) const
 in the interior of k
 
constexpr bool in_dual_cone (const Slack &y) const
 in the interior of K^*
 
constexpr auto H (const Slack &x, const Slack &y) const
 hessian
 
constexpr T alpha_max (const Slack &x, const linalg::Vector< T, M > &p) const
 fraction to boundary dk
 
constexpr T alpha_max_dual (const Slack &y, const linalg::Vector< T, M > &p) const
 fraction to boundary dk^*
 
constexpr T nu () const
 barrier parameter
 
constexpr auto grad (const Slack &x) const
 gradient
 
constexpr auto e () const
 e (jordan identity)
 
constexpr auto w (const Slack &x, const Slack &y) const
 w (self-scaling point)
 
constexpr auto circ (const Slack &x, const Slack &y) const
 circ (jordan map/product operator)
 
constexpr auto trace (const Slack &x, const Slack &y) const
 trace
 
constexpr auto inv (const Slack &x) const
 inv (jordan inverse element)
 
constexpr T trace_weight () const
 Convert Euclidean complementarity to this cone's Jordan trace units.
 
constexpr auto scaled_affine_correction (const Slack &x, const Scaling &P, const Slack &px, const Slack &py) const
 Affine second-order correction in dual coordinates under NT scaling.
 
constexpr auto scaled_affine_correction_impl (const Slack &x, const Scaling &P, const Slack &px, const Slack &py) const
 Common symmetric-cone implementation using Jordan operations.
 
constexpr auto gamma_F (const Slack &x, const Slack &y) const
 gamma_F (functional proximity neighborhood metric)
 
constexpr auto self () const
 self function which returns a const ref to the derived object
 

Additional Inherited Members

- Static Public Attributes inherited from conic::Cone< Slack, ExpCone< Slack >, ConeType::ASYMMETRIC >
static constexpr std::size_t M
 helpers to get M slack size
 
static constexpr T eps
 eps constant
 

Detailed Description

template<linalg::VectorContainer Slack>
struct conic::ExpCone< Slack >

forward decl for exp

exp cone class

K_exp = { (u, v, w) | v exp(u/v) <= w, v > 0 }

To support F block being affine in x then aux vars the coords are strided by 3*N nominally. So u coords are the first M/3 rows, v are the next M/3 rows, and w are the final rows

Warning
Partial cone implementation. Step-length and compatible asymmetric-cone solver support are incomplete; not supported for solves.
See also
Support and Roadmap

Definition at line 25 of file exp_cone.hpp.

Member Typedef Documentation

◆ ConeBase

template<linalg::VectorContainer Slack>
using conic::ExpCone< Slack >::ConeBase = Cone<Slack, ExpCone<Slack>, ConeType::ASYMMETRIC>

bring into scope alias from cone base

Definition at line 27 of file exp_cone.hpp.

Member Function Documentation

◆ alpha_max_impl()

template<linalg::VectorContainer Slack>
constexpr T conic::ExpCone< Slack >::alpha_max_impl ( const Slack &  x,
const linalg::Vector< T, M > &  p 
) const
inlineconstexpr

fraction to boundary dK

Parameters
xin K
pin E
Returns
alpha_max

(dakre) TODO - compute alpha max

Definition at line 73 of file exp_cone.hpp.

◆ in_cone_impl()

template<linalg::VectorContainer Slack>
constexpr bool conic::ExpCone< Slack >::in_cone_impl ( const Slack &  x) const
inlineconstexpr

in interior of K

Parameters
xin K
Returns
bool

Definition at line 55 of file exp_cone.hpp.

References conic::Cone< Slack, ExpCone< Slack >, ConeType::ASYMMETRIC >::M, and conic::Cone< Slack, ExpCone< Slack >, ConeType::ASYMMETRIC >::w().

◆ x0_impl()

template<linalg::VectorContainer Slack>
constexpr Slack conic::ExpCone< Slack >::x0_impl ( ) const
inlineconstexpr

default interior point

Returns
vector

Definition at line 40 of file exp_cone.hpp.

References conic::Cone< Slack, ExpCone< Slack >, ConeType::ASYMMETRIC >::M.


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