| LSSTApplications
    20.0.0
    LSSTDataManagementBasePackage | 
 
 
 
Go to the documentation of this file.
   35 template <
typename Ellipticity_, 
typename Radius_>
 
   36 BaseCore::Registrar<Separable<Ellipticity_, Radius_> > Separable<Ellipticity_, Radius_>::registrar;
 
   38 template <
typename Ellipticity_, 
typename Radius_>
 
   40     return "Separable" + Ellipticity_::getName() + Radius_::getName();
 
   43 template <
typename Ellipticity_, 
typename Radius_>
 
   45     _ellipticity.normalize();
 
   49 template <
typename Ellipticity_, 
typename Radius_>
 
   56 template <
typename Ellipticity_, 
typename Radius_>
 
   60     *
iter++ = getRadius();
 
   63 template <
typename Ellipticity_, 
typename Radius_>
 
   66     _ellipticity = 
other._ellipticity;
 
   67     _radius = 
other._radius;
 
   72 template <
typename Ellipticity_, 
typename Radius_>
 
   77 template <
typename Ellipticity_, 
typename Radius_>
 
   79         : _ellipticity(e1, e2), _radius(
radius) {
 
   83 template <
typename Ellipticity_, 
typename Radius_>
 
   86         : _ellipticity(complex), _radius(
radius) {
 
   90 template <
typename Ellipticity_, 
typename Radius_>
 
   92         : _ellipticity(ellipticity), _radius(
radius) {
 
   96 template <
typename Ellipticity_, 
typename Radius_>
 
   98         : _ellipticity(vector[0], vector[1]), _radius(vector[2]) {
 
  102 template <
typename Ellipticity_, 
typename Radius_>
 
  105     _radius.assignToQuadrupole(distortion, ixx, iyy, ixy);
 
  108 template <
typename Ellipticity_, 
typename Radius_>
 
  113     rhs.block<2, 2>(0, 0) = distortion.
dAssign(_ellipticity);
 
  118 template <
typename Ellipticity_, 
typename Radius_>
 
  120     double ixx, iyy, ixy;
 
  121     this->_assignToQuadrupole(ixx, iyy, ixy);
 
  125 template <
typename Ellipticity_, 
typename Radius_>
 
  127                                                                     double& theta)
 const {
 
  128     double ixx, iyy, ixy;
 
  134 template <
typename Ellipticity_, 
typename Radius_>
 
  137     _radius.assignFromQuadrupole(ixx, iyy, ixy, distortion);
 
  138     _ellipticity = distortion;
 
  141 template <
typename Ellipticity_, 
typename Radius_>
 
  147     lhs.block<2, 2>(0, 0) = _ellipticity.dAssign(distortion);
 
  151 template <
typename Ellipticity_, 
typename Radius_>
 
  153     double ixx, iyy, ixy;
 
  155     this->_assignFromQuadrupole(ixx, iyy, ixy);
 
  158 template <
typename Ellipticity_, 
typename Radius_>
 
  160     double ixx, iyy, ixy;
 
  
void _assignFromAxes(double a, double b, double theta) override
void writeParameters(double *iter) const override
static Jacobian _dAssignAxesToQuadrupole(double a, double b, double theta, double &ixx, double &iyy, double &ixy)
Return the size of the bounding box for the ellipse core.
void _assignFromQuadrupole(double ixx, double iyy, double ixy) override
Jacobian _dAssignFromAxes(double a, double b, double theta) override
Jacobian dAssign(Distortion const &other)
void _assignToAxes(double &a, double &b, double &theta) const override
std::string getName() const override
Return a string that identifies this parametrization.
static Jacobian _dAssignQuadrupoleToAxes(double ixx, double iyy, double ixy, double &a, double &b, double &theta)
Return the size of the bounding box for the ellipse core.
An ellipse core with a complex ellipticity and radius parameterization.
ItemVariant const  * other
Eigen::Vector3d ParameterVector
Parameter vector type.
Separable & operator=(Separable const &other)
Standard assignment.
void readParameters(double const *iter) override
A base class for image defects.
Eigen::Matrix3d Jacobian
Parameter Jacobian matrix type.
static void _assignAxesToQuadrupole(double a, double b, double theta, double &ixx, double &iyy, double &ixy)
Return the size of the bounding box for the ellipse core.
Jacobian _dAssignFromQuadrupole(double ixx, double iyy, double ixy) override
void _assignToQuadrupole(double &ixx, double &iyy, double &ixy) const override
Separable(double e1=0.0, double e2=0.0, double radius=Radius(), bool normalize=true)
Construct from parameter values.
Jacobian _dAssignToQuadrupole(double &ixx, double &iyy, double &ixy) const override
A complex ellipticity with magnitude .
static void _assignQuadrupoleToAxes(double ixx, double iyy, double ixy, double &a, double &b, double &theta)
Return the size of the bounding box for the ellipse core.
Jacobian _dAssignToAxes(double &a, double &b, double &theta) const override
void normalize() override
Put the parameters into a "standard form", and throw InvalidParameterError if they cannot be normaliz...