Controlpp
Loading...
Searching...
No Matches
Polynom.hpp File Reference
#include <cstdint>
#include <ostream>
#include <initializer_list>
#include <iterator>
#include <concepts>
#include <complex>
#include <limits>
#include <Eigen/Core>
#include <Eigen/Dense>
#include <Eigen/Eigenvalues>
#include "math.hpp"

Go to the source code of this file.

Classes

class  controlpp::Polynom< T, Order >
 Describes a mathematical polynomial. More...
 
class  controlpp::FixedPolynom< T, Order >
 Describes a mathematical polynomial of fixed size. More...
 
struct  Eigen::NumTraits< controlpp::FixedPolynom< T, N > >
 
struct  Eigen::ScalarBinaryOpTraits< Tscalar, controlpp::FixedPolynom< Tpoly, N >, internal::scalar_sum_op< Tscalar, controlpp::FixedPolynom< Tpoly, N > > >
 
struct  Eigen::ScalarBinaryOpTraits< controlpp::FixedPolynom< Tpoly, N >, Tscalar, internal::scalar_sum_op< controlpp::FixedPolynom< Tpoly, N >, Tscalar > >
 
struct  Eigen::ScalarBinaryOpTraits< controlpp::FixedPolynom< Tpoly, N >, controlpp::FixedPolynom< Tpoly, N >, internal::scalar_sum_op< controlpp::FixedPolynom< Tpoly, N >, controlpp::FixedPolynom< Tpoly, N > > >
 
struct  Eigen::ScalarBinaryOpTraits< Tscalar, controlpp::FixedPolynom< Tpoly, N >, internal::scalar_difference_op< Tscalar, controlpp::FixedPolynom< Tpoly, N > > >
 
struct  Eigen::ScalarBinaryOpTraits< controlpp::FixedPolynom< Tpoly, N >, Tscalar, internal::scalar_difference_op< controlpp::FixedPolynom< Tpoly, N >, Tscalar > >
 
struct  Eigen::ScalarBinaryOpTraits< controlpp::FixedPolynom< Tpoly, N >, controlpp::FixedPolynom< Tpoly, N >, internal::scalar_difference_op< controlpp::FixedPolynom< Tpoly, N >, controlpp::FixedPolynom< Tpoly, N > > >
 
struct  Eigen::ScalarBinaryOpTraits< Tscalar, controlpp::FixedPolynom< Tpoly, N >, internal::scalar_product_op< Tscalar, controlpp::FixedPolynom< Tpoly, N > > >
 
struct  Eigen::ScalarBinaryOpTraits< controlpp::FixedPolynom< Tpoly, N >, Tscalar, internal::scalar_product_op< controlpp::FixedPolynom< Tpoly, N >, Tscalar > >
 
struct  Eigen::ScalarBinaryOpTraits< controlpp::FixedPolynom< Tpoly, N >, controlpp::FixedPolynom< Tpoly, N >, internal::scalar_product_op< controlpp::FixedPolynom< Tpoly, N >, controlpp::FixedPolynom< Tpoly, N > > >
 
struct  Eigen::ScalarBinaryOpTraits< Tscalar, controlpp::FixedPolynom< Tpoly, N >, internal::scalar_quotient_op< Tscalar, controlpp::FixedPolynom< Tpoly, N > > >
 
struct  Eigen::ScalarBinaryOpTraits< controlpp::FixedPolynom< Tpoly, N >, Tscalar, internal::scalar_quotient_op< controlpp::FixedPolynom< Tpoly, N >, Tscalar > >
 
struct  Eigen::ScalarBinaryOpTraits< controlpp::FixedPolynom< Tpoly, N >, controlpp::FixedPolynom< Tpoly, N >, internal::scalar_quotient_op< controlpp::FixedPolynom< Tpoly, N >, controlpp::FixedPolynom< Tpoly, N > > >
 

Namespaces

namespace  controlpp
 The main namespace for the Control++ library.
 
namespace  controlpp::polynom
 
namespace  Eigen
 

Functions

template<class T >
Eigen::Vector< std::complex< T >, 0 > controlpp::zeros (const Polynom< T, 0 > &polynom)
 Returns an empty vector resembling the absence of solutions.
 
template<class T >
Eigen::Vector< std::complex< T >, 1 > controlpp::zeros (const Polynom< T, 1 > &polynom)
 calculates the zeros/roots of a polynomial
 
template<class T >
Eigen::Vector< std::complex< T >, 2 > controlpp::zeros (const Polynom< T, 2 > &polynom)
 calculates the zeros/roots of a polynomial
 
template<class T , int N>
requires (N > 1)
Eigen::Vector< std::complex< T >, N > controlpp::zeros (const Polynom< T, N > &polynom)
 Calculates the zeros of a polynomial.
 
template<class T , int N>
bool controlpp::operator== (const Polynom< T, N > &lhs, const Polynom< T, N > &rhs)
 Compares two polynomials for equality.
 
template<class T , int N>
bool controlpp::operator!= (const Polynom< T, N > &lhs, const Polynom< T, N > &rhs)
 
template<class T , int Nl, int Nr>
Polynom< T,(Nl > Nr) ? Nl :Nr > controlpp::operator+ (const Polynom< T, Nl > &lhs, const Polynom< T, Nr > &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int N>
Polynom< Tpoly, N > controlpp::operator+ (const Tscalar &lhs, const Polynom< Tpoly, N > &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int N>
Polynom< Tpoly, N > controlpp::operator+ (const Polynom< Tpoly, N > &lhs, const Tscalar &rhs)
 
template<class T , int N>
Polynom< T, N > controlpp::operator- (const Polynom< T, N > &poly)
 
template<class T , int Nl, int Nr>
Polynom< T,(Nl > Nr) ? Nl :Nr > controlpp::operator- (const Polynom< T, Nl > &lhs, const Polynom< T, Nr > &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int N>
Polynom< Tpoly, N > controlpp::operator- (const Tscalar &lhs, const Polynom< Tpoly, N > &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int N>
Polynom< Tpoly, N > controlpp::operator- (const Polynom< Tpoly, N > &lhs, const Tscalar &rhs)
 
template<class T , int lOrder, int rOrder>
Polynom< T, lOrder+rOrder > controlpp::operator* (const Polynom< T, lOrder > &lhs, const Polynom< T, rOrder > &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int Order>
Polynom< Tpoly, Order > controlpp::operator* (const Polynom< Tpoly, Order > &lhs, const Tscalar &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int Order>
Polynom< Tpoly, Order > controlpp::operator* (const Tscalar &lhs, const Polynom< Tpoly, Order > &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int Order>
Polynom< Tpoly, Order > controlpp::operator/ (const Polynom< Tpoly, Order > &lhs, const Tscalar &rhs)
 
template<class T , int N>
bool controlpp::operator== (const FixedPolynom< T, N > &lhs, const FixedPolynom< T, N > &rhs)
 Compares two polynomials for equality.
 
template<class T , int N>
bool controlpp::operator!= (const FixedPolynom< T, N > &lhs, const FixedPolynom< T, N > &rhs)
 
template<class T , int N>
FixedPolynom< T, N > controlpp::operator+ (const FixedPolynom< T, N > &lhs, const FixedPolynom< T, N > &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int N>
requires (N >= 1)
FixedPolynom< Tpoly, N > controlpp::operator+ (const Tscalar &lhs, const FixedPolynom< Tpoly, N > &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int N>
requires (N >= 1)
FixedPolynom< Tpoly, N > controlpp::operator+ (const FixedPolynom< Tpoly, N > &lhs, const Tscalar &rhs)
 
template<class T , int N>
FixedPolynom< T, N > controlpp::operator- (const FixedPolynom< T, N > &lhs, const FixedPolynom< T, N > &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int N>
requires (N >= 1)
FixedPolynom< Tpoly, N > controlpp::operator- (const Tscalar &lhs, const FixedPolynom< Tpoly, N > &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int N>
requires (N >= 1)
FixedPolynom< Tpoly, N > controlpp::operator- (const FixedPolynom< Tpoly, N > &lhs, const Tscalar &rhs)
 
template<class T , int N>
FixedPolynom< T, N > controlpp::operator- (const FixedPolynom< T, N > &values)
 
template<class T , int N>
FixedPolynom< T, N > controlpp::operator* (const FixedPolynom< T, N > &lhs, const FixedPolynom< T, N > &rhs)
 Non growing multiplication.
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int N>
FixedPolynom< Tpoly, N > controlpp::operator* (const FixedPolynom< Tpoly, N > &lhs, const Tscalar &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int N>
FixedPolynom< Tpoly, N > controlpp::operator* (const Tscalar &lhs, const FixedPolynom< Tpoly, N > &rhs)
 
template<class Tpoly , std::convertible_to< Tpoly > Tscalar, int N>
FixedPolynom< Tpoly, N > controlpp::operator/ (const FixedPolynom< Tpoly, N > &lhs, const Tscalar &rhs)
 

Variables

template<class T >
const Polynom< T, 1 > controlpp::polynom::x (0, 1)