LSSTApplications
19.0.0-14-gb0260a2+72efe9b372,20.0.0+7927753e06,20.0.0+8829bf0056,20.0.0+995114c5d2,20.0.0+b6f4b2abd1,20.0.0+bddc4f4cbe,20.0.0-1-g253301a+8829bf0056,20.0.0-1-g2b7511a+0d71a2d77f,20.0.0-1-g5b95a8c+7461dd0434,20.0.0-12-g321c96ea+23efe4bbff,20.0.0-16-gfab17e72e+fdf35455f6,20.0.0-2-g0070d88+ba3ffc8f0b,20.0.0-2-g4dae9ad+ee58a624b3,20.0.0-2-g61b8584+5d3db074ba,20.0.0-2-gb780d76+d529cf1a41,20.0.0-2-ged6426c+226a441f5f,20.0.0-2-gf072044+8829bf0056,20.0.0-2-gf1f7952+ee58a624b3,20.0.0-20-geae50cf+e37fec0aee,20.0.0-25-g3dcad98+544a109665,20.0.0-25-g5eafb0f+ee58a624b3,20.0.0-27-g64178ef+f1f297b00a,20.0.0-3-g4cc78c6+e0676b0dc8,20.0.0-3-g8f21e14+4fd2c12c9a,20.0.0-3-gbd60e8c+187b78b4b8,20.0.0-3-gbecbe05+48431fa087,20.0.0-38-ge4adf513+a12e1f8e37,20.0.0-4-g97dc21a+544a109665,20.0.0-4-gb4befbc+087873070b,20.0.0-4-gf910f65+5d3db074ba,20.0.0-5-gdfe0fee+199202a608,20.0.0-5-gfbfe500+d529cf1a41,20.0.0-6-g64f541c+d529cf1a41,20.0.0-6-g9a5b7a1+a1cd37312e,20.0.0-68-ga3f3dda+5fca18c6a4,20.0.0-9-g4aef684+e18322736b,w.2020.45
LSSTDataManagementBasePackage
|
Go to the documentation of this file.
23 #ifndef LSST_SHAPELET_MatrixBuilder_h_INCLUDED
24 #define LSST_SHAPELET_MatrixBuilder_h_INCLUDED
32 namespace lsst {
namespace shapelet {
34 class MultiShapeletBasis;
71 ndarray::Array<T const,1,1>
const &
x,
72 ndarray::Array<T const,1,1>
const &
y,
86 ndarray::Array<T const,1,1>
const &
x,
87 ndarray::Array<T const,1,1>
const &
y,
100 ndarray::Array<T const,1,1>
const &
x,
101 ndarray::Array<T const,1,1>
const &
y,
115 ndarray::Array<T const,1,1>
const &
x,
116 ndarray::Array<T const,1,1>
const &
y,
139 ndarray::Array<T,2,-1>
const & output,
151 (*this)(output, ellipse);
187 template <
typename T>
191 typedef Eigen::Map< Eigen::Array<T,Eigen::Dynamic,Eigen::Dynamic> >
Matrix;
192 typedef Eigen::Map< Eigen::Array<T,Eigen::Dynamic,1> >
Vector;
204 _current(
other._current),
206 _manager(
other._manager)
224 ndarray::Manager::Ptr
getManager()
const {
return _manager; }
234 ndarray::Manager::Ptr _manager;
264 template <
typename T>
265 class MatrixBuilderFactory {
281 ndarray::Array<T const,1,1>
const &
x,
282 ndarray::Array<T const,1,1>
const &
y,
296 ndarray::Array<T const,1,1>
const &
x,
297 ndarray::Array<T const,1,1>
const &
y,
310 ndarray::Array<T const,1,1>
const &
x,
311 ndarray::Array<T const,1,1>
const &
y,
325 ndarray::Array<T const,1,1>
const &
x,
326 ndarray::Array<T const,1,1>
const &
y,
352 #endif // !LSST_SHAPELET_MatrixBuilder_h_INCLUDED
Eigen::Map< Eigen::Array< T, Eigen::Dynamic, Eigen::Dynamic > > Matrix
Workspace matrix type.
MatrixBuilderFactory< T > Factory
Factory type associated with this builder.
MatrixBuilder(ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, int order)
Create a MatrixBuilder that evaluates a simple non-compound shapelet basis.
MatrixBuilder(ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, MultiShapeletBasis const &basis, MultiShapeletFunction const &psf)
Create a MatrixBuilder that evaluates a MultiShapeletBasis object after convolving it with a MultiSha...
Eigen::Map< Eigen::Array< T, Eigen::Dynamic, 1 > > Vector
Workspace vector type.
MatrixBuilderFactory(ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, int order)
Create a MatrixBuilder that evaluates a simple non-compound shapelet basis.
MatrixBuilderWorkspace< T > Workspace
Workspace type associated with this builder.
int getRemaining() const
Return the size (in units of sizeof(T)) of the unused memory in the workspace.
Class that evaluates a (multi-)shapelet basis at predefined points.
MatrixBuilder< T > operator()(Workspace &workspace) const
Return a new MatrixBuilder using the given workspace.
A basis formed from a linear combination of shapelet bases that differ only in radius.
MatrixBuilderWorkspace(MatrixBuilderWorkspace const &other)
Copy the current state of the workspace, allowing multiple MatrixBuilders to start their workspace ar...
ndarray::Array< T, 2,-2 > allocateOutput() const
Return a matrix appropriate for use as an output for operator().
A 2-d function defined by an expansion onto a Gauss-Laguerre or Gauss-Hermite basis.
MatrixBuilder(ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, MultiShapeletBasis const &basis)
Create a MatrixBuilder that evaluates a MultiShapeletBasis object.
ItemVariant const * other
ndarray::Manager::Ptr getManager() const
Return the manager object that owns the block of memory.
int getBasisSize() const
Return the number of basis elements.
Constants, typedefs, and general-purpose functions for shapelets library.
MatrixBuilderFactory(ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, MultiShapeletBasis const &basis)
Create a MatrixBuilder that evaluates a MultiShapeletBasis object.
void operator()(ndarray::Array< T, 2,-1 > const &output, afw::geom::ellipses::Ellipse const &ellipse) const
Fill an array with the model matrix.
int getBasisSize() const
Return the number of basis elements.
table::Key< table::Array< double > > basis
Matrix makeMatrix(int rows, int cols)
Create a matrix from the workspace memory, and increment the current location accordingly.
A factory class for MatrixBuilder, providing more control over workspace memory.
A base class for image defects.
An ellipse defined by an arbitrary BaseCore and a center point.
int getDataSize() const
Return the number of data points.
MatrixBuilderFactory(ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, int order, ShapeletFunction const &psf)
Create a MatrixBuilder that evaluates a simple non-compound shapelet basis after convolving it with a...
Reusable, shareable workspace for MatrixBuilder.
Vector makeVector(int size)
Create a vector from the workspace memory, and increment the current location accordingly.
int getDataSize() const
Return the number of data points.
MatrixBuilderFactory(ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, MultiShapeletBasis const &basis, MultiShapeletFunction const &psf)
Create a MatrixBuilder that evaluates a MultiShapeletBasis object after convolving it with a MultiSha...
MatrixBuilderWorkspace(int size)
Allocate a block of memory with the given number of elements (of type T).
MatrixBuilder< T > operator()() const
Return a new MatrixBuilder with internal, unshared workspace.
MatrixBuilder< T > Builder
Associated builder class.
A multi-scale shapelet function.
void increment(int size)
Manually increment the current location.
MatrixBuilder(ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, int order, ShapeletFunction const &psf)
Create a MatrixBuilder that evaluates a simple non-compound shapelet basis after convolving it with a...
int computeWorkspace() const
Return the size of the workspace needed for this MatrixBuilder, in elements of T.
ndarray::Array< T, 2,-2 > operator()(afw::geom::ellipses::Ellipse const &ellipse) const
Return a newly-allocated model matrix.
MatrixBuilderWorkspace< T > Workspace
Associated workspace class.