Polynomial evaluation and manipulation utilities.
More...
#include <poly_math.hpp>
|
| template<typename SampleType = float> |
| static SampleType | eval (const std::vector< SampleType > &coeffs, SampleType x) |
| | Evaluate polynomial using Horner's method.
|
| template<typename SampleType = float> |
| static std::complex< SampleType > | eval_complex (const std::vector< SampleType > &coeffs, std::complex< SampleType > z) |
| | Evaluate complex polynomial (for frequency response).
|
| template<typename SampleType = float> |
| static std::pair< std::complex< SampleType >, std::complex< SampleType > > | roots_quadratic (SampleType a, SampleType b, SampleType c) |
| | Roots of quadratic ax^2 + bx + c.
|
| template<typename SampleType = float> |
| static std::vector< SampleType > | multiply (const std::vector< SampleType > &a, const std::vector< SampleType > &b) |
| | Multiply two polynomials (convolution of coefficients). Not RT-safe.
|
| template<typename SampleType = float> |
| static std::vector< SampleType > | add (const std::vector< SampleType > &a, const std::vector< SampleType > &b) |
| | Add two polynomials. Not RT-safe.
|
| template<typename SampleType = float> |
| static std::vector< SampleType > | scale (const std::vector< SampleType > &p, SampleType s) |
| | Scale all coefficients by a constant. Not RT-safe.
|
| template<typename SampleType = float> |
| static std::vector< SampleType > | derivative (const std::vector< SampleType > &p) |
| | Derivative of a polynomial. Not RT-safe.
|
Polynomial evaluation and manipulation utilities.
RT contract: eval(), eval_complex(), roots_quadratic(), and fixed-size matrix operations are allocation-free. Helpers that return std::vector allocate result storage and are design/control-thread utilities.
static SampleType eval(const std::vector< SampleType > &coeffs, SampleType x)
Evaluate polynomial using Horner's method.
Definition poly_math.hpp:32
static std::pair< std::complex< SampleType >, std::complex< SampleType > > roots_quadratic(SampleType a, SampleType b, SampleType c)
Roots of quadratic ax^2 + bx + c.
Definition poly_math.hpp:58
◆ add()
template<typename SampleType = float>
| std::vector< SampleType > pulp::signal::Polynomial::add |
( |
const std::vector< SampleType > & | a, |
|
|
const std::vector< SampleType > & | b ) |
|
inlinestatic |
Add two polynomials. Not RT-safe.
◆ derivative()
template<typename SampleType = float>
| std::vector< SampleType > pulp::signal::Polynomial::derivative |
( |
const std::vector< SampleType > & | p | ) |
|
|
inlinestatic |
Derivative of a polynomial. Not RT-safe.
◆ eval()
template<typename SampleType = float>
| SampleType pulp::signal::Polynomial::eval |
( |
const std::vector< SampleType > & | coeffs, |
|
|
SampleType | x ) |
|
inlinestatic |
Evaluate polynomial using Horner's method.
coeffs[0] = constant, coeffs[n] = x^n coefficient.
◆ eval_complex()
template<typename SampleType = float>
| std::complex< SampleType > pulp::signal::Polynomial::eval_complex |
( |
const std::vector< SampleType > & | coeffs, |
|
|
std::complex< SampleType > | z ) |
|
inlinestatic |
Evaluate complex polynomial (for frequency response).
◆ multiply()
template<typename SampleType = float>
| std::vector< SampleType > pulp::signal::Polynomial::multiply |
( |
const std::vector< SampleType > & | a, |
|
|
const std::vector< SampleType > & | b ) |
|
inlinestatic |
Multiply two polynomials (convolution of coefficients). Not RT-safe.
◆ roots_quadratic()
template<typename SampleType = float>
| std::pair< std::complex< SampleType >, std::complex< SampleType > > pulp::signal::Polynomial::roots_quadratic |
( |
SampleType | a, |
|
|
SampleType | b, |
|
|
SampleType | c ) |
|
inlinestatic |
Roots of quadratic ax^2 + bx + c.
Returns complex roots (may be real with imag=0).
◆ scale()
template<typename SampleType = float>
| std::vector< SampleType > pulp::signal::Polynomial::scale |
( |
const std::vector< SampleType > & | p, |
|
|
SampleType | s ) |
|
inlinestatic |
Scale all coefficients by a constant. Not RT-safe.
The documentation for this struct was generated from the following file:
- /home/runner/work/pulp/pulp/core/signal/include/pulp/signal/poly_math.hpp