template <class T>
class vtb::core::Polynomial
Types
  • using complex_array = std::conditional< is_complex< T >::value, blitz::Array< T, 1 >, blitz::Array< std::complex< T >, 1 > >::type
  • using complex_polynomial = std::conditional< is_complex< T >::value, Polynomial< T >, Polynomial< std::complex< T > > >::type
  • using pointer = value_type *
  • using value_type = T
  • using array_type = blitz::Array< T, 1 >
Fields
  • const typedef value_type * const_pointer
Methods
  • reciprocal() const -> complex_polynomial
  • coefficients(int i) -> value_type &
  • coefficients(int i) const -> const value_type &
  • coefficients() -> array_type &
  • coefficients() const -> const array_type &
  • swap(Polynomial & rhs) -> void
  • order() const -> int
  • size() const -> int
  • end() -> pointer
  • end() const -> const_pointer
  • begin() -> pointer
  • begin() const -> const_pointer
  • operator[](int i) -> value_type &
  • operator[](int i) const -> const value_type &
  • operator()(value_type x) const -> value_type
  • evaluate(value_type x) const -> value_type
  • ~Polynomial()
  • operator=(Polynomial && rhs) -> Polynomial &
  • Polynomial(Polynomial && rhs)
  • operator=(const Polynomial & rhs) -> Polynomial &
  • Polynomial(const Polynomial & rhs)
  • Polynomial(std::initializer_list< T > coefs)
  • Polynomial(array_type coefs)explicit
  • Polynomial(int size, const T & value = T{0})explicit
  • Polynomial()
Friends
  • operator-
  • operator+
  • operator/
  • operator*
  • operator*
template <class T>
struct vtb::core::is_complex
Base classes
  • public false_type
template <class T>
schur_transform(const Polynomial< T > & p) -> auto

Schur transform for polynomials with complex coefficients. Schur transform for polynomials with real coefficients.

template <class T>
num_roots_inside_unit_disk(Polynomial< T > p) -> int

Finds the number of polynomial roots inside the unit disk.

  • Uses Schur—Cohn algorithm.

template <class T>
swap(Polynomial< T > & lhs, Polynomial< T > & rhs) -> void