|
akreon-convex
Typed convex modeling, conic canonicalization, and primal-dual optimization in C++26.
|
#include <cstddef>#include <cstdint>#include <limits>#include <tuple>#include <type_traits>#include <utility>#include "akreon/convex/cone_traits.hpp"#include "akreon/convex/convex_traits.hpp"Go to the source code of this file.
Classes | |
| struct | convex::CanonicalNodeRecord |
| Structural atom emitted during canonicalization. More... | |
| struct | convex::CanonicalConeRecord |
| Cone slice emitted by one canonical trace node. More... | |
| struct | convex::CanonicalEqualityRecord |
| Equality-row slice emitted by one canonical trace node. More... | |
| struct | convex::CanonicalTrace< NodeRecords, ConeRecords, EqualityRecords > |
| Compile-time canonicalization trace. More... | |
| struct | convex::canonical_trace_traits< CanonicalTrace< NodeTuple, ConeTuple, EqualityTuple > > |
| struct | convex::canonical_cone_kind< Cone > |
| struct | convex::canonical_cone_kind< conic::NonnegOrthantCone< Vec > > |
| struct | convex::canonical_cone_kind< conic::SecondOrderCone< Vec > > |
| struct | convex::canonical_cone_kind< conic::PositiveSemidefiniteCone< Vec, Dim > > |
| struct | convex::canonical_cone_kind< conic::ExpCone< Vec > > |
| struct | convex::canonical_cone_kind< conic::PowerCone< Vec > > |
Namespaces | |
| namespace | convex |
Typedefs | |
| using | convex::EmptyCanonicalTrace = CanonicalTrace<> |
| template<typename Trace > | |
| using | convex::canonical_trace_nodes_t = typename canonical_trace_traits< linalg::remove_cvref_t< Trace > >::Nodes |
| template<typename Trace > | |
| using | convex::canonical_trace_cones_t = typename canonical_trace_traits< linalg::remove_cvref_t< Trace > >::Cones |
| template<typename Trace > | |
| using | convex::canonical_trace_equalities_t = typename canonical_trace_traits< linalg::remove_cvref_t< Trace > >::Equalities |
Enumerations | |
| enum struct | convex::CanonicalConeKind : uint8_t { convex::NONNEG_ORTHANT = 0 , convex::SECOND_ORDER = 1 , convex::POSITIVE_SEMIDEFINITE = 2 , convex::EXP = 3 , convex::POWER = 4 , convex::UNKNOWN = 255 } |
| Cone family emitted into the global cone block. More... | |
Functions | |
| template<typename ConeTuple , std::size_t Index> | |
| consteval std::size_t | convex::cone_tuple_offset_before_v () |
| template<typename Trace , typename NodeRecords , typename ConeRecords , typename EqualityRecords > | |
| constexpr auto | convex::extend_canonical_trace (const Trace &trace, const NodeRecords &nodes, const ConeRecords &cones, const EqualityRecords &equalities) |
| Extends canonical trace by tuple concatenation. | |
| template<typename ConeTuple > | |
| constexpr auto | convex::make_canonical_cone_records (std::size_t node_id, std::size_t global_cone_start, std::size_t cone_offset_start) |
| Make canonical cone records for a node-emitted tuple of cones. | |
Variables | |
| constexpr std::size_t | convex::canonical_no_parent |
| Sentinel used when a canonical node does not have a parent node. | |
| template<typename Trace > | |
| constexpr std::size_t | convex::canonical_trace_num_nodes_v |
| template<typename Trace > | |
| constexpr std::size_t | convex::canonical_trace_num_cones_v |
| template<typename Trace > | |
| constexpr std::size_t | convex::canonical_trace_num_equalities_v |
| template<typename Cone > | |
| constexpr CanonicalConeKind | convex::canonical_cone_kind_v |