MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / cubicInterpFunc

Function cubicInterpFunc

src/backend/oneapi/kernel/interp.hpp:63–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

61
62template<typename Ty, typename Tp>
63inline static Ty cubicInterpFunc(Ty val[4], Tp xratio, bool spline) {
64 Ty a0, a1, a2, a3;
65 if (spline) {
66 a0 = scalar<Ty>(-0.5) * val[0] + scalar<Ty>(1.5) * val[1] +
67 scalar<Ty>(-1.5) * val[2] + scalar<Ty>(0.5) * val[3];
68
69 a1 = scalar<Ty>(1.0) * val[0] + scalar<Ty>(-2.5) * val[1] +
70 scalar<Ty>(2.0) * val[2] + scalar<Ty>(-0.5) * val[3];
71
72 a2 = scalar<Ty>(-0.5) * val[0] + scalar<Ty>(0.5) * val[2];
73
74 a3 = val[1];
75 } else {
76 a0 = val[3] - val[2] - val[0] + val[1];
77 a1 = val[0] - val[1] - a0;
78 a2 = val[2] - val[0];
79 a3 = val[1];
80 }
81
82 Tp xratio2 = xratio * xratio;
83 Tp xratio3 = xratio2 * xratio;
84
85 return a0 * xratio3 + a1 * xratio2 + a2 * xratio + a3;
86}
87
88template<typename Ty, typename Tp>
89inline static Ty bicubicInterpFunc(Ty val[4][4], Tp xratio, Tp yratio,

Callers 2

bicubicInterpFuncFunction · 0.70
operator()Method · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected