28 if (
x.size() !=
y.size() ||
x.size() < 2) {
31 int32_t k =
x.size() - 1;
33 for (uint32_t
i = 0;
i <
x.size();
i++) {
34 GPUInfo(
"Point %u: %f --> %f",
i,
x[
i],
y[
i]);
43 for (int32_t
i = 0;
i <= k;
i++) {
46 for (int32_t
i = 0;
i < k;
i++) {
49 for (int32_t
i = 1;
i < k;
i++) {
50 alpha[
i] = 3.f /
h[
i] * (ma[
i + 1] - ma[
i]) - 3.f /
h[
i - 1] * (ma[
i] - ma[
i - 1]);
53 mu[0] =
z[0] =
z[k] = mc[k] = 0;
54 for (int32_t
i = 1;
i < k;
i++) {
55 l[
i] = 2.f * (
x[
i + 1] -
x[
i - 1]) -
h[
i - 1] * mu[
i - 1];
59 for (int32_t
i = k - 1;
i >= 0;
i--) {
60 mc[
i] =
z[
i] -
mu[
i] * mc[
i + 1];
61 mb[
i] = (ma[
i + 1] - ma[
i]) /
h[
i] -
h[
i] / 3.f * (mc[
i + 1] + 2.f * mc[
i]);
62 md[
i] = (mc[
i + 1] - mc[
i]) / (3.f *
h[
i]);
64 for (int32_t
i = 0;
i <= k;
i++) {
69float GPUDisplay::opengl_spline::evaluate(
float x)
72 const int32_t k = mx.size() - 1;
76 while (base < k - 1 && x > mx[base + 1]) {
88 GPUInfo(
"Evaluate: %f --> %f (basepoint %d)", xx,
retVal, base);
Class for time synchronization of RawReader instances.
GLfloat GLfloat GLfloat alpha
GLdouble GLdouble GLdouble z
typename std::vector< T, vecpod_allocator< T > > vecpod