41 double ixx1, iyy1, ixy1;
42 double ixx2, iyy2, ixy2;
43 Jacobian rhs =
self._dAssignToQuadrupole(ixx1, iyy1, ixy1);
46 Jacobian lhs = convolved->_dAssignFromQuadrupole(ixx1 + ixx2, iyy1 + iyy2, ixy1 + ixy2);
51 double ixx1, iyy1, ixy1;
52 double ixx2, iyy2, ixy2;
53 self._assignToQuadrupole(ixx1, iyy1, ixy1);
59 return std::make_shared<Ellipse>(
60 self.getCore().convolve(
other.getCore()).
copy(),
71 result.block<3, 3>(0, 0) =
self.getCore().convolve(
other.getCore()).
d();
Eigen::Matrix3d DerivativeMatrix
Matrix type for derivative with respect to input ellipse parameters.
std::shared_ptr< Ellipse > copy() const
Return a new convolved ellipse.
Eigen::Matrix< double, 5, 5 > DerivativeMatrix
Matrix type for derivative with respect to input ellipse parameters.
void inPlace()
Convolve the ellipse in-place.
DerivativeMatrix d() const
Return the derivative of convolved core with respect to self.
std::shared_ptr< BaseCore > clone() const
Deep-copy the Core.
Point< double, 2 > Point2D
DerivativeMatrix d() const
Return the derivative of convolved ellipse with respect to self.
A base class for image defects.
void inPlace()
Convolve the ellipse core in-place.
Convolution(BaseCore &self, BaseCore const &other)
Standard constructor.
Eigen::Matrix3d Jacobian
Parameter Jacobian matrix type.
Ellipse(BaseCore const &core, lsst::geom::Point2D const ¢er=lsst::geom::Point2D())
A base class for parametrizations of the "core" of an ellipse - the ellipticity and size...
void apply(BaseCore &result) const
virtual void _assignToQuadrupole(double &ixx, double &iyy, double &ixy) const =0
virtual void _assignFromQuadrupole(double ixx, double iyy, double ixy)=0
std::shared_ptr< BaseCore > copy() const
Return a new convolved ellipse core.