The Spline module provides basic routines related to spline function and local polynomials.
More...
|
| template<int P, typename Scalar > |
| void | Bembel::Basis::phi_ (Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > *c, Scalar w, double x) |
| | evaluates the 1D basis at x weighted with a quadrature weight w
|
| |
| template<int P, typename Scalar > |
| void | Bembel::Basis::phi_dx_ (Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > *c, Scalar w, double x) |
| | evaluates the derivative of phi
|
| |
| template<int P, typename Scalar > |
| void | Bembel::Basis::phiphi_ (Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > *c, Scalar w, Eigen::Vector2d a) |
| | evaluates the 2D tensor product basis at a point a in [0,1]^2
|
| |
| template<int P, typename Scalar > |
| void | Bembel::Basis::phiphi_dx_ (Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > *c, Scalar w, Eigen::Vector2d a) |
| | evaluates the x-derivative of the 2D tensor product basis at a point a in [0,1]^2
|
| |
| template<int P, typename Scalar > |
| void | Bembel::Basis::phiphi_dy_ (Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > *c, Scalar w, Eigen::Vector2d a) |
| | evaluates the y-derivative of the 2D tensor product basis at a point a in [0,1]^2
|
| |
| template<int P, typename Scalar > |
| void | Bembel::Basis::Phi_times_Phi_ (Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > *c, Scalar w, Eigen::Vector2d xi, Eigen::Vector2d eta) |
| | evaluates the interaction of two phiphis, one at xi and one at eta. Used for e.g. gram matrices.
|
| |
| template<int P, typename Scalar > |
| void | Bembel::Basis::Div_Phi_times_Div_Phi_ (Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > *c, Scalar weight, Eigen::Vector2d xi, Eigen::Vector2d eta) |
| | same as above, just using the divergence
|
| |
| template<int N> |
| constexpr double | Bembel::Basis::BernsteinX (double evaluation_point) noexcept |
| | Template recursion to produce Bernstein polynomials. This is only limited by the binomial coefficient, see Pascal.hpp.
|
| |
| template<typename T > |
| Eigen::SparseMatrix< T > | Bembel::Spl::MakeProjection (const std::vector< T > &x_knots, const std::vector< T > &y_knots, const std::vector< T > &x_unique_knots, const std::vector< T > &y_unique_knots, const int polynomial_degree_x, const int polynomial_degree_y) noexcept |
| | implements Bezier extraction via the solution of an interpolation problem.
|
| |
| template<typename T > |
| Eigen::Matrix< T, -1, -1 > | Bembel::Spl::DeBoor (Eigen::Matrix< T, -1, -1 > const &control_points, const std::vector< double > &knot_vector, const std::vector< double > &evaluation_points) noexcept |
| | "By the book" implementations of the Cox-DeBoor formula. Inefficient, do not use at bottlenecks.
|
| |
| template<typename T > |
| Eigen::Matrix< T, -1, -1 > | Bembel::Spl::DeBoorDer (Eigen::Matrix< T, -1, -1 > const &control_points, std::vector< double > const &knot, std::vector< double > const &evaluation_points) noexcept |
| | A "by the book" implementation of the derivatives and TP-algos based on the DeBoor Recursion.
|
| |
| std::vector< double > | Bembel::Spl::MakeBezierKnotVector (int polynomial_degree) noexcept |
| | Here, routines for the creation and processing of knot vectors are defined.
|
| |
| template<typename T > |
| std::vector< T > | Bembel::Spl::MakeInterpolationPoints (const std::vector< T > &uniq, const std::vector< T > &mask) noexcept |
| | Creates a T-vector of equidistant itnerpolation points for a given knot vector without any repetitions.
|
| |
| Eigen::Matrix< double, -1, -1 > | Bembel::Spl::GetInterpolationMatrix (int polynomial_degree, const std::vector< double > &mask) |
| | returns the coefficients to represent a function in the Bernstein basis on [0,1].
|
| |
| template<typename T > |
| void | Bembel::Spl::GetCoefficients (const int incr, const std::vector< double > &mask, const std::vector< T > &values, T *coefs) |
| | this solves a generic interpolation problem.
|
| |
| template<typename T > |
| std::vector< T > | Bembel::Spl::GetCoefficients (const int increments, const std::vector< double > &mask, const std::vector< T > &values) |
| | this solves a generic interpolation problem.
|
| |
The Spline module provides basic routines related to spline function and local polynomials.