|
| void | MathPoly::detail::EvaluatePolynomialWithDerivatives (const double *theCoeffs, int theDegree, std::complex< double > theX, std::complex< double > &theP, std::complex< double > &theDP, std::complex< double > &theD2P) |
| | Evaluate polynomial and its first two derivatives at x (complex version). Polynomial: c[n]*x^n + c[n-1]*x^(n-1) + ... + c[1]*x + c[0].
|
| |
| std::complex< double > | MathPoly::detail::LaguerreIteration (const double *theCoeffs, int theDegree, std::complex< double > theX0, double theTol, int theMaxIter) |
| | Laguerre iteration to find one root of polynomial.
|
| |
| void | MathPoly::detail::DeflateReal (double *theCoeffs, int &theDegree, double theRoot) |
| | Deflate polynomial by removing a real root. Divides p(x) by (x - root) to get q(x).
|
| |
| void | MathPoly::detail::DeflateComplex (double *theCoeffs, int &theDegree, std::complex< double > theRoot) |
| | Deflate polynomial by removing a complex conjugate pair. Divides p(x) by (x^2 + b*x + c) where b = -2*Re(root), c = |root|^2.
|
| |
| double | MathPoly::detail::RefineRealRoot (const double *theOrigCoeffs, int theOrigDegree, double theRoot) |
| | Refine a real root using Newton-Raphson.
|
| |
| GeneralPolyResult | MathPoly::Laguerre (const double *theCoeffs, int theDegree, double theTol=1.0e-12) |
| | Solve polynomial equation using Laguerre's method with deflation. Works for any degree up to THE_MAX_POLY_DEGREE.
|
| |
| GeneralPolyResult | MathPoly::LaguerreN (const double *theCoeffs, size_t theSize, double theTol=1.0e-12) |
| | Convenience function: solve polynomial given as array with specified size.
|
| |
| MathUtils::PolyResult | MathPoly::Sextic (double theA, double theB, double theC, double theD, double theE, double theF, double theG) |
| | Solve sextic (degree 6) polynomial: a*x^6 + b*x^5 + c*x^4 + d*x^3 + e*x^2 + f*x + g = 0.
|
| |
| MathUtils::PolyResult | MathPoly::Quintic (double theA, double theB, double theC, double theD, double theE, double theF) |
| | Solve quintic (degree 5) polynomial: a*x^5 + b*x^4 + c*x^3 + d*x^2 + e*x + f = 0.
|
| |
| GeneralPolyResult | MathPoly::Octic (const double theCoeffs[9]) |
| | Solve octic (degree 8) polynomial using Laguerre's method. Useful for Circle-Ellipse extrema after Weierstrass substitution.
|
| |