Defined to be inherited by polynomial solvers: it provides convenient methods such as
- real roots,
- greatest, smallest complex roots,
- real roots with greatest, smallest absolute real value,
- greatest, smallest real roots.
More...
List of all members.
Public Types |
typedef DenseIndex | Index |
typedef NumTraits< Scalar >::Real | RealScalar |
typedef Matrix< RootType, _Deg, 1 > | RootsType |
typedef std::complex< RealScalar > | RootType |
typedef _Scalar | Scalar |
Public Member Functions |
const RealScalar & | absGreatestRealRoot (bool &hasArealRoot, const RealScalar &absImaginaryThreshold=NumTraits< Scalar >::dummy_precision()) const |
const RealScalar & | absSmallestRealRoot (bool &hasArealRoot, const RealScalar &absImaginaryThreshold=NumTraits< Scalar >::dummy_precision()) const |
const RealScalar & | greatestRealRoot (bool &hasArealRoot, const RealScalar &absImaginaryThreshold=NumTraits< Scalar >::dummy_precision()) const |
const RootType & | greatestRoot () const |
template<typename OtherPolynomial > |
| PolynomialSolverBase (const OtherPolynomial &poly) |
template<typename Stl_back_insertion_sequence > |
void | realRoots (Stl_back_insertion_sequence &bi_seq, const RealScalar &absImaginaryThreshold=NumTraits< Scalar >::dummy_precision()) const |
const RootsType & | roots () const |
const RealScalar & | smallestRealRoot (bool &hasArealRoot, const RealScalar &absImaginaryThreshold=NumTraits< Scalar >::dummy_precision()) const |
const RootType & | smallestRoot () const |
Protected Member Functions |
template<typename squaredNormBinaryPredicate > |
const RootType & | selectComplexRoot_withRespectToNorm (squaredNormBinaryPredicate &pred) const |
template<typename squaredRealPartBinaryPredicate > |
const RealScalar & | selectRealRoot_withRespectToAbsRealPart (squaredRealPartBinaryPredicate &pred, bool &hasArealRoot, const RealScalar &absImaginaryThreshold=NumTraits< Scalar >::dummy_precision()) const |
template<typename RealPartBinaryPredicate > |
const RealScalar & | selectRealRoot_withRespectToRealPart (RealPartBinaryPredicate &pred, bool &hasArealRoot, const RealScalar &absImaginaryThreshold=NumTraits< Scalar >::dummy_precision()) const |
template<typename OtherPolynomial > |
void | setPolynomial (const OtherPolynomial &poly) |
Protected Attributes |
RootsType | m_roots |
Detailed Description
template<typename _Scalar, int _Deg>
class PolynomialSolverBase< _Scalar, _Deg >
Defined to be inherited by polynomial solvers: it provides convenient methods such as
- real roots,
- greatest, smallest complex roots,
- real roots with greatest, smallest absolute real value,
- greatest, smallest real roots.
It stores the set of roots as a vector of complexes.
Member Function Documentation
const RealScalar& absGreatestRealRoot |
( |
bool & |
hasArealRoot, |
|
|
const RealScalar & |
absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() | |
|
) |
| | const [inline] |
- Returns:
- a real root with greatest absolute magnitude. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the _Scalar template parameter of the PolynomialSolver class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.
- Parameters:
-
[out] | hasArealRoot | : boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. |
[in] | absImaginaryThreshold | : threshold on the absolute imaginary part to decide whether or not a root is real. |
const RealScalar& absSmallestRealRoot |
( |
bool & |
hasArealRoot, |
|
|
const RealScalar & |
absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() | |
|
) |
| | const [inline] |
- Returns:
- a real root with smallest absolute magnitude. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the _Scalar template parameter of the PolynomialSolver class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.
- Parameters:
-
[out] | hasArealRoot | : boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. |
[in] | absImaginaryThreshold | : threshold on the absolute imaginary part to decide whether or not a root is real. |
const RealScalar& greatestRealRoot |
( |
bool & |
hasArealRoot, |
|
|
const RealScalar & |
absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() | |
|
) |
| | const [inline] |
- Returns:
- the real root with greatest value. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the _Scalar template parameter of the PolynomialSolver class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.
- Parameters:
-
[out] | hasArealRoot | : boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. |
[in] | absImaginaryThreshold | : threshold on the absolute imaginary part to decide whether or not a root is real. |
const RootType& greatestRoot |
( |
|
) |
const [inline] |
- Returns:
- the complex root with greatest norm.
void realRoots |
( |
Stl_back_insertion_sequence & |
bi_seq, |
|
|
const RealScalar & |
absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() | |
|
) |
| | const [inline] |
Clear and fills the back insertion sequence with the real roots of the polynomial i.e. the real part of the complex roots that have an imaginary part which absolute value is smaller than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the _Scalar template parameter of the PolynomialSolver class as the default value.
- Parameters:
-
[out] | bi_seq | : the back insertion sequence (stl concept) |
[in] | absImaginaryThreshold | : the maximum bound of the imaginary part of a complex number that is considered as real. |
const RootsType& roots |
( |
|
) |
const [inline] |
- Returns:
- the complex roots of the polynomial
const RealScalar& smallestRealRoot |
( |
bool & |
hasArealRoot, |
|
|
const RealScalar & |
absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() | |
|
) |
| | const [inline] |
- Returns:
- the real root with smallest value. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the _Scalar template parameter of the PolynomialSolver class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.
- Parameters:
-
[out] | hasArealRoot | : boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. |
[in] | absImaginaryThreshold | : threshold on the absolute imaginary part to decide whether or not a root is real. |
const RootType& smallestRoot |
( |
|
) |
const [inline] |
- Returns:
- the complex root with smallest norm.
The documentation for this class was generated from the following file: