LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Types | Public Member Functions | Static Public Member Functions | List of all members
lsst::geom::polynomials::PackedIndexRange< packing > Class Template Reference

A specialized iterator range class for PackedIndexIterator, providing size calculation, comparison, and range-based for support. More...

#include <PackedIndex.h>

Public Types

using iterator = PackedIndexIterator< packing >
 
using const_iterator = iterator
 
using value_type = typename iterator::value_type
 
using reference = typename iterator::reference
 
using pointer = typename iterator::pointer
 
using difference_type = typename iterator::difference_type
 
using size_type = std::size_t
 

Public Member Functions

constexpr PackedIndexRange (iterator first, iterator last) noexcept
 Construct from begin and end iterators. More...
 
constexpr iterator begin () const noexcept
 Return an iterator to the start of the range. More...
 
constexpr iterator cbegin () const noexcept
 Return an iterator to the start of the range. More...
 
constexpr iterator end () const noexcept
 Return an iterator to one past the end of the range. More...
 
constexpr iterator cend () const noexcept
 Return an iterator to one past the end of the range. More...
 
constexpr std::size_t size () const noexcept
 Return the number of elements in the flattened expansion. More...
 
constexpr bool empty () const noexcept
 Return true if the number of elements in the flattened expansion is zero. More...
 
constexpr bool operator== (PackedIndexRange const &other) const noexcept
 Equality comparison. More...
 
constexpr bool operator!= (PackedIndexRange const &other) const noexcept
 Inequality comparison. More...
 

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. More...
 
static constexpr std::size_t computeSize (std::size_t order) noexcept
 Return the flattened size of an expansion with the given maximum order (inclusive). More...
 
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. More...
 

Detailed Description

template<PackingOrder packing>
class lsst::geom::polynomials::PackedIndexRange< packing >

A specialized iterator range class for PackedIndexIterator, providing size calculation, comparison, and range-based for support.

See also
PackedIndexIterator for information on the packing algorithm.

Definition at line 248 of file PackedIndex.h.

Member Typedef Documentation

◆ const_iterator

template<PackingOrder packing>
using lsst::geom::polynomials::PackedIndexRange< packing >::const_iterator = iterator

Definition at line 252 of file PackedIndex.h.

◆ difference_type

template<PackingOrder packing>
using lsst::geom::polynomials::PackedIndexRange< packing >::difference_type = typename iterator::difference_type

Definition at line 256 of file PackedIndex.h.

◆ iterator

template<PackingOrder packing>
using lsst::geom::polynomials::PackedIndexRange< packing >::iterator = PackedIndexIterator<packing>

Definition at line 251 of file PackedIndex.h.

◆ pointer

template<PackingOrder packing>
using lsst::geom::polynomials::PackedIndexRange< packing >::pointer = typename iterator::pointer

Definition at line 255 of file PackedIndex.h.

◆ reference

template<PackingOrder packing>
using lsst::geom::polynomials::PackedIndexRange< packing >::reference = typename iterator::reference

Definition at line 254 of file PackedIndex.h.

◆ size_type

template<PackingOrder packing>
using lsst::geom::polynomials::PackedIndexRange< packing >::size_type = std::size_t

Definition at line 257 of file PackedIndex.h.

◆ value_type

template<PackingOrder packing>
using lsst::geom::polynomials::PackedIndexRange< packing >::value_type = typename iterator::value_type

Definition at line 253 of file PackedIndex.h.

Constructor & Destructor Documentation

◆ PackedIndexRange()

template<PackingOrder packing>
constexpr lsst::geom::polynomials::PackedIndexRange< packing >::PackedIndexRange ( iterator  first,
iterator  last 
)
inlineconstexprnoexcept

Construct from begin and end iterators.

Definition at line 275 of file PackedIndex.h.

275  :
276  _begin(first),
277  _end(last)
278  {}

Member Function Documentation

◆ begin()

template<PackingOrder packing>
constexpr iterator lsst::geom::polynomials::PackedIndexRange< packing >::begin ( ) const
inlineconstexprnoexcept

Return an iterator to the start of the range.

Definition at line 281 of file PackedIndex.h.

281 { return _begin; }

◆ cbegin()

template<PackingOrder packing>
constexpr iterator lsst::geom::polynomials::PackedIndexRange< packing >::cbegin ( ) const
inlineconstexprnoexcept

Return an iterator to the start of the range.

Definition at line 284 of file PackedIndex.h.

284 { return _begin; }

◆ cend()

template<PackingOrder packing>
constexpr iterator lsst::geom::polynomials::PackedIndexRange< packing >::cend ( ) const
inlineconstexprnoexcept

Return an iterator to one past the end of the range.

Definition at line 290 of file PackedIndex.h.

290 { return _end; }

◆ computeIndex()

template<PackingOrder packing>
static constexpr std::size_t lsst::geom::polynomials::PackedIndexRange< packing >::computeIndex ( std::size_t  nx,
std::size_t  ny 
)
inlinestaticconstexprnoexcept

Return the flattened index for the element with the given x and y orders.

Definition at line 270 of file PackedIndex.h.

270  {
271  return iterator::computeIndex(nx, ny);
272  }
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.
Definition: PackedIndex.h:185

◆ computeOffset()

template<PackingOrder packing>
static constexpr std::size_t lsst::geom::polynomials::PackedIndexRange< packing >::computeOffset ( std::size_t  order)
inlinestaticconstexprnoexcept

Return the flattened offset to the start of the given order.

Definition at line 260 of file PackedIndex.h.

260  {
262  }
static constexpr std::size_t computeOffset(std::size_t order) noexcept
Return the flattened offset to the start of the given order.
Definition: PackedIndex.h:175
table::Key< int > order

◆ computeSize()

template<PackingOrder packing>
static constexpr std::size_t lsst::geom::polynomials::PackedIndexRange< packing >::computeSize ( std::size_t  order)
inlinestaticconstexprnoexcept

Return the flattened size of an expansion with the given maximum order (inclusive).

Definition at line 265 of file PackedIndex.h.

265  {
267  }
static constexpr std::size_t computeSize(std::size_t order) noexcept
Return the flattened size of an expansion with the given maximum order (inclusive).
Definition: PackedIndex.h:180

◆ empty()

template<PackingOrder packing>
constexpr bool lsst::geom::polynomials::PackedIndexRange< packing >::empty ( ) const
inlineconstexprnoexcept

Return true if the number of elements in the flattened expansion is zero.

Definition at line 296 of file PackedIndex.h.

296 { return size() == 0u; }
constexpr std::size_t size() const noexcept
Return the number of elements in the flattened expansion.
Definition: PackedIndex.h:293

◆ end()

template<PackingOrder packing>
constexpr iterator lsst::geom::polynomials::PackedIndexRange< packing >::end ( ) const
inlineconstexprnoexcept

Return an iterator to one past the end of the range.

Definition at line 287 of file PackedIndex.h.

287 { return _end; }

◆ operator!=()

template<PackingOrder packing>
constexpr bool lsst::geom::polynomials::PackedIndexRange< packing >::operator!= ( PackedIndexRange< packing > const &  other) const
inlineconstexprnoexcept

Inequality comparison.

Definition at line 304 of file PackedIndex.h.

304  {
305  return !(*this == other);
306  }

◆ operator==()

template<PackingOrder packing>
constexpr bool lsst::geom::polynomials::PackedIndexRange< packing >::operator== ( PackedIndexRange< packing > const &  other) const
inlineconstexprnoexcept

Equality comparison.

Definition at line 299 of file PackedIndex.h.

299  {
300  return _begin == other._begin && _end == other._end;
301  }

◆ size()

template<PackingOrder packing>
constexpr std::size_t lsst::geom::polynomials::PackedIndexRange< packing >::size ( ) const
inlineconstexprnoexcept

Return the number of elements in the flattened expansion.

Definition at line 293 of file PackedIndex.h.

293 { return _end->flat - _begin->flat; }

The documentation for this class was generated from the following file: