Quartic roots
Utilities for C++ programming
Loading...
Searching...
No Matches
PolynomialRoots.hh File Reference
#include <cmath>
#include <cfloat>
#include <iostream>
#include <complex>
#include <cstdint>
#include <format>
#include <iomanip>
#include <iosfwd>
#include <limits>
#include <sstream>
#include <string>
#include "PolynomialRoots-complex.hxx"

Go to the source code of this file.

Classes

class  PolynomialRoots::QuadraticT< T_real, T_complex >
class  PolynomialRoots::CubicT< T_real, T_complex >
class  PolynomialRoots::QuarticT< T_real, T_complex >

Namespaces

namespace  PolynomialRoots
namespace  std

Typedefs

using PolynomialRoots::real_type = double
 Scalar type used by the standard-precision API.
using PolynomialRoots::integer = int
 Integer type used for degrees, counts and indices.
using PolynomialRoots::ostream_type = std::basic_ostream<char>
 Output stream type used by diagnostic methods.
using PolynomialRoots::istream_type = std::basic_istream<char>
 Input stream type reserved for formatted input helpers.
using PolynomialRoots::Quadratic = QuadraticT<real_type, real_complex>
using PolynomialRoots::Cubic = CubicT<real_type, real_complex>
using PolynomialRoots::Quartic = QuarticT<real_type, real_complex>

Functions

template<typename... Args>
void PolynomialRoots::root_assert (bool cond, std::format_string< Args... > fmt, Args &&... args)
template<typename T_real>
T_real PolynomialRoots::machepsiT ()
 Return the machine epsilon associated with the scalar type.
template<typename T_real>
T_real PolynomialRoots::toleranceT ()
 Return the default residual tolerance associated with the scalar type.
template<typename T_real>
T_real PolynomialRoots::eval_poly (T_real const op[], integer const Degree, T_real const &x)
template<typename T_real>
void PolynomialRoots::eval_poly_Dpoly (T_real const op[], integer const Degree, T_real const &x, T_real &p, T_real &dp)
template<typename T_real>
bool PolynomialRoots::Newton_step (T_real const op[], integer const Degree, T_real &x)
template<typename T_real, typename T_complex>
T_complex PolynomialRoots::eval_poly_complex (T_real const op[], integer const Degree, T_complex const &x)
int PolynomialRoots::roots (real_type const *op, integer const Degree, real_type *zeror, real_type *zeroi)
template<typename T_real>
T_real PolynomialRoots::evalMonicCubic (T_real const &x, T_real const &a, T_real const &b, T_real const &c)
template<typename T_real>
void PolynomialRoots::evalMonicCubic (T_real const &x, T_real const &a, T_real const &b, T_real const &c, T_real &p, T_real &dp)
 Evaluate a monic cubic polynomial and its first derivative.
template<typename T_real>
void PolynomialRoots::evalMonicCubic (T_real const &x, T_real const &a, T_real const &b, T_real const &c, T_real &p, T_real &dp, T_real &ddp)
 Evaluate a monic cubic polynomial and its first two derivatives.
template<typename T_real>
T_real PolynomialRoots::evalMonicQuartic (T_real const &x, T_real const &a, T_real const &b, T_real const &c, T_real const &d)
 Evaluate a monic quartic polynomial.
template<typename T_real>
void PolynomialRoots::evalMonicQuartic (T_real const &x, T_real const &a, T_real const &b, T_real const &c, T_real const &d, T_real &p, T_real &dp)
 Evaluate a monic quartic polynomial and its first derivative.
template<typename T_real>
void PolynomialRoots::evalMonicQuartic (T_real const &x, T_real const &a, T_real const &b, T_real const &c, T_real const &d, T_real &p, T_real &dp, T_real &ddp)
 Evaluate a monic quartic polynomial and its first two derivatives.

Variables

constexpr integer PolynomialRoots::MAXDEGREE = 100
 Maximum degree accepted by the Jenkins-Traub entry point.