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();
 
  105     r.block<2, 1>(0, 2) = -r.block<2, 2>(0, 0) * _input.getCenter().asEigen();
 
  113     r.block<4, 3>(0, 0) = _coreGt.d();
 
  114     double x = -_input.getCenter().getX();
 
  115     double y = -_input.getCenter().getY();