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

ConvexProblem. More...

#include <convex_problem.hpp>

Public Types

using T = linalg::space_type_t< conic::builder_dom_t< Builder > >
 alias for scalar type
 

Public Member Functions

constexpr ConvexProblem (const Builder &builder_in)
 CTOR.
 
template<AtomLike Atom>
constexpr auto in_set (const Atom &atom) const
 in set constraint
 
template<InequalityType IType, AtomLike LHS, typename RHS >
constexpr auto add_constraint (const Inequality< IType, LHS, RHS > &ineq) const
 add ineq constraint
 
constexpr auto feasibility () const
 feasibility
 
template<AtomLike Atom>
constexpr auto minimize (const Atom &atom) const
 minimize
 
template<AtomLike Atom>
constexpr auto maximize (const Atom &atom) const
 maximize
 
constexpr bool validate () const
 validate
 
constexpr auto linear_objective () const
 linear objective
 
constexpr auto constraint_map () const
 constraint map (canonical conic form) [ F; g ]
 
constexpr auto constraint_cones () const
 cones
 
constexpr auto equality_map () const
 affine equality map [ A; b ]
 
constexpr auto canonical_trace () const
 Structural trace of canonical rows emitted during canonicalization.
 

Public Attributes

Builder builder
 member var
 

Detailed Description

template<conic::BuilderLike Builder, StageType Stage>
struct convex::ConvexProblem< Builder, Stage >

ConvexProblem.

forward declaration of convex problem

min c^T z s.t. F z + g in K

transformed to a fully cone problem min c^T x s.t. x = F z + g x in K = K1 x K2 ... Kn

The objective c pushed forward through linear functional c_x when x is feasible: c^T z = <c_x, x> s.t. { x | exists z, F z + g = x }

Definition at line 42 of file convex_problem.hpp.

Member Typedef Documentation

◆ T

template<conic::BuilderLike Builder, StageType Stage>
using convex::ConvexProblem< Builder, Stage >::T = linalg::space_type_t<conic::builder_dom_t<Builder> >

alias for scalar type

Definition at line 44 of file convex_problem.hpp.

Constructor & Destructor Documentation

◆ ConvexProblem()

template<conic::BuilderLike Builder, StageType Stage>
constexpr convex::ConvexProblem< Builder, Stage >::ConvexProblem ( const Builder &  builder_in)
inlineexplicitconstexpr

CTOR.

Parameters
builder

Definition at line 51 of file convex_problem.hpp.

Member Function Documentation

◆ add_constraint()

template<conic::BuilderLike Builder, StageType Stage>
template<InequalityType IType, AtomLike LHS, typename RHS >
constexpr auto convex::ConvexProblem< Builder, Stage >::add_constraint ( const Inequality< IType, LHS, RHS > &  ineq) const
inlineconstexpr

add ineq constraint

Parameters
ineq(Inequality)
Returns
new convex prob

Definition at line 83 of file convex_problem.hpp.

References convex::ConvexProblem< Builder, Stage >::builder, and convex::dom_size_v.

◆ canonical_trace()

template<conic::BuilderLike Builder, StageType Stage>
constexpr auto convex::ConvexProblem< Builder, Stage >::canonical_trace ( ) const
inlineconstexpr

Structural trace of canonical rows emitted during canonicalization.

Cone records are aligned with constraint_map() rows and equality records are aligned with equality_map() rows. The trace is intentionally structural: presentation layers can interpret lineage without changing the solver's numeric result contract.

Returns
canonical trace

Definition at line 275 of file convex_problem.hpp.

References convex::ConvexProblem< Builder, Stage >::builder.

◆ constraint_cones()

template<conic::BuilderLike Builder, StageType Stage>
constexpr auto convex::ConvexProblem< Builder, Stage >::constraint_cones ( ) const
inlineconstexpr

cones

Returns
tuple of cones

Definition at line 246 of file convex_problem.hpp.

References convex::ConvexProblem< Builder, Stage >::builder.

◆ constraint_map()

template<conic::BuilderLike Builder, StageType Stage>
constexpr auto convex::ConvexProblem< Builder, Stage >::constraint_map ( ) const
inlineconstexpr

constraint map (canonical conic form) [ F; g ]

F z + g

Returns
conic constraint map

Definition at line 235 of file convex_problem.hpp.

References convex::ConvexProblem< Builder, Stage >::builder.

◆ equality_map()

template<conic::BuilderLike Builder, StageType Stage>
constexpr auto convex::ConvexProblem< Builder, Stage >::equality_map ( ) const
inlineconstexpr

affine equality map [ A; b ]

A z = b

Returns
affine equality map

Definition at line 259 of file convex_problem.hpp.

References convex::ConvexProblem< Builder, Stage >::builder.

◆ feasibility()

template<conic::BuilderLike Builder, StageType Stage>
constexpr auto convex::ConvexProblem< Builder, Stage >::feasibility ( ) const
inlineconstexpr

feasibility

Returns
problem set

Definition at line 94 of file convex_problem.hpp.

References convex::ConvexProblem< Builder, Stage >::builder, and convex::dom_size_v.

◆ in_set()

template<conic::BuilderLike Builder, StageType Stage>
template<AtomLike Atom>
constexpr auto convex::ConvexProblem< Builder, Stage >::in_set ( const Atom &  atom) const
inlineconstexpr

in set constraint

(ex) A x = b is an affine subspace in set constraint

Parameters
atom(set)
Returns
new convex prob

Definition at line 64 of file convex_problem.hpp.

References convex::ConvexProblem< Builder, Stage >::builder, and convex::dom_size_v.

◆ linear_objective()

template<conic::BuilderLike Builder, StageType Stage>
constexpr auto convex::ConvexProblem< Builder, Stage >::linear_objective ( ) const
inlineconstexpr

linear objective

min c^T z

Returns
c

Definition at line 222 of file convex_problem.hpp.

References convex::ConvexProblem< Builder, Stage >::builder.

◆ maximize()

template<conic::BuilderLike Builder, StageType Stage>
template<AtomLike Atom>
constexpr auto convex::ConvexProblem< Builder, Stage >::maximize ( const Atom &  atom) const
inlineconstexpr

maximize

Parameters
atom
Returns
new problem

Definition at line 187 of file convex_problem.hpp.

References convex::CONVEX, convex::dom_size_v, and convex::ConvexProblem< Builder, Stage >::minimize().

◆ minimize()

template<conic::BuilderLike Builder, StageType Stage>
template<AtomLike Atom>
constexpr auto convex::ConvexProblem< Builder, Stage >::minimize ( const Atom &  atom) const
inlineconstexpr

◆ validate()

template<conic::BuilderLike Builder, StageType Stage>
constexpr bool convex::ConvexProblem< Builder, Stage >::validate ( ) const
inlineconstexpr

validate

Returns
bool

Definition at line 213 of file convex_problem.hpp.

References convex::ConvexProblem< Builder, Stage >::builder.

Member Data Documentation

◆ builder


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