stator
A math, geometry, and utility library
Public Types | Public Member Functions | List of all members
sym::MobiusTransform< Coeff_t > Struct Template Reference

Class representing the current Mobius transformation applied to a Polynomial. More...

#include <polynomial.hpp>

Inheritance diagram for sym::MobiusTransform< Coeff_t >:

Public Types

typedef std::array< Coeff_t, 4 > Base
 

Public Member Functions

 MobiusTransform (Coeff_t a, Coeff_t b, Coeff_t c, Coeff_t d)
 Constructor for the Mobius transformation. More...
 
Coeff_t eval (Coeff_t x)
 Evaluate the Mobius transformation at the transformed $x$. More...
 
void invert_taylor_shift ()
 Add the effect of a scale_poly operation to the Mobius transform. More...
 
void scale (Coeff_t x)
 Add the effect of a scale_poly operation to the Mobius transform. More...
 
void shift (Coeff_t x)
 Add the effect of a shift_poly operation to the Mobius transform. More...
 

Detailed Description

template<class Coeff_t>
struct sym::MobiusTransform< Coeff_t >

This class is used in the implementation of the sym::VAS_real_root_bounds_worker function. A mobius transformation is the following function:

\[ M(x) = \frac{a\,x+b}{c\,x+d} \]

This allows a polynomial to be transformed and (provided the Mobius transformation has the same operations applied to it) we can map between the original polynomial $x$ and the transformed $x$.

Definition at line 1402 of file polynomial.hpp.

Member Typedef Documentation

◆ Base

template<class Coeff_t>
typedef std::array<Coeff_t, 4> sym::MobiusTransform< Coeff_t >::Base

Definition at line 1403 of file polynomial.hpp.

Constructor & Destructor Documentation

◆ MobiusTransform()

template<class Coeff_t>
sym::MobiusTransform< Coeff_t >::MobiusTransform ( Coeff_t  a,
Coeff_t  b,
Coeff_t  c,
Coeff_t  d 
)
inline

Definition at line 1406 of file polynomial.hpp.

Member Function Documentation

◆ eval()

template<class Coeff_t>
Coeff_t sym::MobiusTransform< Coeff_t >::eval ( Coeff_t  x)
inline

Definition at line 1413 of file polynomial.hpp.

◆ invert_taylor_shift()

template<class Coeff_t>
void sym::MobiusTransform< Coeff_t >::invert_taylor_shift ( )
inline

Definition at line 1453 of file polynomial.hpp.

◆ scale()

template<class Coeff_t>
void sym::MobiusTransform< Coeff_t >::scale ( Coeff_t  x)
inline

Definition at line 1445 of file polynomial.hpp.

◆ shift()

template<class Coeff_t>
void sym::MobiusTransform< Coeff_t >::shift ( Coeff_t  x)
inline

Definition at line 1437 of file polynomial.hpp.


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