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

forward declaration of inequality More...

#include <inequality.hpp>

Public Types

using Meta = atom_meta_t< LHS >
 extract alias & types from base
 
using Domain = meta_dom_t< Meta >
 
using Codom = meta_codom_t< Meta >
 
using T = dom_type_t< Domain >
 
using Point = dom_point_t< Domain >
 

Public Member Functions

constexpr Inequality (const LHS &lhs_in, const RHS &rhs_in)
 CTOR.
 
template<AtomType Type, conic::BuilderLike Builder>
constexpr auto canonicalize (const Builder &builder) const
 canonicalize
 

Public Attributes

LHS lhs
 member vars
 
RHS rhs
 RHS atom.
 

Static Public Attributes

static constexpr std::size_t M = dom_size_v<Codom>
 

Detailed Description

template<InequalityType IType, AtomLike LHS, typename RHS>
struct convex::Inequality< IType, LHS, RHS >

forward declaration of inequality

Inequality.

lhs <= rhs... 0 <= rhs - lhs (rplus) lhs >= rhs... 0 <= lhs - rhs (rplus) lhs == rhs... affine equality row lhs - rhs = 0

Definition at line 22 of file inequality.hpp.

Member Typedef Documentation

◆ Codom

template<InequalityType IType, AtomLike LHS, typename RHS >
using convex::Inequality< IType, LHS, RHS >::Codom = meta_codom_t<Meta>

Definition at line 26 of file inequality.hpp.

◆ Domain

template<InequalityType IType, AtomLike LHS, typename RHS >
using convex::Inequality< IType, LHS, RHS >::Domain = meta_dom_t<Meta>

Definition at line 25 of file inequality.hpp.

◆ Meta

template<InequalityType IType, AtomLike LHS, typename RHS >
using convex::Inequality< IType, LHS, RHS >::Meta = atom_meta_t<LHS>

extract alias & types from base

Definition at line 24 of file inequality.hpp.

◆ Point

template<InequalityType IType, AtomLike LHS, typename RHS >
using convex::Inequality< IType, LHS, RHS >::Point = dom_point_t<Domain>

Definition at line 28 of file inequality.hpp.

◆ T

template<InequalityType IType, AtomLike LHS, typename RHS >
using convex::Inequality< IType, LHS, RHS >::T = dom_type_t<Domain>

Definition at line 27 of file inequality.hpp.

Constructor & Destructor Documentation

◆ Inequality()

template<InequalityType IType, AtomLike LHS, typename RHS >
constexpr convex::Inequality< IType, LHS, RHS >::Inequality ( const LHS &  lhs_in,
const RHS &  rhs_in 
)
inlineexplicitconstexpr

CTOR.

Parameters
lhs(Atom / Scalar)
rhs(Atom / Scalar)

Definition at line 40 of file inequality.hpp.

Member Function Documentation

◆ canonicalize()

template<InequalityType IType, AtomLike LHS, typename RHS >
template<AtomType Type, conic::BuilderLike Builder>
constexpr auto convex::Inequality< IType, LHS, RHS >::canonicalize ( const Builder &  builder) const
inlineconstexpr

canonicalize

Follows DCP convention: LEQ: lhs - rhs <= 0, encoded as 0 <= rhs - lhs in the nonnegative cone GEQ: lhs - rhs >= 0, encoded directly in the nonnegative cone -> Works directly on cone map F & g

EQ: lhs - rhs == 0 (i.e., convex - (concave)) -> Works directly on A & b affine equality map

Parameters
builder
Returns
new builder

Definition at line 59 of file inequality.hpp.

References convex::dom_size_v, convex::GEQ, convex::LEQ, convex::Inequality< IType, LHS, RHS >::lhs, convex::Inequality< IType, LHS, RHS >::M, convex::PSD, and convex::Inequality< IType, LHS, RHS >::rhs.

Member Data Documentation

◆ lhs

template<InequalityType IType, AtomLike LHS, typename RHS >
LHS convex::Inequality< IType, LHS, RHS >::lhs

member vars

LHS atom

Definition at line 226 of file inequality.hpp.

Referenced by convex::Inequality< IType, LHS, RHS >::canonicalize().

◆ M

template<InequalityType IType, AtomLike LHS, typename RHS >
constexpr std::size_t convex::Inequality< IType, LHS, RHS >::M = dom_size_v<Codom>
staticconstexpr

Definition at line 29 of file inequality.hpp.

Referenced by convex::Inequality< IType, LHS, RHS >::canonicalize().

◆ rhs

template<InequalityType IType, AtomLike LHS, typename RHS >
RHS convex::Inequality< IType, LHS, RHS >::rhs

RHS atom.

Definition at line 227 of file inequality.hpp.

Referenced by convex::Inequality< IType, LHS, RHS >::canonicalize().


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