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
Classes | Functions
lsst::meas::astrom::detail Namespace Reference

Classes

class  BinomialMatrix
 A class that computes binomial coefficients up to a certain power. More...
 

Functions

int computePackedOffset (int order)
 Compute the index of the first coefficient with the given order in a packed 2-d polynomial coefficient array. More...
 
int computePackedSize (int order)
 Compute this size of a packed 2-d polynomial coefficient array. More...
 
void computePowers (Eigen::VectorXd &r, double x)
 Fill an array with integer powers of x, so \($r[n] == r^n\). More...
 
Eigen::VectorXd computePowers (double x, int n)
 Return an array with integer powers of x, so \($r[n] == r^n\). More...
 

Function Documentation

◆ computePackedOffset()

int lsst::meas::astrom::detail::computePackedOffset ( int  order)
inline

Compute the index of the first coefficient with the given order in a packed 2-d polynomial coefficient array.

This defines the ordering as

[(0,0), (0,1), (1,0), (0,2), (1,1), (2,0), ...]

(or the same with indices swapped).

Definition at line 45 of file polynomialUtils.h.

45 { return (order * (order + 1)) / 2; }
table::Key< int > order

◆ computePackedSize()

int lsst::meas::astrom::detail::computePackedSize ( int  order)
inline

Compute this size of a packed 2-d polynomial coefficient array.

Definition at line 50 of file polynomialUtils.h.

50 { return computePackedOffset(order + 1); }
int computePackedOffset(int order)
Compute the index of the first coefficient with the given order in a packed 2-d polynomial coefficien...

◆ computePowers() [1/2]

Eigen::VectorXd lsst::meas::astrom::detail::computePowers ( double  x,
int  n 
)

Return an array with integer powers of x, so \($r[n] == r^n\).

When multiple powers are needed, this should be signficantly faster than repeated calls to std::pow().

Definition at line 40 of file polynomialUtils.cc.

40  {
41  Eigen::VectorXd r(n + 1);
42  computePowers(r, x);
43  return r;
44 }
double x
void computePowers(Eigen::VectorXd &r, double x)
Fill an array with integer powers of x, so .

◆ computePowers() [2/2]

void lsst::meas::astrom::detail::computePowers ( Eigen::VectorXd &  r,
double  x 
)

Fill an array with integer powers of x, so \($r[n] == r^n\).

When multiple powers are needed, this should be signficantly faster than repeated calls to std::pow().

Definition at line 33 of file polynomialUtils.cc.

33  {
34  r[0] = 1.0;
35  for (int i = 1; i < r.size(); ++i) {
36  r[i] = r[i - 1] * x;
37  }
38 }