Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
tatooine::polynomial_line< Real, N, Degree > Class Template Reference

#include <polynomial_line.h>

Collaboration diagram for tatooine::polynomial_line< Real, N, Degree >:
[legend]

Public Types

using vec_type = vec< Real, N >
 
using polynomial_type = tatooine::polynomial< Real, Degree >
 

Public Member Functions

constexpr polynomial_line ()
 
constexpr polynomial_line (const polynomial_line &other)=default
 
constexpr polynomial_line (polynomial_line &&other)=default
 
constexpr polynomial_lineoperator= (const polynomial_line &other)=default
 
constexpr polynomial_lineoperator= (polynomial_line &&other)=default
 
template<typename... Polynomials>
requires (is_polynomial<Polynomials> && ...)
constexpr polynomial_line (Polynomials &&... polynomials)
 
auto & polynomial (std::size_t i)
 
const auto & polynomial (std::size_t i) const
 
auto & polynomials ()
 
const auto & polynomials () const
 
constexpr auto evaluate (Real t) const
 
constexpr auto operator() (Real t) const
 
constexpr auto diff () const
 
constexpr auto tangent (Real t) const
 
constexpr auto second_derivative (Real t) const
 
constexpr auto curvature (Real t) const
 
constexpr auto curvature (Real t, const vec_type &tang) const
 
constexpr auto curvature (const vec_type &tang, const vec_type &snd_der) const -> Real
 
template<template< typename > typename InterpolationKernel, floating_point Real_>
constexpr auto evaluate (linspace< Real_ > const &ts) const
 
constexpr auto arc_length (const linspace< Real > &range) const
 

Static Public Member Functions

static constexpr auto num_dimensions () -> std::size_t
 
static constexpr auto degree ()
 

Private Member Functions

template<std::size_t... Is>
constexpr auto evaluate (Real t, std::index_sequence< Is... >) const
 
template<std::size_t... Is>
constexpr auto diff (std::index_sequence< Is... >) const
 
template<std::size_t... Is>
constexpr auto tangent (Real t, std::index_sequence< Is... >) const
 
template<std::size_t... Is>
constexpr auto second_derivative (Real t, std::index_sequence< Is... >) const
 

Private Attributes

std::array< polynomial_type, N > m_polynomials
 

Member Typedef Documentation

◆ polynomial_type

template<typename Real , std::size_t N, std::size_t Degree>
using tatooine::polynomial_line< Real, N, Degree >::polynomial_type = tatooine::polynomial<Real, Degree>

◆ vec_type

template<typename Real , std::size_t N, std::size_t Degree>
using tatooine::polynomial_line< Real, N, Degree >::vec_type = vec<Real, N>

Constructor & Destructor Documentation

◆ polynomial_line() [1/4]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr tatooine::polynomial_line< Real, N, Degree >::polynomial_line ( )
inlineconstexpr

◆ polynomial_line() [2/4]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr tatooine::polynomial_line< Real, N, Degree >::polynomial_line ( const polynomial_line< Real, N, Degree > &  other)
constexprdefault

◆ polynomial_line() [3/4]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr tatooine::polynomial_line< Real, N, Degree >::polynomial_line ( polynomial_line< Real, N, Degree > &&  other)
constexprdefault

◆ polynomial_line() [4/4]

template<typename Real , std::size_t N, std::size_t Degree>
template<typename... Polynomials>
requires (is_polynomial<Polynomials> && ...)
constexpr tatooine::polynomial_line< Real, N, Degree >::polynomial_line ( Polynomials &&...  polynomials)
inlineconstexpr

Member Function Documentation

◆ arc_length()

template<typename Real , std::size_t N, std::size_t Degree>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::arc_length ( const linspace< Real > &  range) const
inlineconstexpr

◆ curvature() [1/3]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::curvature ( const vec_type tang,
const vec_type snd_der 
) const -> Real
inlineconstexpr

◆ curvature() [2/3]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::curvature ( Real  t) const
inlineconstexpr

◆ curvature() [3/3]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::curvature ( Real  t,
const vec_type tang 
) const
inlineconstexpr

◆ degree()

template<typename Real , std::size_t N, std::size_t Degree>
static constexpr auto tatooine::polynomial_line< Real, N, Degree >::degree ( )
inlinestaticconstexpr

◆ diff() [1/2]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::diff ( ) const
inlineconstexpr

◆ diff() [2/2]

template<typename Real , std::size_t N, std::size_t Degree>
template<std::size_t... Is>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::diff ( std::index_sequence< Is... >  ) const
inlineconstexprprivate

◆ evaluate() [1/3]

template<typename Real , std::size_t N, std::size_t Degree>
template<template< typename > typename InterpolationKernel, floating_point Real_>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::evaluate ( linspace< Real_ > const &  ts) const
inlineconstexpr

◆ evaluate() [2/3]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::evaluate ( Real  t) const
inlineconstexpr

◆ evaluate() [3/3]

template<typename Real , std::size_t N, std::size_t Degree>
template<std::size_t... Is>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::evaluate ( Real  t,
std::index_sequence< Is... >   
) const
inlineconstexprprivate

◆ num_dimensions()

template<typename Real , std::size_t N, std::size_t Degree>
static constexpr auto tatooine::polynomial_line< Real, N, Degree >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ operator()()

template<typename Real , std::size_t N, std::size_t Degree>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::operator() ( Real  t) const
inlineconstexpr

◆ operator=() [1/2]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr polynomial_line & tatooine::polynomial_line< Real, N, Degree >::operator= ( const polynomial_line< Real, N, Degree > &  other)
constexprdefault

◆ operator=() [2/2]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr polynomial_line & tatooine::polynomial_line< Real, N, Degree >::operator= ( polynomial_line< Real, N, Degree > &&  other)
constexprdefault

◆ polynomial() [1/2]

template<typename Real , std::size_t N, std::size_t Degree>
auto & tatooine::polynomial_line< Real, N, Degree >::polynomial ( std::size_t  i)
inline

◆ polynomial() [2/2]

template<typename Real , std::size_t N, std::size_t Degree>
const auto & tatooine::polynomial_line< Real, N, Degree >::polynomial ( std::size_t  i) const
inline

◆ polynomials() [1/2]

template<typename Real , std::size_t N, std::size_t Degree>
auto & tatooine::polynomial_line< Real, N, Degree >::polynomials ( )
inline

◆ polynomials() [2/2]

template<typename Real , std::size_t N, std::size_t Degree>
const auto & tatooine::polynomial_line< Real, N, Degree >::polynomials ( ) const
inline

◆ second_derivative() [1/2]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::second_derivative ( Real  t) const
inlineconstexpr

◆ second_derivative() [2/2]

template<typename Real , std::size_t N, std::size_t Degree>
template<std::size_t... Is>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::second_derivative ( Real  t,
std::index_sequence< Is... >   
) const
inlineconstexprprivate

◆ tangent() [1/2]

template<typename Real , std::size_t N, std::size_t Degree>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::tangent ( Real  t) const
inlineconstexpr

◆ tangent() [2/2]

template<typename Real , std::size_t N, std::size_t Degree>
template<std::size_t... Is>
constexpr auto tatooine::polynomial_line< Real, N, Degree >::tangent ( Real  t,
std::index_sequence< Is... >   
) const
inlineconstexprprivate

Member Data Documentation

◆ m_polynomials

template<typename Real , std::size_t N, std::size_t Degree>
std::array<polynomial_type, N> tatooine::polynomial_line< Real, N, Degree >::m_polynomials
private

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