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
HermiteTransformMatrix.h
Go to the documentation of this file.
1 // -*- LSST-C++ -*-
2 /*
3  * LSST Data Management System
4  * Copyright 2008, 2009, 2010, 2011 LSST Corporation.
5  *
6  * This product includes software developed by the
7  * LSST Project (http://www.lsst.org/).
8  *
9  * This program is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation, either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the LSST License Statement and
20  * the GNU General Public License along with this program. If not,
21  * see <http://www.lsstcorp.org/LegalNotices/>.
22  */
23 
24 #ifndef LSST_AFW_MATH_SHAPELETS_HermiteTransformMatrix
25 #define LSST_AFW_MATH_SHAPELETS_HermiteTransformMatrix
26 
27 #include "Eigen/Core"
28 
29 #include "lsst/geom.h"
31 
32 namespace lsst { namespace shapelet {
33 
55 public:
56 
58  Eigen::MatrixXd compute(Eigen::Matrix2d const & transform) const {
59  return compute(transform, _order);
60  }
61 
63  Eigen::MatrixXd compute(geom::LinearTransform const & transform) const {
64  return compute(transform.getMatrix(), _order);
65  }
66 
68  Eigen::MatrixXd compute(Eigen::Matrix2d const & transform, int order) const;
69 
71  Eigen::MatrixXd compute(geom::LinearTransform const & transform, int order) const {
72  return compute(transform.getMatrix(), order);
73  }
74 
80  Eigen::MatrixXd getCoefficientMatrix() const { return _coeffFwd; }
81 
87  Eigen::MatrixXd getInverseCoefficientMatrix() const { return _coeffInv; }
88 
90  int getOrder() const { return _order; }
91 
94 
95 private:
96  int _order;
97  Eigen::MatrixXd _coeffFwd;
98  Eigen::MatrixXd _coeffInv;
99 };
100 
101 }} // namespace lsst::shapelet
102 
103 #endif // !LSST_AFW_MATH_SHAPELETS_HermiteTransformMatrix
table::Key< int > transform
A 2D linear coordinate transformation.
A class that computes a matrix that applies a linear transform to a 2-d Hermite polynomial expansion.
Eigen::MatrixXd getCoefficientMatrix() const
Return the matrix that maps (1-d) regular polynomials to the alternate Hermite polynomials.
Eigen::MatrixXd compute(geom::LinearTransform const &transform, int order) const
Compute the matrix for a new linear transform at the given order (must be <= getOrder()).
Eigen::MatrixXd compute(Eigen::Matrix2d const &transform, int order) const
Compute the matrix for a new linear transform at the given order (must be <= getOrder()).
Eigen::MatrixXd compute(Eigen::Matrix2d const &transform) const
Compute the matrix for a new linear transform.
Eigen::MatrixXd compute(geom::LinearTransform const &transform) const
Compute the matrix for a new linear transform.
Eigen::MatrixXd getInverseCoefficientMatrix() const
Return the matrix that maps (1-d) alternate Hermite polynomials to regular polynomials.
int getOrder() const
Return the maximum order at which the matrix can be computed.
HermiteTransformMatrix(int order)
Construct an instance able to compute the transform matrix at up to the given order.
A base class for image defects.
Constants, typedefs, and general-purpose functions for shapelets library.
table::Key< int > order