ALFI
Advanced Library for Function Interpolation
Loading...
Searching...
No Matches
ratf.h File Reference
#include <cmath>
#include "config.h"
#include "util/numeric.h"
#include "util/poly.h"
Include dependency graph for ratf.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  alfi::ratf
 Namespace providing support for rational functions.
 
namespace  alfi
 

Typedefs

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
using alfi::ratf::RationalFunction = std::pair<Container<Number>, Container<Number>>
 Represents a rational function \(\displaystyle f(x) = \frac{A(x)}{B(x)}\), where \(A(x)\) and \(B(x)\) are polynomials.
 

Functions

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
std::enable_if_t<!traits::has_size< Number >::value, Number > alfi::ratf::val_mul (const RationalFunction< Number, Container > &rf, const Number &x)
 Evaluates the rational function at a scalar point using Horner's method.
 
template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
std::enable_if_t< traits::has_size< Container< Number > >::value, Container< Number > > alfi::ratf::val_mul (const RationalFunction< Number, Container > &rf, const Container< Number > &xx)
 Evaluates the rational function at each point in the container using val_mul for scalar values.
 
template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
std::enable_if_t<!traits::has_size< Number >::value, Number > alfi::ratf::val_div (const RationalFunction< Number, Container > &rf, const Number &x)
 Evaluates the rational function at a scalar point by factoring out powers of x.
 
template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
std::enable_if_t< traits::has_size< Container< Number > >::value, Container< Number > > alfi::ratf::val_div (const RationalFunction< Number, Container > &rf, const Container< Number > &xx)
 Evaluates the rational function at each point in the container using val_div for scalar values.
 
template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
std::enable_if_t<!traits::has_size< Number >::value, Number > alfi::ratf::val (const RationalFunction< Number, Container > &rf, const Number &x)
 Evaluates the rational function at a scalar point.
 
template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
std::enable_if_t< traits::has_size< Container< Number > >::value, Container< Number > > alfi::ratf::val (const RationalFunction< Number, Container > &rf, const Container< Number > &xx)
 Evaluates the rational function at each point in the container using val for scalar values.
 
template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
RationalFunction< Number, Container > alfi::ratf::pade (Container< Number > P, SizeT n, SizeT m, const Number &epsilon=std::numeric_limits< Number >::epsilon())
 Computes the [n / m] Pade approximant of the polynomial P about the point \(x = 0\).