16 #ifndef SURGSIM_MATH_POLYNOMIALROOTS_H 17 #define SURGSIM_MATH_POLYNOMIALROOTS_H 43 template <
typename T,
int N>
114 template <
typename T,
int N>
115 void solve(
const T& a,
const T& b,
const T& epsilon,
int* numRoots, std::array<T, N>* roots);
127 template <
typename T,
int N>
128 void solve(
const T& a,
const T& b,
const T& c,
const T& epsilon,
int* numRoots, std::array<T, N>* roots);
135 #endif // SURGSIM_MATH_POLYNOMIALROOTS_H Definition: CompoundShapeToGraphics.cpp:29
int getNumRoots() const
Definition: PolynomialRoots-inl.h:32
std::array< T, N > m_roots
An array of up to N roots for a degree N polynomial ordered ascendingly.
Definition: PolynomialRoots.h:78
PolynomialRootsCommon & operator=(const PolynomialRootsCommon &)
PolynomialRootsCommon()
Constructor. Since the constructor must define the roots, only allow construction from a derived clas...
Definition: PolynomialRoots.h:72
static const int DEGENERATE
Indicator for a degenerate polynomial (infinite number of roots).
Definition: PolynomialRoots.h:48
Polynomial<T, 2> specializes the Polynomial class for degree 2 (quadratic polynomials) ...
Definition: Polynomial.h:183
The (algebraic) roots of a Polynomial<N,T>.
Definition: PolynomialRoots.h:36
T operator[](int i) const
Read only access to the roots of the polynomial.
Definition: PolynomialRoots-inl.h:38
bool isDegenerate() const
Definition: PolynomialRoots-inl.h:26
void solve(const T &a, const T &b, const T &epsilon, int *numRoots, std::array< T, N > *roots)
Specialized solve routine for linear polynomials (2 coefficients)
Definition: PolynomialRoots-inl.h:64
int m_numRoots
The number of roots available for the polynomial, or DEGENERATE if there are infinite roots...
Definition: PolynomialRoots.h:75
Polynomial<T, 1> specializes the Polynomial class for degree 1 (linear polynomials) ...
Definition: Polynomial.h:117
The common base class for PolynomialRoots specializations for various N.
Definition: PolynomialRoots.h:44