37 indices[k] =
index + k;
42 transform->transformPosAndErrors(where, outPoint);
44 errorProp->transformPosAndErrors(where, tmp);
51 double epsilon)
const {
53 derivative(0, 0) =
lin->getCoefficient(1, 0, 0);
60 derivative(1, 0) =
lin->getCoefficient(0, 1, 0);
61 derivative(0, 1) =
lin->getCoefficient(1, 0, 1);
62 derivative(1, 1) =
lin->getCoefficient(0, 1, 1);
68 transform->paramDerivatives(where, &H(0, 0), &H(0, 1));
87 assert((&H(1, 0) - &H(0, 0)) == 1);
91 double epsilon)
const {
94 derivative(0, 0) =
lin->getCoefficient(1, 0, 0);
101 derivative(1, 0) =
lin->getCoefficient(0, 1, 0);
102 derivative(0, 1) =
lin->getCoefficient(1, 0, 1);
103 derivative(1, 1) =
lin->getCoefficient(0, 1, 1);
104 derivative = preDer * derivative;
111 transform->transformPosAndErrors(mid, outPoint);
113 errorProp->transformPosAndErrors(mid, tmp);
114 outPoint.
vx = tmp.
vx;
115 outPoint.
vy = tmp.
vy;
117 transform->paramDerivatives(mid, &H(0, 0), &H(0, 1));
123 transform->transformPosAndErrors(mid, outPoint);
125 errorProp->transformPosAndErrors(mid, tmp);
126 outPoint.
vx = tmp.
vx;
127 outPoint.
vy = tmp.
vy;
135 actualResult = (*fittedPoly) * _centerAndScale;
Eigen::Matrix< double, Eigen::Dynamic, 2 > MatrixX2d
A Point with uncertainties.
std::shared_ptr< AstrometryTransform > errorProp
virtual void computeTransformAndDerivatives(FatPoint const &where, FatPoint &outPoint, Eigen::MatrixX2d &H) const override
Actually applies the AstrometryMapping and evaluates the derivatives w.r.t the fitted parameters.
void print(std::ostream &out) const override
Print a string representation of the contents of this mapping, for debugging.
std::size_t getNpar() const override
Number of parameters in total.
std::shared_ptr< AstrometryTransform > transform
void getMappingIndices(IndexVector &indices) const override
Sets how this set of parameters (of length Npar()) map into the "grand" fit Expects that indices has ...
std::unique_ptr< AstrometryTransformLinear > lin
void transformPosAndErrors(FatPoint const &where, FatPoint &outPoint) const override
The same as above but without the parameter derivatives (used to evaluate chi^2)
void positionDerivative(Point const &where, Eigen::Matrix2d &derivative, double epsilon) const override
The derivative w.r.t. position.
void computeTransformAndDerivatives(FatPoint const &where, FatPoint &outPoint, Eigen::MatrixX2d &H) const override
Calls the transforms and implements the centering and scaling of coordinates.
void positionDerivative(Point const &where, Eigen::Matrix2d &derivative, double epsilon) const override
The derivative w.r.t. position.
SimplePolyMapping(AstrometryTransformLinear const &CenterAndScale, AstrometryTransformPolynomial const &transform)
The transformation will be initialized to transform, so that the effective transformation reads trans...
AstrometryTransform const & getTransform() const override
Access to the (fitted) transform.
void transformPosAndErrors(FatPoint const &where, FatPoint &outPoint) const override
The same as above but without the parameter derivatives (used to evaluate chi^2)
A base class for image defects.