LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
|
An iterator for traversing "packed" triangular 2-d series expansions, in which two 1-d expansions are truncated according to the sum of their orders and all values for one order are stored before any values of the subsequent order. More...
#include <PackedIndex.h>
Public Types | |
using | difference_type = std::ptrdiff_t |
using | value_type = Index2d |
using | pointer = Index2d const * |
using | reference = Index2d const & |
using | iterator_category = std::input_iterator_tag |
Public Member Functions | |
constexpr | PackedIndexIterator () noexcept |
Construct an iterator at the beginning of an expansion of any order. | |
constexpr | PackedIndexIterator (std::size_t nx, std::size_t ny) noexcept |
Construct an iterator pointing to the element with the given x and y orders. | |
constexpr reference | operator* () const noexcept |
Dereference the iterator, yielding a Index2d const reference. | |
constexpr pointer | operator-> () const noexcept |
Dereference the iterator, yielding a Index2d const pointer. | |
PackedIndexIterator & | operator++ () noexcept |
Move to the next element in the packed array and return the iterator. | |
PackedIndexIterator | operator++ (int) noexcept |
Move to the next element in the packed array and return a copy of the iterator before the move. | |
constexpr bool | operator== (PackedIndexIterator const &other) const noexcept |
Equality comparison. | |
constexpr bool | operator!= (PackedIndexIterator const &other) const noexcept |
Inequality comparison. | |
Static Public Member Functions | |
static constexpr std::size_t | computeOffset (std::size_t order) noexcept |
Return the flattened offset to the start of the given order. | |
static constexpr std::size_t | computeSize (std::size_t order) noexcept |
Return the flattened size of an expansion with the given maximum order (inclusive). | |
static constexpr std::size_t | computeIndex (std::size_t nx, std::size_t ny) noexcept |
Return the flattened index for the element with the given x and y orders. | |
static constexpr PackedIndexIterator | makeEnd (std::size_t order) noexcept |
Construct an iterator one past the end of an expansion with the given order. | |
An iterator for traversing "packed" triangular 2-d series expansions, in which two 1-d expansions are truncated according to the sum of their orders and all values for one order are stored before any values of the subsequent order.
PackedIndexIterator dereferences to Index2d. Typical usage is via a PackedIndexRange.
This packing ensures that the coefficients for an nth-order expansion are a contiguous subset of the coefficients for an (n+1)th-order expansion.
The packing within each order is set by the packing
template parameter.
PackedIndexIterator is an STL input iterator, not a forward iterator; incrementing the iterator invalidates all previously-dereferenced values.
Definition at line 164 of file PackedIndex.h.
using lsst::geom::polynomials::PackedIndexIterator< packing >::difference_type = std::ptrdiff_t |
Definition at line 168 of file PackedIndex.h.
using lsst::geom::polynomials::PackedIndexIterator< packing >::iterator_category = std::input_iterator_tag |
Definition at line 172 of file PackedIndex.h.
using lsst::geom::polynomials::PackedIndexIterator< packing >::pointer = Index2d const * |
Definition at line 170 of file PackedIndex.h.
using lsst::geom::polynomials::PackedIndexIterator< packing >::reference = Index2d const & |
Definition at line 171 of file PackedIndex.h.
using lsst::geom::polynomials::PackedIndexIterator< packing >::value_type = Index2d |
Definition at line 169 of file PackedIndex.h.
|
inlineconstexprnoexcept |
Construct an iterator at the beginning of an expansion of any order.
Definition at line 195 of file PackedIndex.h.
|
inlineconstexprnoexcept |
Construct an iterator pointing to the element with the given x and y orders.
Definition at line 198 of file PackedIndex.h.
|
inlinestaticconstexprnoexcept |
Return the flattened index for the element with the given x and y orders.
Definition at line 185 of file PackedIndex.h.
|
inlinestaticconstexprnoexcept |
Return the flattened offset to the start of the given order.
Definition at line 175 of file PackedIndex.h.
|
inlinestaticconstexprnoexcept |
Return the flattened size of an expansion with the given maximum order (inclusive).
Definition at line 180 of file PackedIndex.h.
|
inlinestaticconstexprnoexcept |
Construct an iterator one past the end of an expansion with the given order.
Definition at line 190 of file PackedIndex.h.
|
inlineconstexprnoexcept |
Inequality comparison.
Definition at line 228 of file PackedIndex.h.
|
inlineconstexprnoexcept |
Dereference the iterator, yielding a Index2d const reference.
Definition at line 203 of file PackedIndex.h.
|
inlinenoexcept |
Move to the next element in the packed array and return the iterator.
Definition at line 209 of file PackedIndex.h.
|
inlinenoexcept |
Move to the next element in the packed array and return a copy of the iterator before the move.
Definition at line 216 of file PackedIndex.h.
|
inlineconstexprnoexcept |
Dereference the iterator, yielding a Index2d const pointer.
Definition at line 206 of file PackedIndex.h.
|
inlineconstexprnoexcept |
Equality comparison.
Definition at line 223 of file PackedIndex.h.