18#ifndef ALICEO2_GPUCOMMON_TPCFASTTRANSFORMATION_REGULARSPLINE1D_H
19#define ALICEO2_GPUCOMMON_TPCFASTTRANSFORMATION_REGULARSPLINE1D_H
59 T
getSpline(
const int32_t iknot, T f0, T f1, T f2, T f3,
float u)
const;
63 T
getSpline(
const T correctedData[],
float u)
const;
79 uint8_t mNumberOfKnots = 5;
89 mNumberOfKnots = (numberOfKnots < 5) ? 5 : numberOfKnots;
113 T
x = T((mNumberOfKnots - 1) * u - iknot1);
116 T z1 = half * (f2 - f0);
129 T
a = -f2 - f2 + z1 + z2;
131 return (
a *
x +
b) * x2 + z1 *
x + f1;
139 const T*
f = correctedData + iknot - 1;
148 if (iknot >= mNumberOfKnots) {
151 return iknot / ((double)mNumberOfKnots - 1.);
157 int32_t
index = (int32_t)(u * (mNumberOfKnots - 1));
160 }
else if (
index >= mNumberOfKnots - 3) {
161 index = mNumberOfKnots - 3;
170 constexpr T c0(0.5),
c1(1.5);
171 const int32_t
i = mNumberOfKnots - 1;
bool const GPUTPCGMMerger::trackCluster * c1
RegularSpline1D()=default
_____________ Constructors / destructors __________________________
~RegularSpline1D()=default
Destructor.
T getSpline(const int32_t iknot, T f0, T f1, T f2, T f3, float u) const
Get interpolated value for f(u) using spline at knot "knot_1" and function values at knots {knot_0,...
int32_t getKnotIndex(float u) const
void correctEdges(T *data) const
_______________ Main functionality ________________________
void construct(int32_t numberOfKnots)
Constructor. Number of knots will be set to at least 5.
int32_t getNumberOfKnots() const
Get number of knots.
double knotIndexToU(int32_t index) const
Get the U-Coordinate depending on the given knot-Index.
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...