36 : _input(input), _eig(
Quadrupole(input).getMatrix()) {}
39 return _eig.operatorInverseSqrt();
59 double g1 = core.getE1();
60 double g2 = core.getE2();
61 double g = core.getEllipticity().getE();
62 double r = core.getRadius();
63 double beta = 1.0 - g * g;
66 Eigen::Matrix2d sigma_z, sigma_y;
67 sigma_z << 1.0, 0.0, 0.0, -1.0;
68 sigma_y << 0.0, 1.0, 1.0, 0.0;
69 Eigen::Matrix2d t = _eig.operatorSqrt();
70 Eigen::Matrix2d tInv = _eig.operatorInverseSqrt();
71 Eigen::Matrix2d dt_dg1 = t * g1 / beta + alpha * sigma_z;
72 Eigen::Matrix2d dt_dg2 = t * g2 / beta + alpha * sigma_y;
73 Eigen::Matrix2d dt_dr = t * (1.0 / r);
74 Eigen::Matrix2d dtInv_dg1 = -tInv * dt_dg1 * tInv;
75 Eigen::Matrix2d dtInv_dg2 = -tInv * dt_dg2 * tInv;
76 Eigen::Matrix2d dtInv_dr = -tInv * dt_dr * tInv;
104 r.block<2, 2>(0, 0) = _coreGt.
getMatrix();
113 r.block<4, 3>(0, 0) = _coreGt.
d();
An ellipse core with quadrupole moments as parameters.
Jacobian dAssign(BaseCore const &other)
Assign other to this and return the derivative of the conversion, d(this)/d(other).
lsst::geom::Point2D const & getCenter() const
Return the center point.
A base class for image defects.
An ellipse defined by an arbitrary BaseCore and a center point.
An ellipse core with a complex ellipticity and radius parameterization.
Eigen::Matrix3d Jacobian
Parameter Jacobian matrix type.
A base class for parametrizations of the "core" of an ellipse - the ellipticity and size...
EigenVector const & asEigen() const noexcept(IS_ELEMENT_NOTHROW_COPYABLE)
Return a fixed-size Eigen representation of the coordinate object.
Extent< double, 2 > Extent2D