|
akreon-convex
Typed convex modeling, conic canonicalization, and primal-dual optimization in C++26.
|
#include "akreon/linalg/affine/affine_traits.hpp"#include "cone_traits.hpp"#include "akreon/linalg/norms/norm_traits.hpp"Go to the source code of this file.
Namespaces | |
| namespace | convex |
Concepts | |
| concept | convex::ProblemLike |
| ProblemLike Concept. | |
| concept | convex::AtomLike |
| Concept for any convex atom node in the expression tree. | |
Typedefs | |
| template<typename T > | |
| using | convex::LiftedVarMat = linalg::RowVector< T, 1 > |
| alias for lifted var map | |
| template<typename T > | |
| using | convex::LiftedVarBias = linalg::Vector< T, 1 > |
| alias for lifted var map | |
| template<typename Dom > | |
| using | convex::dom_space_t = typename dom_traits< linalg::remove_cvref_t< Dom > >::Space |
| template<typename Dom > | |
| using | convex::dom_type_t = typename dom_traits< linalg::remove_cvref_t< Dom > >::T |
| template<typename Dom > | |
| using | convex::dom_point_t = typename dom_traits< linalg::remove_cvref_t< Dom > >::Point |
| template<typename Meta > | |
| using | convex::meta_dom_t = typename meta_traits< linalg::remove_cvref_t< Meta > >::Domain |
| template<typename Meta > | |
| using | convex::meta_codom_t = typename meta_traits< linalg::remove_cvref_t< Meta > >::Codomain |
| template<typename Prob > | |
| using | convex::prob_builder_t = typename prob_traits< linalg::remove_cvref_t< Prob > >::BuilderT |
| builder type from prob | |
| template<linalg::RnSpace Dom> | |
| using | convex::SumDom = ConvexDomain< Dom, VarType::FREE > |
| Domain alias for sum atom. | |
| template<linalg::RnSpace Codom> | |
| using | convex::SumCodom = ConvexDomain< Codom, VarType::FREE > |
| Codomain alias for sum atom (scalar). | |
| template<linalg::RnSpace Dom, linalg::RnSpace Codom> | |
| using | convex::SumMeta = ConvexAtomMeta< SumDom< Dom >, SumCodom< Codom >, CurvatureType::AFFINE > |
| Meta alias for sum atom. | |
| template<linalg::RnSpace Space> | |
| using | convex::IntersectionDom = ConvexDomain< Space, VarType::FREE > |
| Domain alias for intersection atom. | |
| template<linalg::RnSpace Space> | |
| using | convex::IntersectionCodom = IntersectionDom< Space > |
| Codomain alias for intersection atom. | |
| template<linalg::RnSpace Space> | |
| using | convex::IntersectionMeta = ConvexAtomMeta< IntersectionDom< Space >, IntersectionCodom< Space >, CurvatureType::CONVEX > |
| Meta alias for intersection atom. | |
| template<typename T > | |
| using | convex::atom_decay_t = linalg::remove_cvref_t< T > |
| normalize atom-facing types to a stable internal form. | |
| template<AtomLike Atom> | |
| using | convex::atom_meta_t = typename atom_traits< atom_decay_t< Atom > >::ConvexMeta |
| Extract metadata type from atom. | |
Enumerations | |
| enum struct | convex::AtomType : uint8_t { convex::VAR = 0 , convex::INDEX , convex::FN , convex::SET , convex::ADD , convex::CAP } |
| Atom category used by canonicalization and DCP checks. More... | |
| enum struct | convex::VarType : uint8_t { convex::FREE = 0 , convex::NONNEG , convex::NONPOS , convex::POS , convex::NEG , convex::PSD } |
| Domain/variable annotation attached to domains/codomains. More... | |
| enum struct | convex::CurvatureType : uint8_t { convex::AFFINE = 0 , convex::CONVEX , convex::CONCAVE } |
| Curvature annotation for atom codomain. More... | |
| enum struct | convex::MonotonicityType : uint8_t { convex::UNKNOWN = 0 , convex::NONDEC , convex::NONINC } |
| Monotonicity annotation for function atoms. More... | |
| enum struct | convex::InequalityType : uint8_t { convex::EQ = 0 , convex::LEQ , convex::GEQ } |
| InequalityType for inequality atom. More... | |
| enum struct | convex::StageType : uint8_t { convex::INIT = 0 , convex::IN_PROGRESS , convex::PROBLEM_SET } |
| Problem construction lifecycle stage. More... | |
| enum struct | convex::HalfspaceType : uint8_t { convex::LH = 0 , convex::UH } |
| simple enum to describe type of halfspace More... | |
| enum struct | convex::NormBallType : uint8_t { convex::L2 = 0 , convex::L1 , convex::Linf } |
| simple enum to describe ball type More... | |