BairstowRootFinder Class 
Namespace: CenterSpace.NMath.Core
The BairstowRootFinder type exposes the following members.
Name  Description  

BairstowRootFinder 
Constructs an instance with the specified tolerance an maximum iteration
values.

Name  Description  

FindAllRoots(Double, Int32, Double) 
Finds all the roots of polynomial by repeated application of Biarstow's method.
 
FindAllRoots(DoubleVector, Int32, Double) 
Finds all the roots of polynomial by repeated application of Biarstow's method.
 
FindAllRoots(Polynomial, Int32, Double) 
Finds all the roots of polynomial by repeated application of Biarstow's method.
 
FindUniqueRoots(IListBairstowRootFinderSolveResult, Double) 
Extracts the unique roots from the list of all roots resulting from Applying Bairstow's method to find
all roots of a polynomial.
Equality is determined by the "relative error" between the two values,
x and y, being compared according to the formula:
E = x  y, if max(x, y) is less than 1
x  y / max(x, y), otherwise
 
FindUniqueRoots(Double, Int32, Double) 
Finds the unique roots of a polynomial
P(x) = a[0] + a[1]*x + a[2]*x^2 + ... + a[n]*x^n
using repeated application of Bairstow's method.
 
FindUniqueRoots(DoubleVector, Int32, Double) 
Finds the unique roots of a polynomial
P(x) = a[0] + a[1]*x + a[2]*x^2 + ... + a[n]*x^n
using repeated application of Bairstow's method.
 
FindUniqueRoots(Polynomial, Int32, Double) 
Finds the unique roots of a polynomial using repeated application of Bairstow's method.
 
Solve(Double) 
Solves the polynomial
P(x) = a[0] + a[1]*x + a[2]*x^2 + ... + a[n]*x^n
Note that the constant term is at index 0 and the leading coefficient
is at index a.Length  1  
Solve(DoubleVector) 
Solves the polynomial
P(x) = a[0] + a[1]*x + a[2]*x^2 + ... + a[n]*x^n
Note that the constant term is at index 0 and the leading coefficient
is at index a.Length  1  
Solve(Polynomial) 
Solves the give polynomial.

Name  Description  

MaxIterations 
The maximum number of iterations performed.
 
Small 
Number for determining if a value is approximately zero.
The algorithm will consider a number x to be zero if
the absolute value of x is less than Small  
Tolerance 
Iteration terminates with a converged status if the step length falls
below this value.
In moving from iterative step n to n + 1, the step length is defined as
StepLength = sqrt((u(n)  u(n+1))^2 + (v(n)  v(n+1))^2)
where un and vn are the coefficients in the quadratic
x^2 + u(n)*x + v(n)
at the nth step.
