|
static double | Point (size_t N, int j) |
| Specific Chebyshev point.
|
|
static double | Point (size_t N, int j, double a, double b) |
| Specific Chebyshev point, within [a,b] interval.
|
|
static Vector | Points (size_t N) |
| All Chebyshev points.
|
|
static Vector | Points (size_t N, double a, double b) |
| All Chebyshev points, within [a,b] interval.
|
|
static Weights | CalculateWeights (size_t N, double x, double a=-1, double b=1) |
|
static Weights | DerivativeWeights (size_t N, double x, double a=-1, double b=1) |
|
static DiffMatrix | DifferentiationMatrix (size_t N, double a=-1, double b=1) |
|
static Weights | IntegrationWeights (size_t N, double a=-1, double b=1) |
|
template<size_t M> |
static Matrix | matrix (std::function< Eigen::Matrix< double, M, 1 >(double)> f, size_t N, double a=-1, double b=1) |
|
static Matrix | WeightMatrix (size_t N, const Vector &X) |
|
static Matrix | WeightMatrix (size_t N, const Vector &X, double a, double b) |
| Calculate weights for all x in vector X, with interval [a,b]. More...
|
|
Chebyshev Interpolation on Chebyshev points of the second kind Note that N here, the number of points, is one less than N from 'Approximation Theory and Approximation Practice by L. N. Trefethen (pg.42)'.
static Weights gtsam::Chebyshev2::CalculateWeights |
( |
size_t |
N, |
|
|
double |
x, |
|
|
double |
a = -1 , |
|
|
double |
b = 1 |
|
) |
| |
|
static |
Evaluate Chebyshev Weights on [-1,1] at any x up to order N-1 (N values) These weights implement barycentric interpolation at a specific x. More precisely, f(x) ~ [w0;...;wN] * [f0;...;fN], where the fj are the values of the function f at the Chebyshev points. As such, for a given x we obtain a linear map from parameter vectors f to interpolated values f(x). Optional [a,b] interval can be specified as well.
static Weights gtsam::Chebyshev2::IntegrationWeights |
( |
size_t |
N, |
|
|
double |
a = -1 , |
|
|
double |
b = 1 |
|
) |
| |
|
static |
Evaluate Clenshaw-Curtis integration weights. Trefethen00book, pg 128, clencurt.m Note that N in clencurt.m is 1 less than our N K = N-1; theta = pi*(0:K)'/K; w = zeros(1,N); ii = 2:K; v = ones(K-1, 1); if mod(K,2) == 0 w(1) = 1/(K^2-1); w(N) = w(1); for k=1:K/2-1, v = v-2*cos(2*k*theta(ii))/(4*k^2-1); end v = v - cos(K*theta(ii))/(K^2-1); else w(1) = 1/K^2; w(N) = w(1); for k=1:K/2, v = v-2*cos(2*k*theta(ii))/(4*k^2-1); end end w(ii) = 2*v/K;