gtsam
Loading...
Searching...
No Matches
gtsam::PiecewisePolynomial< Order, Pieces > Class Template Reference

Detailed Description

template<size_t Order, size_t Pieces>
class gtsam::PiecewisePolynomial< Order, Pieces >

A one-dimensional piecewise polynomial kernel.

On interval \([b_j,b_{j+1}]\), the value is \(p_j(t)=\sum_{k=0}^{Order} a_{j,k}t^k\). Coefficients for each piece are therefore stored in ascending power order. The \(r\)-th derivative uses the exact power rule, \(p_j^{(r)}(t)=\sum_{k=r}^{Order}\frac{k!}{(k-r)!}a_{j,k}t^{k-r}\). Values outside the declared interval range are evaluated at the nearest endpoint, which lets cumulative kernels remain constant outside support.

Template Parameters
OrderPolynomial order of every piece.
PiecesNumber of polynomial pieces.
Inheritance diagram for gtsam::PiecewisePolynomial< Order, Pieces >:

Public Member Functions

 PiecewisePolynomial (const Parameters &parameters)
 Construct a kernel from fixed-size coefficient data.
double getCenter () const override
 Return the representative center of the kernel support.
double getBeginning () const override
 Return the first boundary of the kernel support.
double getEnd () const override
 Return the last boundary of the kernel support.
size_t getValidDerivatives () const override
 Return the largest derivative order available analytically.
const std::array< double, pieces+1 > & getIntervals () const
 Return interval boundaries, primarily for validation and visualization.
double evaluate (double t, OptionalJacobian< 1, 1 > H={}) const override
 Evaluate the selected polynomial piece and optionally its slope.
double evaluateDerivative (size_t derivative, double t, OptionalJacobian< 1, 1 > H={}) const override
 Evaluate an analytic derivative and optionally the next derivative.
Public Member Functions inherited from gtsam::KernelBase
double getLength () const
 Width of the kernel support.
virtual ~KernelBase ()=default
 Destroy the polymorphic kernel interface.

Static Public Attributes

static constexpr size_t order = Order
static constexpr size_t pieces = Pieces

Classes

struct  Parameters
 Coefficients, interval boundaries, and center defining the kernel. More...

Member Function Documentation

◆ evaluate()

template<size_t Order, size_t Pieces>
double gtsam::PiecewisePolynomial< Order, Pieces >::evaluate ( double t,
OptionalJacobian< 1, 1 > H = {} ) const
inlineoverridevirtual

Evaluate the selected polynomial piece and optionally its slope.

Implements gtsam::KernelBase.

◆ evaluateDerivative()

template<size_t Order, size_t Pieces>
double gtsam::PiecewisePolynomial< Order, Pieces >::evaluateDerivative ( size_t derivative,
double t,
OptionalJacobian< 1, 1 > H = {} ) const
inlineoverridevirtual

Evaluate an analytic derivative and optionally the next derivative.

Implements gtsam::KernelBase.

◆ getBeginning()

template<size_t Order, size_t Pieces>
double gtsam::PiecewisePolynomial< Order, Pieces >::getBeginning ( ) const
inlineoverridevirtual

Return the first boundary of the kernel support.

Implements gtsam::KernelBase.

◆ getCenter()

template<size_t Order, size_t Pieces>
double gtsam::PiecewisePolynomial< Order, Pieces >::getCenter ( ) const
inlineoverridevirtual

Return the representative center of the kernel support.

Implements gtsam::KernelBase.

◆ getEnd()

template<size_t Order, size_t Pieces>
double gtsam::PiecewisePolynomial< Order, Pieces >::getEnd ( ) const
inlineoverridevirtual

Return the last boundary of the kernel support.

Implements gtsam::KernelBase.

◆ getValidDerivatives()

template<size_t Order, size_t Pieces>
size_t gtsam::PiecewisePolynomial< Order, Pieces >::getValidDerivatives ( ) const
inlineoverridevirtual

Return the largest derivative order available analytically.

Implements gtsam::KernelBase.


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