[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]
|
PolynomialView< T > Class Template Reference | ![]() |
#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* iterator |
Iterator for the coefficient sequence
| 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.
| PromoteTraits<T, V>::Promote operator() | ( | V | v | ) | const |
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.
| void differentiate | ( | unsigned int | n = 1 | ) |
Differentiate the polynomial n times.
| void deflate | ( | T const & | r, |
| unsigned int | multiplicity = 1 |
||
| ) |
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().
| void forwardDeflate | ( | T const & | v | ) |
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).
| void forwardBackwardDeflate | ( | T | v | ) |
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.
| void backwardDeflate | ( | T | v | ) |
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).
| void deflateConjugatePair | ( | Complex const & | v | ) |
Deflate the polynomial with the complex conjugate roots r and conj(r).
The behavior of this function is undefined if these are not roots.
| void minimizeOrder | ( | double | epsilon = 0.0 | ) |
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.
| void normalize | ( | ) |
Normalize the polynomial, i.e. dived by the highest coefficient.
| iterator begin | ( | ) |
Get iterator for the coefficient sequence.
| iterator end | ( | ) |
Get end iterator for the coefficient sequence.
| const_iterator begin | ( | ) | const |
Get const_iterator for the coefficient sequence.
| const_iterator end | ( | ) | const |
Get end const_iterator for the coefficient sequence.
| unsigned int size | ( | ) | const |
Get length of the coefficient sequence (order() + 1).
| unsigned int order | ( | ) | const |
Get order of the polynomial.
| double epsilon | ( | ) | const |
Get requested precision for polynomial algorithms (especially root finding).
| void setEpsilon | ( | double | eps | ) |
Set requested precision for polynomial algorithms (especially root finding).
|
© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) |
html generated using doxygen and Python
|