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 Member Functions | Static Public Member Functions | List of all members
lsst::shapelet::PackedIndex Class Reference

An iterator-like object to help in traversing "packed" shapelet or Hermite polynomial matrix or vector dimensions. More...

#include <GaussHermiteEvaluator.h>

Public Member Functions

PackedIndexoperator++ ()
 
int const getOrder () const
 
int const getX () const
 
int const getY () const
 
int const getIndex () const
 
 PackedIndex ()
 
 PackedIndex (int const x, int const y)
 

Static Public Member Functions

static int const computeOffset (int order)
 
static int const computeIndex (int x, int y)
 

Detailed Description

An iterator-like object to help in traversing "packed" shapelet or Hermite polynomial matrix or vector dimensions.

A pair of indices (x,y) is mapped to the packed position i = (x+y)(x+y+1)/2 + x.

Typical usage is in a nested loop of the form:

for (PackedIndex i; i.getOrder() <= order; ++i) {
// utilize i
}
table::Key< int > order

Definition at line 48 of file GaussHermiteEvaluator.h.

Constructor & Destructor Documentation

◆ PackedIndex() [1/2]

lsst::shapelet::PackedIndex::PackedIndex ( )
inline

Definition at line 71 of file GaussHermiteEvaluator.h.

71 : _n(0), _i(0), _x(0), _y(0) {}

◆ PackedIndex() [2/2]

lsst::shapelet::PackedIndex::PackedIndex ( int const  x,
int const  y 
)
inline

Definition at line 72 of file GaussHermiteEvaluator.h.

72 : _n(x+y), _i(computeOffset(_n) + x), _x(x), _y(y) {}
double x
int y
Definition: SpanSet.cc:48
static int const computeOffset(int order)

Member Function Documentation

◆ computeIndex()

static int const lsst::shapelet::PackedIndex::computeIndex ( int  x,
int  y 
)
inlinestatic

Definition at line 52 of file GaussHermiteEvaluator.h.

52 { return computeOffset(x+y) + x; }

◆ computeOffset()

static int const lsst::shapelet::PackedIndex::computeOffset ( int  order)
inlinestatic

Definition at line 51 of file GaussHermiteEvaluator.h.

51 { return order*(order+1)/2; }

◆ getIndex()

int const lsst::shapelet::PackedIndex::getIndex ( ) const
inline

Definition at line 69 of file GaussHermiteEvaluator.h.

69 { return _i; }

◆ getOrder()

int const lsst::shapelet::PackedIndex::getOrder ( ) const
inline

Definition at line 65 of file GaussHermiteEvaluator.h.

65 { return _n; }

◆ getX()

int const lsst::shapelet::PackedIndex::getX ( ) const
inline

Definition at line 66 of file GaussHermiteEvaluator.h.

66 { return _x; }

◆ getY()

int const lsst::shapelet::PackedIndex::getY ( ) const
inline

Definition at line 67 of file GaussHermiteEvaluator.h.

67 { return _y; }

◆ operator++()

PackedIndex& lsst::shapelet::PackedIndex::operator++ ( )
inline

Definition at line 54 of file GaussHermiteEvaluator.h.

54  {
55  ++_i;
56  if (--_y < 0) {
57  _x = 0;
58  _y = ++_n;
59  } else {
60  ++_x;
61  }
62  return *this;
63  }

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