[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]
#include <vigra/polynomial.hxx>
Public Types | |
typedef NumericTraits< RealPromote >::ComplexPromote | Complex |
typedef T const * | const_iterator |
typedef T * | iterator |
typedef NumericTraits< RealPromote >::ValueType | Real |
typedef NumericTraits< T >::RealPromote | RealPromote |
typedef T | value_type |
Public Member Functions | |
void | backwardDeflate (T v) |
iterator | begin () |
const_iterator | begin () const |
void | deflate (T const &r, unsigned int multiplicity=1) |
void | deflateConjugatePair (Complex const &v) |
void | differentiate (unsigned int n=1) |
iterator | end () |
const_iterator | end () const |
double | epsilon () const |
void | forwardBackwardDeflate (T v) |
void | forwardDeflate (T const &v) |
void | minimizeOrder (double epsilon=0.0) |
void | normalize () |
template<class V > | |
PromoteTraits< T, V >::Promote | operator() (V v) const |
T & | operator[] (unsigned int i) |
Access the coefficient of x^i. | |
T const & | operator[] (unsigned int i) const |
Access the coefficient of x^i. | |
unsigned int | order () const |
PolynomialView (T *coeffs, unsigned int order, double epsilon=1.0e-14) | |
void | setEpsilon (double eps) |
unsigned int | size () const |
Polynomial interface for an externally managed array.
The coefficient type T
can be either a scalar or complex (compatible to std::complex
) type.
#include <vigra/polynomial.hxx>
Namespace: vigra
typedef T value_type |
Coefficient type of the polynomial
typedef NumericTraits<T>::RealPromote RealPromote |
Promote type of value_type
used for polynomial calculations
typedef NumericTraits<RealPromote>::ValueType Real |
Scalar type associated with RealPromote
typedef NumericTraits<RealPromote>::ComplexPromote Complex |
Complex type associated with RealPromote
typedef T const* const_iterator |
Const iterator for the coefficient sequence
PolynomialView | ( | T * | coeffs, |
unsigned int | order, | ||
double | epsilon = 1.0e-14 |
||
) |
Construct from a coefficient array of given order
.
The externally managed array must have length order+1
and is interpreted as representing the polynomial:
The coefficients are not copied, we only store a pointer to the array.epsilon
(default: 1.0e-14) determines the precision of subsequent algorithms (especially root finding) performed on the polynomial.
Evaluate the polynomial at the point v
Multiplication must be defined between the types V
and PromoteTraits<T, V>::Promote
. If both V
and V
are scalar, the result will be a scalar, otherwise it will be complex.
Deflate the polynomial at the root r
with the given multiplicity
.
The behavior of this function is undefined if r
is not a root with at least the given multiplicity. This function calls forwardBackwardDeflate().
Forward-deflate the polynomial at the root r
.
The behavior of this function is undefined if r
is not a root. Forward deflation is best if r
is the biggest root (by magnitude).
Forward/backward eflate the polynomial at the root r
.
The behavior of this function is undefined if r
is not a root. Combined forward/backward deflation is best if r
is an intermediate root or we don't know r
's relation to the other roots of the polynomial.
Backward-deflate the polynomial at the root r
.
The behavior of this function is undefined if r
is not a root. Backward deflation is best if r
is the smallest root (by magnitude).
Deflate the polynomial with the complex conjugate roots r
and conj(r)
.
The behavior of this function is undefined if these are not roots.
Adjust the polynomial's order if the highest coefficients are near zero. The order is reduced as long as the absolute value does not exceed the given epsilon.
Normalize the polynomial, i.e. dived by the highest coefficient.
const_iterator begin | ( | ) | const |
Get const_iterator for the coefficient sequence.
const_iterator end | ( | ) | const |
Get end const_iterator for the coefficient sequence.
Get length of the coefficient sequence (order() + 1
).
Get requested precision for polynomial algorithms (especially root finding).
Set requested precision for polynomial algorithms (especially root finding).
© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) |