Core 1.0
|
Nonic polynomials. More...
#include <nonic.h>
Public Member Functions | |
Nonic () | |
Empty. | |
Nonic (const double &, const double &, const double &, const double &, const double &, const double &, const double &, const double &, const double &, const double &) | |
Creates a Nonic polynomial. | |
~Nonic () | |
Empty. | |
constexpr double & | operator[] (int) |
Access to the coefficients of the sextic. | |
constexpr double | operator[] (int) const |
Overloaded. | |
int | CheckDegree () const |
Check the degree of the Nonic. | |
Nonic | operator- () const |
Unary. | |
Nonic & | operator+= (const Nonic &) |
Destructive sum of two Nonics. | |
Nonic & | operator-= (const Nonic &) |
Destructive difference of two Nonics. | |
Nonic & | operator*= (const double &) |
Scale a Nonics by a double value. | |
Nonic & | operator/= (const double &) |
Scale a Nonics by a double value. | |
Octic | Prime () const |
Computes the first derivative of a septic, which is a quintic. | |
Septic | Second () const |
Computes the second derivative of a Nonic. | |
constexpr double | operator() (const double &) const |
Evaluates the Nonic. More... | |
constexpr double | Derivative (const double &) const |
Computes the derivative of the sextic. More... | |
Static Public Member Functions | |
static Nonic | Compose (const Cubic &, const Cubic &) |
Compose the cubic by another one. More... | |
static double | Smooth (const double &) |
Compute the value of smooth C4 interpolating function over unit interval. More... | |
static double | SmoothStep (const double &, const double &, const double &) |
Compute a Nonic smooth step. More... | |
static double | Gaussian (const double &, const double &, const double &) |
Compute a compactly supported Gaussian-like pulse. More... | |
Static Public Attributes | |
static double | epsilon = 1.0e-10 |
Epsilon value used to check discriminant terms in the root finding process. | |
Protected Attributes | |
double | c [10] = { 0.0 } |
Array of coefficients. | |
Friends | |
Nonic | operator+ (const Nonic &, const Nonic &) |
Overloaded. | |
Nonic | operator- (const Nonic &, const Nonic &) |
Overloaded. | |
Nonic | operator* (const Nonic &, const double &) |
Overloaded. | |
Nonic | operator* (const double &, const Nonic &) |
Overloaded. | |
Nonic | operator/ (const Nonic &, const double &) |
Overloaded. | |
std::ostream & | operator<< (std::ostream &, const Nonic &) |
Overloaded output-stream operator. More... | |
Nonic polynomials.
Constructors should provide the coefficients in descending order. Example of how to code the Nonic 19x9-x+1:
Compose the cubic by another one.
This function computes p ( q(x) ), where p denotes the cubic and q the argument.
q | The cubic. |
p | The argument cubic. |
|
inlineconstexpr |
Computes the derivative of the sextic.
This function is more efficient than using Prime() and then evaluating the derivative for a given input value.
x | Real. |
|
inlinestatic |
Compute a compactly supported Gaussian-like pulse.
The function has C4 continuity.
c | Center. |
r | Radius. |
x | Value. |
|
inlineconstexpr |
Evaluates the Nonic.
x | Argument value of the function. |
|
inlinestatic |
Compute the value of smooth C4 interpolating function over unit interval.
The Nonic is defined as x4(-20 x3 + 70 x2 -84 x + 35). Its first four derivatives at 0.0 and 1.0 are 0.0.
The Lipschitz constant of the smooth nonic over [0,1] is λ=315/128.
x | Argument in [0,1]. |
|
inlinestatic |
Compute a Nonic smooth step.
The code is slightly more efficient than:
x | Input value. |
a,b | Interval values. |