Go to the documentation of this file.
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
int m_numRoots
The number of roots available for the polynomial, or DEGENERATE if there are infinite roots.
Definition: PolynomialRoots.h:75
PolynomialRootsCommon(const PolynomialRootsCommon &)
The (algebraic) roots of a Polynomial<N,T>.
Definition: PolynomialRoots.h:36
The common base class for PolynomialRoots specializations for various N.
Definition: PolynomialRoots.h:45
Definition: CompoundShapeToGraphics.cpp:30
static const int DEGENERATE
Indicator for a degenerate polynomial (infinite number of roots).
Definition: PolynomialRoots.h:48
PolynomialRootsCommon & operator=(const PolynomialRootsCommon &)
T operator[](int i) const
Read only access to the roots of the polynomial.
Definition: PolynomialRoots-inl.h:38
Polynomial<T, 1> specializes the Polynomial class for degree 1 (linear polynomials)
Definition: Polynomial.h:118
bool isDegenerate() const
Definition: PolynomialRoots-inl.h:26
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
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
PolynomialRootsCommon()
Constructor. Since the constructor must define the roots, only allow construction from a derived clas...
Definition: PolynomialRoots.h:72
Polynomial<T, 2> specializes the Polynomial class for degree 2 (quadratic polynomials)
Definition: Polynomial.h:184