Go to the documentation of this file.
52 #ifndef vtkPolynomialSolversUnivariate_h
53 #define vtkPolynomialSolversUnivariate_h
55 #include "vtkCommonMathModule.h"
107 double* P,
int d,
double* a,
double* upperBnds,
double tol );
109 double* P,
int d,
double* a,
double* upperBnds,
double tol,
112 double* P,
int d,
double* a,
double* upperBnds,
double tol,
113 int intervalType,
bool divideGCD );
148 double* P,
int d,
double* a,
double* upperBnds,
double tol );
150 double* P,
int d,
double* a,
double* upperBnds,
double tol,
153 double* P,
int d,
double* a,
double* upperBnds,
double tol,
154 int intervalType,
bool divideGCD );
165 double* P,
int d,
double *upperBnds,
int rootcount,
double diameter );
217 static double*
SolveCubic(
double c0,
double c1,
double c2,
double c3);
249 static int SolveCubic(
double c0,
double c1,
double c2,
double c3,
250 double *r1,
double *r2,
double *r3,
int *num_roots);
260 double *r1,
double *r2,
int *num_roots);
277 static int SolveLinear(
double c0,
double c1,
double *r1,
int *num_roots);
static void SetDivisionTolerance(double tol)
Set/get the tolerance used when performing polynomial Euclidean division to find polynomial roots.
static int LinBairstowSolve(double *c, int d, double *r, double &tolerance)
Seeks all REAL roots of the d -th degree polynomial c[0] X^d + ...
static double * SolveLinear(double c0, double c1)
Solves a linear equation c0*t + c1 = 0 when c0 and c1 are REAL.
static int HabichtBisectionSolve(double *P, int d, double *a, double *upperBnds, double tol, int intervalType, bool divideGCD)
abstract base class for most VTK objects
static ostream & PrintPolynomial(ostream &os, double *P, int degP)
~vtkPolynomialSolversUnivariate() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static int FilterRoots(double *P, int d, double *upperBnds, int rootcount, double diameter)
This uses the derivative sequence to filter possible roots of a polynomial.
static int FerrariSolve(double *c, double *r, int *m, double tol)
Algebraically extracts REAL roots of the quartic polynomial with REAL coefficients X^4 + c[0] X^3 + c...
vtkPolynomialSolversUnivariate()
static double * SolveQuadratic(double c0, double c1, double c2)
Solves a quadratic equation c0*t^2 + c1*t + c2 = 0 when c0, c1, and c2 are REAL.
static double DivisionTolerance
static int SolveCubic(double c0, double c1, double c2, double c3, double *r1, double *r2, double *r3, int *num_roots)
Solves a cubic equation when c0, c1, c2, And c3 Are REAL.
static int TartagliaCardanSolve(double *c, double *r, int *m, double tol)
Algebraically extracts REAL roots of the cubic polynomial with REAL coefficients X^3 + c[0] X^2 + c[1...
a simple class to control print indentation
static int HabichtBisectionSolve(double *P, int d, double *a, double *upperBnds, double tol, int intervalType)
static int SturmBisectionSolve(double *P, int d, double *a, double *upperBnds, double tol, int intervalType)
static int SolveQuadratic(double *c, double *r, int *m)
Algebraically extracts REAL roots of the quadratic polynomial with REAL coefficients c[0] X^2 + c[1] ...
static int SolveLinear(double c0, double c1, double *r1, int *num_roots)
Solves a linear equation c0*t + c1 = 0 when c0 and c1 are REAL.
static int SolveQuadratic(double c0, double c1, double c2, double *r1, double *r2, int *num_roots)
Solves a quadratic equation c0*t^2 + c1*t + c2 = 0 when c0, c1, and c2 are REAL.
static double * SolveCubic(double c0, double c1, double c2, double c3)
Solves a cubic equation c0*t^3 + c1*t^2 + c2*t + c3 = 0 when c0, c1, c2, and c3 are REAL.
static vtkPolynomialSolversUnivariate * New()
static int SturmBisectionSolve(double *P, int d, double *a, double *upperBnds, double tol)
Finds all REAL roots (within tolerance tol) of the d -th degree polynomial P[0] X^d + ....
static int SturmBisectionSolve(double *P, int d, double *a, double *upperBnds, double tol, int intervalType, bool divideGCD)
static double GetDivisionTolerance()
static int HabichtBisectionSolve(double *P, int d, double *a, double *upperBnds, double tol)
Finds all REAL roots (within tolerance tol) of the d -th degree polynomial.