8#include "akreon/linalg/affine/affine_map.hpp"
32template <affine::AffineMapLike CoordMap,
typename ConeTuple,
33 affine::AffineMapLike EqMap,
typename Trace =
EmptyTrace>
35 using Tuple = linalg::remove_cvref_t<ConeTuple>;
38 linalg::mat_rows_v<affine::affine_mat_t<CoordMap>>;
40 linalg::mat_cols_v<affine::affine_mat_t<CoordMap>>;
41 static constexpr std::size_t
cone_count = cone_tuple_num_cones_v<Tuple>;
43 cone_tuple_local_cone_dim_v<Tuple>;
45 linalg::mat_rows_v<affine::affine_mat_t<EqMap>>;
47 linalg::mat_cols_v<affine::affine_mat_t<EqMap>>;
57 const Tuple& cones_in,
58 const EqMap& eq_map_in)
76template <affine::AffineMapLike EqMap,
typename Trace = EmptyTrace>
79 linalg::mat_rows_v<affine::affine_mat_t<EqMap>>;
81 linalg::mat_cols_v<affine::affine_mat_t<EqMap>>;
96template <
typename CoordMap,
typename ConeTuple,
typename EqMap>
101template <
typename CoordMap,
typename ConeTuple,
typename EqMap,
typename Trace>
106template <
typename EqMap>
110template <
typename EqMap,
typename Trace>
115template <
typename Emission>
119template <affine::AffineMapLike CoordMap,
typename ConeTuple,
120 affine::AffineMapLike EqMap,
typename Trace>
127 static constexpr std::size_t LocalCoordRows =
129 static constexpr std::size_t LocalCoordCols =
131 static constexpr std::size_t NumCones =
133 static constexpr std::size_t LocalConeDim =
135 static constexpr std::size_t LocalEqRows =
137 static constexpr std::size_t LocalEqCols =
142template <affine::AffineMapLike EqMap,
typename Trace>
147 static constexpr std::size_t LocalEqRows =
149 static constexpr std::size_t LocalEqCols =
154template <
typename Emission>
156 { emission.local_coord_map };
157 { emission.local_cones };
158 { emission.local_eq_map };
163template <
typename Emission>
166 { emission.local_eq_map };
170template <
typename Emission>
172 linalg::remove_cvref_t<Emission>>::LocalCoordinateMap;
174template <
typename Emission>
178template <
typename Emission>
180 linalg::remove_cvref_t<Emission>>::LocalEqualityMap;
182template <
typename Emission>
186template <
typename Emission>
190template <
typename Emission>
194template <
typename Emission>
198template <
typename Emission>
202template <
typename Emission>
206template <
typename Emission>
210template <
typename Emission>
213template <
typename Emission>
216template <
typename Emission>
218 emission_local_coord_rows_v<Emission>;
220template <
typename Emission>
222 emission_local_coord_cols_v<Emission>;
224template <
typename Emission>
226 emission_local_cone_dim_v<Emission>;
228template <
typename Emission>
230 emission_local_eq_rows_v<Emission>;
232template <
typename Emission>
234 emission_local_eq_cols_v<Emission>;
Concept for fixed-size atom-local canonical emission bundles.
Concept for fixed-size atom-local equality emission bundles.
constexpr std::size_t emission_eq_rows_v
typename emission_traits< linalg::remove_cvref_t< Emission > >::Cones emission_cones_t
constexpr std::size_t emission_coord_rows_v
constexpr std::size_t emission_local_coord_rows_v
emission_local_coord_map_t< Emission > emission_coord_map_t
constexpr std::size_t emission_local_coord_cols_v
constexpr std::size_t emission_eq_cols_v
constexpr std::size_t emission_cone_dim_v
typename emission_traits< linalg::remove_cvref_t< Emission > >::LocalCoordinateMap emission_local_coord_map_t
constexpr std::size_t emission_local_eq_cols_v
typename emission_traits< linalg::remove_cvref_t< Emission > >::TraceT emission_trace_t
constexpr std::size_t emission_local_cone_dim_v
constexpr std::size_t emission_coord_cols_v
emission_local_eq_map_t< Emission > emission_eq_map_t
constexpr std::size_t emission_local_eq_rows_v
constexpr std::size_t emission_num_cones_v
typename emission_traits< linalg::remove_cvref_t< Emission > >::LocalEqualityMap emission_local_eq_map_t
CanonicalTrace<> EmptyCanonicalTrace
Atom-local canonical emission bundle.
constexpr LocalEmission(const CoordMap &coord_map_in, const Tuple &cones_in, const EqMap &eq_map_in)
CTOR.
EqMap local_eq_map
Local equality map.
static constexpr std::size_t local_coord_rows
CoordMap local_coord_map
public member vars
static constexpr std::size_t local_eq_rows
static constexpr std::size_t cone_count
static constexpr std::size_t local_cone_dim
static constexpr std::size_t local_coord_cols
linalg::remove_cvref_t< ConeTuple > Tuple
ConeTuple local_cones
Local cones in emission.
static constexpr std::size_t local_eq_cols
Atom-local equality emission bundle.
constexpr LocalEqualityEmission(const EqMap &eq_map_in)
EqMap local_eq_map
public member vars
static constexpr std::size_t local_eq_rows
static constexpr std::size_t local_eq_cols
CoordMap LocalCoordinateMap
Base traits for atom-local canonical emissions.
Compile-time canonicalization trace.