PhysicsBasedAnimationToolkit 0.0.10
Cross-platform C++20 library of algorithms and data structures commonly used in computer graphics research on physically-based simulation.
Loading...
Searching...
No Matches
pbat::math::polynomial::OrthonormalBasis< Dims, Order > Struct Template Reference

Orthonormal polynomial basis \( \left\{ P_i(X) \right\} \) in dimensions \( d \) and order \( p \). More...

#include <Basis.h>

Inheritance diagram for pbat::math::polynomial::OrthonormalBasis< Dims, Order >:

Public Types

using BaseType = typename detail::OrthonormalBasis<Dims, Order>
 Base type.
 

Public Member Functions

Vector< kSizeeval (Vector< kDims > const &X) const
 
Matrix< kDims, kSizederivatives (Vector< kDims > const &X) const
 
Matrix< kSize, kDimsantiderivatives (Vector< kDims > const &X) const
 

Static Public Attributes

static constexpr int kDims = BaseType::kDims
 Spatial dimensions.
 
static constexpr int kOrder = BaseType::kOrder
 Polynomial order.
 
static constexpr int kSize = BaseType::kSize
 Number of basis functions.
 

Detailed Description

template<int Dims, int Order>
struct pbat::math::polynomial::OrthonormalBasis< Dims, Order >

Orthonormal polynomial basis \( \left\{ P_i(X) \right\} \) in dimensions \( d \) and order \( p \).

The basis is orthonormal with respect to the inner product

\[ \langle f, g \rangle = \int_{\Omega^d} f(X) g(X) \, d\Omega^d \]

where \( \Omega^d \) is the reference simplex in dimensions \( d \), e.g.

  • the line segment \( 0,1 \) in 1D,
  • the triangle \(\begin{pmatrix} 0 \\ 0 \end{pmatrix}, \begin{pmatrix} 1 \\ 0 \end{pmatrix}, \begin{pmatrix} 0 \\ 1 \end{pmatrix} \) in 2D, and
  • the tetrahedron \(\begin{pmatrix} 0 \\ 0 \\ 0 \end{pmatrix}, \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix}, \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}, \begin{pmatrix} 0 \\ 0 \\ 1\end{pmatrix} \) in 3D.

In other words,

\[ \langle P_i, P_j \rangle = \delta_{ij} \]

where \( \delta_{ij} \) is the Kronecker delta.

See Orthogonal polynomials.

Template Parameters
DimsSpatial dimensions
OrderPolynomial order

Member Function Documentation

◆ antiderivatives()

template<int Dims, int Order>
Matrix< kSize, kDims > pbat::math::polynomial::OrthonormalBasis< Dims, Order >::antiderivatives ( Vector< kDims > const & X) const
inline
Parameters
X
Returns

◆ derivatives()

template<int Dims, int Order>
Matrix< kDims, kSize > pbat::math::polynomial::OrthonormalBasis< Dims, Order >::derivatives ( Vector< kDims > const & X) const
inline
Parameters
X
Returns

◆ eval()

template<int Dims, int Order>
Vector< kSize > pbat::math::polynomial::OrthonormalBasis< Dims, Order >::eval ( Vector< kDims > const & X) const
inline
Parameters
X
Returns

The documentation for this struct was generated from the following file: