25#ifndef LSST_AFW_MATH_SHAPELETS_HERMITEEVALUATOR_H
26#define LSST_AFW_MATH_SHAPELETS_HERMITEEVALUATOR_H
33namespace lsst {
namespace shapelet {
66 int const getX()
const {
return _x; }
67 int const getY()
const {
return _y; }
96 int rowOrder,
int colOrder,
double a,
double b
99 int getOrder()
const {
return _xWorkspace.getSize<0>() - 1; }
106 Array1d const & target,
double x,
double y,
145 ndarray::Array<double const,1>
const & coeff,
double x,
double y,
146 double * dx = 0,
double * dy = 0
153 ndarray::Array<double const,1>
const & coeff,
geom::Point2D const & point,
154 double * dx = 0,
double * dy = 0
156 return sumEvaluation(coeff, point.getX(), point.getY(), dx, dy);
163 ndarray::Array<double const,1>
const & coeff,
geom::Extent2D const & point,
164 double * dx = 0,
double * dy = 0
166 return sumEvaluation(coeff, point.getX(), point.getY(), dx, dy);
172 double sumIntegration(ndarray::Array<double const,1>
const & coeff,
int xMoment=0,
int yMoment=0)
const;
178 ndarray::Array<double,1,1> _xWorkspace;
179 ndarray::Array<double,1,1> _yWorkspace;
180 ndarray::Array<double,1,1> _dxWorkspace;
181 ndarray::Array<double,1,1> _dyWorkspace;
Key< Flag > const & target
A class to evaluate HERMITE shapelet-related quantities.
double sumEvaluation(ndarray::Array< double const, 1 > const &coeff, geom::Extent2D const &point, double *dx=0, double *dy=0) const
Evaluate a simple unscaled shapelet expansion at the given point.
static Eigen::MatrixXd computeInnerProductMatrix(int rowOrder, int colOrder, double a, double b)
Fill a matrix with the function inner products of two HERMITE shapelet basis functions with different...
void fillEvaluation(Array1d const &target, geom::Extent2D const &point, Array1d const &dx=Array1d(), Array1d const &dy=Array1d()) const
Fill a vector whose dot product with a HERMITE coefficient vector evaluates a simple unscaled shapele...
double sumIntegration(ndarray::Array< double const, 1 > const &coeff, int xMoment=0, int yMoment=0) const
Integrate a simple unscaled shapelet expansion.
void fillEvaluation(Array1d const &target, double x, double y, Array1d const &dx=Array1d(), Array1d const &dy=Array1d()) const
Fill a vector whose dot product with a HERMITE coefficient vector evaluates a simple unscaled shapele...
double sumEvaluation(ndarray::Array< double const, 1 > const &coeff, double x, double y, double *dx=0, double *dy=0) const
Evaluate a simple unscaled shapelet expansion at the given point.
void fillEvaluation(Array1d const &target, geom::Point2D const &point, Array1d const &dx=Array1d(), Array1d const &dy=Array1d()) const
Fill a vector whose dot product with a HERMITE coefficient vector evaluates a simple unscaled shapele...
GaussHermiteEvaluator(int order)
double sumEvaluation(ndarray::Array< double const, 1 > const &coeff, geom::Point2D const &point, double *dx=0, double *dy=0) const
Evaluate a simple unscaled shapelet expansion at the given point.
void fillIntegration(Array1d const &target, int xMoment=0, int yMoment=0) const
Fill a vector whose dot product with a HERMITE coefficient vector integrates a simple unscaled shapel...
An iterator-like object to help in traversing "packed" shapelet or Hermite polynomial matrix or vecto...
static int const computeIndex(int x, int y)
PackedIndex(int const x, int const y)
static int const computeOffset(int order)
int const getOrder() const
PackedIndex & operator++()
int const getIndex() const
Constants, typedefs, and general-purpose functions for shapelets library.
ndarray::Array< double, 1 > Array1d
Typedef for a commonly-used array type.