|
template<std::size_t K, typename Scalar > |
SMOOTH_BEGIN_NAMESPACE constexpr StaticMatrix< Scalar, 1, K+1 > | monomial_derivative (Scalar u, std::size_t p=0) |
| Monomial derivative (compile-time version).
|
|
template<std::size_t K, std::size_t P, typename Scalar > |
constexpr StaticMatrix< Scalar, P+1, K+1 > | monomial_derivatives (Scalar u) |
| Monomial derivatives up to order.
|
|
template<std::size_t K, typename Scalar = double> |
constexpr StaticMatrix< Scalar, K+1, K+1 > | detail::bspline_basis () |
| Bspline basis coefficient matrix.
|
|
template<std::size_t K, typename Scalar = double> |
constexpr StaticMatrix< Scalar, K+1, K+1 > | detail::bernstein_basis () |
| Bernstein basis coefficient matrix.
|
|
template<std::size_t K, typename Scalar = double> |
constexpr StaticMatrix< Scalar, K+1, K+1 > | detail::hermite_basis () |
| Hermite basis coefficient matrix.
|
|
template<std::size_t K, typename Scalar = double> |
constexpr StaticMatrix< Scalar, K+1, K+1 > | detail::laguerre_basis () |
| Laguerre basis coefficient matrix.
|
|
template<std::size_t K, typename Scalar = double> |
constexpr StaticMatrix< Scalar, K+1, K+1 > | detail::jacobi_basis (double alpha, double beta) |
| Jacobi basis coefficient matrix.
|
|
template<PolynomialBasis Basis, std::size_t K, typename Scalar = double> |
constexpr StaticMatrix< Scalar, K+1, K+1 > | polynomial_basis () |
| Compile-time coefficient matrix for given basis.
|
|
template<std::size_t K, std::ranges::random_access_range R, typename Scalar = std::ranges::range_value_t<R>> |
constexpr StaticMatrix< Scalar, K+1, K+1 > | lagrange_basis (const R &ts) |
| Lagrange polynomial basis coefficients.
|
|
template<std::size_t K, std::size_t N, typename Scalar , std::ranges::sized_range R> |
constexpr StaticMatrix< Scalar, K+1, N > | polynomial_basis_derivatives (const StaticMatrix< Scalar, K+1, K+1 > &B, const R &ts) |
| Polynomial basis derivative coefficients.
|
|
template<PolynomialBasis Basis, std::size_t K, typename Scalar = double> |
constexpr StaticMatrix< Scalar, K+1, K+1 > | polynomial_cumulative_basis () |
| Cumulative coefficient matrix for given basis.
|
|
template<std::size_t K, std::size_t P, typename Scalar = double> |
constexpr StaticMatrix< Scalar, K+1, K+1 > | monomial_integral () |
| Calculate integral over matrix of squared monomial P-derivatives.
|
|
constexpr double | integrate_absolute_polynomial (double t0, double t1, double A, double B, double C) |
| Integrate the absolute value of a quadratic 1D polynomial.
|
|
Compile-time polynomial manipulation.
Definition in file basis.hpp.
template<std::size_t K, std::ranges::random_access_range R, typename
Scalar = std::ranges::range_value_t<R>>
Lagrange polynomial basis coefficients.
- Template Parameters
-
- Parameters
-
ts | control points (must be of size K + 1) |
K + 1 control points define a degree K polynomial K which has K + 1 basis functions p_0 ... p_K.
Computes a matrix B s.t.
\[
\begin{bmatrix} p_0(t) & p_1(t) & \ldots & p_K(t) \end{bmatrix}
= \begin{bmatrix} 1 & t & t^2 & \ldots & t^K \end{bmatrix} B
\]
where the Lagrange polynomials are
\[
p_i(t) = \prod_{j \in [0,K], j \neq i} \frac{t - t_j}{t_i - t_j}.
\]
Definition at line 313 of file basis.hpp.