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

forward declaration of set intersection operator. More...

#include <intersection.hpp>

Inheritance diagram for convex::Intersection< Meta, Cs >:
[legend]

Public Types

using BaseT = Atom< Meta, Intersection< Meta, Cs... >, Cs... >
 alias to extract base type
 
- Public Types inherited from convex::Atom< Meta, Intersection< Meta, Cs... >, Cs... >
using Domain = meta_dom_t< Meta >
 Atom input domain.
 
using Codomain = meta_codom_t< Meta >
 Atom output codomain.
 
using ChildrenT = std::tuple< atom_decay_t< Cs >... >
 Tuple of decayed child atom types.
 
using T = dom_type_t< Domain >
 Scalar field for the atom domain.
 
using PointT = dom_point_t< Domain >
 Point type accepted by the atom domain.
 

Public Member Functions

constexpr Intersection (const Cs... cs)
 CTOR.
 
constexpr Intersection (const std::tuple< Cs... > &cs)
 CTOR.
 
template<AtomType Type, conic::BuilderLike Builder>
constexpr auto canonicalize_impl (const Builder &builder) const
 canonicalize impl
 
constexpr bool contains (const PointT &x) const
 contains
 
- Public Member Functions inherited from convex::Atom< Meta, Intersection< Meta, Cs... >, Cs... >
constexpr Atom ()
 Construct a leaf atom with no children.
 
constexpr Atom (ChildrenT child_in)
 Construct an atom with normalized children.
 
constexpr void validate_fn_domain (const auto &child) const
 Validate DCP composition for a function child.
 
constexpr void validate_domain () const
 Validate child domains, signs, curvature, and composition rules.
 
constexpr auto canonicalize (const Builder &builder) const
 Dispatch canonicalization to the derived atom.
 
constexpr const Intersection< Meta, Cs... > & self () const
 Return this object as the CRTP-derived atom type.
 

Additional Inherited Members

- Public Attributes inherited from convex::Atom< Meta, Intersection< Meta, Cs... >, Cs... >
ChildrenT children
 Tuple of normalized child atoms.
 
- Static Public Attributes inherited from convex::Atom< Meta, Intersection< Meta, Cs... >, Cs... >
static constexpr std::size_t N
 Domain dimension.
 
static constexpr std::size_t M
 Codomain dimension.
 
static constexpr CurvatureType Curvature
 Curvature declared by atom metadata.
 
static constexpr VarType DomSign
 Domain sign declared by atom metadata.
 
static constexpr VarType CodomSign
 Codomain sign declared by atom metadata.
 

Detailed Description

template<typename Meta, typename... Cs>
struct convex::Intersection< Meta, Cs >

forward declaration of set intersection operator.

Intersection.

Set intersection convex op

Definition at line 43 of file intersection.hpp.

Member Typedef Documentation

◆ BaseT

template<typename Meta , typename... Cs>
using convex::Intersection< Meta, Cs >::BaseT = Atom<Meta, Intersection<Meta, Cs...>, Cs...>

alias to extract base type

Definition at line 45 of file intersection.hpp.

Constructor & Destructor Documentation

◆ Intersection() [1/2]

template<typename Meta , typename... Cs>
constexpr convex::Intersection< Meta, Cs >::Intersection ( const Cs...  cs)
inlineexplicitconstexpr

CTOR.

Parameters
childrenparameter pack

Definition at line 54 of file intersection.hpp.

◆ Intersection() [2/2]

template<typename Meta , typename... Cs>
constexpr convex::Intersection< Meta, Cs >::Intersection ( const std::tuple< Cs... > &  cs)
inlineexplicitconstexpr

CTOR.

Parameters
tupleof children

Definition at line 62 of file intersection.hpp.

Member Function Documentation

◆ canonicalize_impl()

template<typename Meta , typename... Cs>
template<AtomType Type, conic::BuilderLike Builder>
constexpr auto convex::Intersection< Meta, Cs >::canonicalize_impl ( const Builder &  builder) const
inlineconstexpr

canonicalize impl

Parameters
builder
Returns
new builder

Definition at line 72 of file intersection.hpp.

References convex::CAP, convex::Atom< Meta, Intersection< Meta, Cs... >, Cs... >::children, convex::dom_size_v, convex::SET, and convex::tuple_fold_cap().

◆ contains()

template<typename Meta , typename... Cs>
constexpr bool convex::Intersection< Meta, Cs >::contains ( const PointT &  x) const
inlineconstexpr

contains

Parameters
pointx in intersection
Returns
T/F

Definition at line 88 of file intersection.hpp.

References convex::Atom< Meta, Intersection< Meta, Cs... >, Cs... >::children, and convex::dom_size_v.


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