24#ifndef LSST_AFW_MATH_ChebyshevBoundedField_h_INCLUDED
25#define LSST_AFW_MATH_ChebyshevBoundedField_h_INCLUDED
29#include "lsst/pex/config.h"
42 LSST_CONTROL_FIELD(
orderX,
int,
"maximum Chebyshev function order in x");
44 LSST_CONTROL_FIELD(
orderY,
int,
"maximum Chebyshev function order in y");
47 "if true, only include terms where the sum of the x and y order "
48 "is less than or equal to max(orderX, orderY)");
116 ndarray::Array<double const, 2, 2>
const&
coefficients);
135 ndarray::Array<double const, 1>
const&
x,
136 ndarray::Array<double const, 1>
const&
y,
137 ndarray::Array<double const, 1>
const&
z,
153 ndarray::Array<double const, 1>
const&
x,
154 ndarray::Array<double const, 1>
const&
y,
155 ndarray::Array<double const, 1>
const&
z,
156 ndarray::Array<double const, 1>
const& w,
172 template <
typename T>
202 double mean()
const override;
226 ndarray::Array<double const, 2, 2> _coefficients;
ndarray::Array< double const, 2, 2 > coefficients
A class to represent a 2-dimensional array of pixels.
An abstract base class for 2-d functions defined on an integer bounding boxes.
virtual double evaluate(lsst::geom::Point2D const &position) const =0
Evaluate the field at the given point.
A control object used when fitting ChebyshevBoundedField to data (see ChebyshevBoundedField::fit)
int computeSize() const
Return the number of nonzero coefficients in the Chebyshev function defined by this object.
bool triangular
"if true, only include terms where the sum of the x and y order " "is less than or equal to max(order...
int orderY
"maximum Chebyshev function order in y" ;
ChebyshevBoundedFieldControl()
int orderX
"maximum Chebyshev function order in x" ;
A BoundedField based on 2-d Chebyshev polynomials of the first kind.
ChebyshevBoundedField & operator=(ChebyshevBoundedField const &)=delete
static std::shared_ptr< ChebyshevBoundedField > fit(lsst::geom::Box2I const &bbox, ndarray::Array< double const, 1 > const &x, ndarray::Array< double const, 1 > const &y, ndarray::Array< double const, 1 > const &z, Control const &ctrl)
Fit a Chebyshev approximation to non-gridded data with equal weights.
std::shared_ptr< ChebyshevBoundedField > relocate(lsst::geom::Box2I const &bbox) const
Return a new ChebyshevBoundedField with domain set to the given bounding box.
bool operator==(BoundedField const &rhs) const override
BoundedFields (of the same sublcass) are equal if their bounding boxes and parameters are equal.
bool isPersistable() const noexcept override
ChebyshevBoundedField is always persistable.
ndarray::Array< double const, 2, 2 > getCoefficients() const
Return the coefficient matrix.
std::shared_ptr< BoundedField > operator*(double const scale) const override
Return a scaled BoundedField.
ChebyshevBoundedField(ChebyshevBoundedField &&)
ChebyshevBoundedFieldControl Control
void write(OutputArchiveHandle &handle) const override
Write the object to one or more catalogs.
std::string getPythonModule() const override
Return the fully-qualified Python module that should be imported to guarantee that its factory is reg...
double evaluate(lsst::geom::Point2D const &position) const override
Evaluate the field at the given point.
double mean() const override
Compute the mean of this function over its bounding-box.
~ChebyshevBoundedField() override
ChebyshevBoundedField & operator=(ChebyshevBoundedField &&)=delete
std::shared_ptr< ChebyshevBoundedField > truncate(Control const &ctrl) const
Return a new ChebyshevBoudedField with maximum orders set by the given control object.
ChebyshevBoundedField(ChebyshevBoundedField const &)
std::string getPersistenceName() const override
Return the unique name used to persist this object and look up its factory.
double integrate() const override
Compute the integral of this function over its bounding-box.
A CRTP facade class for subclasses of Persistable.
io::OutputArchiveHandle OutputArchiveHandle