use upper case for array pointers

This commit is contained in:
Ahmet Inan 2020-01-17 16:06:01 +01:00
commit ad44b0f435

View file

@ -15,22 +15,22 @@ class UniformNaturalCubicSpline
ITYPE x0, dx;
public:
UniformNaturalCubicSpline() = default;
UniformNaturalCubicSpline(OTYPE *y, ITYPE x0 = 0, ITYPE dx = 1, int STRIDE = 1) : x0(x0), dx(dx)
UniformNaturalCubicSpline(OTYPE *Y, ITYPE x0 = 0, ITYPE dx = 1, int STRIDE = 1) : x0(x0), dx(dx)
{
ITYPE u[KNOTS-1];
u[0] = ITYPE(0);
OTYPE z[KNOTS-1];
z[0] = ITYPE(0);
ITYPE U[KNOTS-1];
U[0] = ITYPE(0);
OTYPE Z[KNOTS-1];
Z[0] = ITYPE(0);
for (int i = 1; i < KNOTS - 1; ++i) {
ITYPE l = ITYPE(4) - u[i-1];
u[i] = ITYPE(1) / l;
z[i] = (ITYPE(3) * (y[(i+1)*STRIDE] - ITYPE(2) * y[i*STRIDE] + y[(i-1)*STRIDE]) - z[i-1]) / l;
ITYPE l = ITYPE(4) - U[i-1];
U[i] = ITYPE(1) / l;
Z[i] = (ITYPE(3) * (Y[(i+1)*STRIDE] - ITYPE(2) * Y[i*STRIDE] + Y[(i-1)*STRIDE]) - Z[i-1]) / l;
}
OTYPE c(ITYPE(0));
for (int i = KNOTS - 2; i >= 0; --i) {
A[i] = y[i * STRIDE];
C[i] = z[i] - u[i] * c;
B[i] = y[(i+1)*STRIDE] - y[i*STRIDE] - (c + ITYPE(2) * C[i]) / ITYPE(3);
A[i] = Y[i * STRIDE];
C[i] = Z[i] - U[i] * c;
B[i] = Y[(i+1)*STRIDE] - Y[i*STRIDE] - (c + ITYPE(2) * C[i]) / ITYPE(3);
D[i] = (c - C[i]) / ITYPE(3);
c = C[i];
}
@ -71,59 +71,59 @@ struct CubicHermiteSpline
{
return t * t * (t - ITYPE(1));
}
static constexpr OTYPE left(const ITYPE *x, const OTYPE *y)
static constexpr OTYPE left(const ITYPE *X, const OTYPE *Y)
{
return (y[0] - y[-1]) / (x[0] - x[-1]);
return (Y[0] - Y[-1]) / (X[0] - X[-1]);
}
static constexpr OTYPE right(const ITYPE *x, const OTYPE *y)
static constexpr OTYPE right(const ITYPE *X, const OTYPE *Y)
{
return (y[1] - y[0]) / (x[1] - x[0]);
return (Y[1] - Y[0]) / (X[1] - X[0]);
}
static constexpr OTYPE central(const ITYPE *x, const OTYPE *y)
static constexpr OTYPE central(const ITYPE *X, const OTYPE *Y)
{
return ITYPE(0.5) * (left(x, y) + right(x, y));
return ITYPE(0.5) * (left(X, Y) + right(X, Y));
}
static constexpr OTYPE eval(const ITYPE *x, const OTYPE *y, ITYPE t, int k, int n)
static constexpr OTYPE eval(const ITYPE *X, const OTYPE *Y, ITYPE t, int k, int n)
{
return k < 1 ?
h00(t) * y[0] + h10(t) * (x[1]-x[0]) * right(x, y) + h01(t) * y[1] + h11(t) * (x[1]-x[0]) * central(x+1, y+1)
h00(t) * Y[0] + h10(t) * (X[1]-X[0]) * right(X, Y) + h01(t) * Y[1] + h11(t) * (X[1]-X[0]) * central(X+1, Y+1)
: k < n-2 ?
h00(t) * y[k] + h10(t) * (x[k+1]-x[k]) * central(x+k, y+k) + h01(t) * y[k+1] + h11(t) * (x[k+1]-x[k]) * central(x+k+1, y+k+1)
h00(t) * Y[k] + h10(t) * (X[k+1]-X[k]) * central(X+k, Y+k) + h01(t) * Y[k+1] + h11(t) * (X[k+1]-X[k]) * central(X+k+1, Y+k+1)
:
h00(t) * y[n-2] + h10(t) * (x[n-1]-x[n-2]) * central(x+n-2, y+n-2) + h01(t) * y[n-1] + h11(t) * (x[n-1]-x[n-2]) * left(x+n-1, y+n-1);
h00(t) * Y[n-2] + h10(t) * (X[n-1]-X[n-2]) * central(X+n-2, Y+n-2) + h01(t) * Y[n-1] + h11(t) * (X[n-1]-X[n-2]) * left(X+n-1, Y+n-1);
}
static constexpr OTYPE left(const OTYPE *y)
static constexpr OTYPE left(const OTYPE *Y)
{
return y[0] - y[-1];
return Y[0] - Y[-1];
}
static constexpr OTYPE right(const OTYPE *y)
static constexpr OTYPE right(const OTYPE *Y)
{
return y[1] - y[0];
return Y[1] - Y[0];
}
static constexpr OTYPE central(const OTYPE *y)
static constexpr OTYPE central(const OTYPE *Y)
{
return ITYPE(0.5) * (y[1] - y[-1]);
return ITYPE(0.5) * (Y[1] - Y[-1]);
}
static constexpr OTYPE eval(const OTYPE *y, ITYPE t, int k, int n)
static constexpr OTYPE eval(const OTYPE *Y, ITYPE t, int k, int n)
{
return k < 1 ?
h00(t) * y[0] + h10(t) * right(y) + h01(t) * y[1] + h11(t) * central(y+1)
h00(t) * Y[0] + h10(t) * right(Y) + h01(t) * Y[1] + h11(t) * central(Y+1)
: k < n-2 ?
h00(t) * y[k] + h10(t) * central(y+k) + h01(t) * y[k+1] + h11(t) * central(y+k+1)
h00(t) * Y[k] + h10(t) * central(Y+k) + h01(t) * Y[k+1] + h11(t) * central(Y+k+1)
:
h00(t) * y[n-2] + h10(t) * central(y+n-2) + h01(t) * y[n-1] + h11(t) * left(y+n-1);
h00(t) * Y[n-2] + h10(t) * central(Y+n-2) + h01(t) * Y[n-1] + h11(t) * left(Y+n-1);
}
static OTYPE eval(const OTYPE *y, ITYPE x, int n, ITYPE x0 = 0, ITYPE dx = 1)
static OTYPE eval(const OTYPE *Y, ITYPE x, int n, ITYPE x0 = 0, ITYPE dx = 1)
{
ITYPE tx = (x - x0) / dx;
int k = tx;
ITYPE t = tx - ITYPE(k);
return k < 0 ?
eval(y, tx, 0, n)
eval(Y, tx, 0, n)
: k < n-1 ?
eval(y, t, k, n)
eval(Y, t, k, n)
:
eval(y, tx-ITYPE(n-2), n-2, n);
eval(Y, tx-ITYPE(n-2), n-2, n);
}
};