17#ifndef ALICEO2_GPUCOMMON_TPCFASTTRANSFORMATION_CHEBYSHEVFIT1D_H
18#define ALICEO2_GPUCOMMON_TPCFASTTRANSFORMATION_CHEBYSHEVFIT1D_H
39 reset(order, xMin, xMax);
44 void reset(int32_t order,
double xMin,
double xMax);
52 double eval(
double x);
65 std::vector<double> mA;
66 std::vector<double> mB;
67 std::vector<double> mC;
68 std::vector<double> mT;
73 x = -1. + (
x - mXmin) * mXscale;
77 for (int32_t
i = 2;
i < mN;
i++) {
78 mT[
i] =
x * mT[
i - 1] - mT[
i - 2];
80 double* Ai = mA.data();
81 for (int32_t
i = 0;
i < mN;
i++, Ai += mN) {
82 for (int32_t
j =
i;
j < mN;
j++) {
83 Ai[
j] += mT[
i] * mT[
j];
92 x = -1. + (
x - mXmin) * mXscale;
93 double y = mC[0] + mC[1] *
x;
97 for (int32_t
i = 2;
i < mN;
i++) {
98 double f =
x * f1 - f0;
void addMeasurement(double x, double m)
const std::vector< double > & getCoefficients() const
int32_t getNmeasurements() const
ChebyshevFit1D(int32_t order, double xMin, double xMax)
~ChebyshevFit1D()=default