25#ifndef LSST_JOINTCAL_PHOTOMETRY_TRANSFORM_H
26#define LSST_JOINTCAL_PHOTOMETRY_TRANSFORM_H
55 virtual double transform(
double x,
double y,
double value)
const = 0;
61 virtual double transformError(
double x,
double y,
double value,
double valueErr)
const = 0;
101 Eigen::Ref<Eigen::VectorXd> derivatives)
const = 0;
117 out <<
"PhotometryTransformSpatiallyInvariant: " <<
std::setprecision(10) << _value;
124 void offsetParams(Eigen::VectorXd
const &delta)
override { _value -= delta[0]; };
128 Eigen::VectorXd parameters(1);
129 parameters[0] = _value;
162 return std::make_shared<FluxTransformSpatiallyInvariant>(
getValue());
167 Eigen::Ref<Eigen::VectorXd> derivatives)
const override {
169 derivatives[0] = value;
194 return std::make_shared<MagnitudeTransformSpatiallyInvariant>(
getValue());
199 Eigen::Ref<Eigen::VectorXd> derivatives)
const override {
245 double transformError(
double x,
double y,
double value,
double valueErr)
const override {
return 0; }
248 void print(
std::ostream &out)
const override { out <<
"PhotometryTransformChebyshev: " << _coefficients; }
254 void offsetParams(Eigen::VectorXd
const &delta)
override;
257 ndarray::Array<double, 2, 2>
getCoefficients()
const {
return ndarray::copy(_coefficients); }
292 ndarray::Array<double, 2, 2> _coefficients;
293 ndarray::Size _order;
294 ndarray::Size _nParameters;
297 double oneIntegral(
double x,
double y)
const;
312 double transform(
double x,
double y,
double value)
const override {
318 Eigen::Ref<Eigen::VectorXd> derivatives)
const override {
320 derivatives *= value;
341 double transform(
double x,
double y,
double value)
const override {
347 Eigen::Ref<Eigen::VectorXd> derivatives)
const override {
ndarray::Array< double const, 2, 2 > coefficients
A floating-point coordinate rectangle geometry.
A base class for image defects.
T setprecision(T... args)