Sacado
Development
|
Taylor polynomial class. More...
#include <Sacado_Tay_Taylor.hpp>
Classes | |
struct | apply |
Turn Taylor into a meta-function class usable with mpl::apply. More... | |
struct | TaylorData |
Public Types | |
typedef T | value_type |
Typename of values. | |
typedef ScalarType< value_type > ::type | scalar_type |
Typename of scalar's (which may be different from value_type) | |
Public Types inherited from Sacado::Base< Taylor< T > > | |
typedef Taylor< T > | derived_type |
Public Member Functions | |
Taylor () | |
Default constructor. | |
Taylor (const T &x) | |
Constructor with supplied value x . More... | |
Taylor (const typename dummy< value_type, scalar_type >::type &x) | |
Constructor with supplied value x . More... | |
Taylor (int d, const T &x) | |
Constructor with degree d and value x . More... | |
Taylor (int d) | |
Constructor with degree d. More... | |
Taylor (const Taylor &x) | |
Copy constructor. | |
~Taylor () | |
Destructor. | |
void | resize (int d, bool keep_coeffs) |
Resize polynomial to degree d. More... | |
void | reserve (int d) |
Reserve space for a degree d polynomial. More... | |
void | copyForWrite () |
Prepare polynomial for writing. More... | |
bool | isEqualTo (const Taylor &x) const |
Returns whether two Taylor objects have the same values. | |
Assignment operators | |
Taylor< T > & | operator= (const T &val) |
Assignment operator with constant right-hand-side. | |
Taylor< T > & | operator= (const typename dummy< value_type, scalar_type >::type &val) |
Assignment operator with constant right-hand-side. More... | |
Taylor< T > & | operator= (const Taylor< T > &x) |
Assignment with Taylor right-hand-side. | |
Value accessor methods | |
const T & | val () const |
Returns value. | |
T & | val () |
Returns value. | |
Taylor coefficient accessor methods | |
int | degree () const |
Returns degree of polynomial. | |
bool | hasFastAccess (int d) const |
Returns true if polynomial has degree >= d. | |
const T * | coeff () const |
Returns Taylor coefficient array. | |
T * | coeff () |
Returns Taylor coefficient array. | |
T | coeff (int i) const |
Returns degree i term with bounds checking. | |
T & | fastAccessCoeff (int i) |
Returns degree i term without bounds checking. | |
const T & | fastAccessCoeff (int i) const |
Returns degree i term without bounds checking. | |
Unary operators | |
Taylor< T > | operator+ () const |
Unary-plus operator. | |
Taylor< T > | operator- () const |
Unary-minus operator. | |
Taylor< T > & | operator+= (const T &x) |
Addition-assignment operator with constant right-hand-side. | |
Taylor< T > & | operator-= (const T &x) |
Subtraction-assignment operator with constant right-hand-side. | |
Taylor< T > & | operator*= (const T &x) |
Multiplication-assignment operator with constant right-hand-side. | |
Taylor< T > & | operator/= (const T &x) |
Division-assignment operator with constant right-hand-side. | |
Taylor< T > & | operator+= (const Taylor< T > &x) |
Addition-assignment operator with Taylor right-hand-side. | |
Taylor< T > & | operator-= (const Taylor< T > &x) |
Subtraction-assignment operator with Taylor right-hand-side. | |
Taylor< T > & | operator*= (const Taylor< T > &x) |
Multiplication-assignment operator with Taylor right-hand-side. | |
Taylor< T > & | operator/= (const Taylor< T > &x) |
Division-assignment operator with Taylor right-hand-side. | |
Public Member Functions inherited from Sacado::Base< Taylor< T > > | |
const derived_type & | derived () const |
Protected Member Functions | |
int | length () const |
Return length of array. | |
void | resizeCoeffs (int len) |
Resize coefficient array to new size. | |
Protected Attributes | |
Sacado::Handle< TaylorData > | th |
Taylor polynomial class.
Uses a handle and a "copy-on-write" strategy for efficient copying, but no expression templating.
Sacado::Tay::Taylor< T >::Taylor | ( | const T & | x | ) |
Constructor with supplied value x
.
Sets the first coefficient to x
Sacado::Tay::Taylor< T >::Taylor | ( | const typename dummy< value_type, scalar_type >::type & | x | ) |
Constructor with supplied value x
.
Sets the first coefficient to x. Creates a dummy overload when ValueT and ScalarT are the same type.
Sacado::Tay::Taylor< T >::Taylor | ( | int | d, |
const T & | x | ||
) |
Constructor with degree d and value x
.
Initializes first coeffienct to x
and of a polynomial of degree d
|
explicit |
Constructor with degree d.
Initializes all components to zero
|
inline |
Prepare polynomial for writing.
This method prepares the polynomial for writing through coeff() and fastAccessCoeff() member functions. It ensures the handle for the Taylor coefficients is not shared among any other Taylor polynomial objects. If the handle is not shared it does nothing, so there is no cost in calling this method in this case. If the handle is shared and this method is not called, any changes to the coefficients by coeff() or fastAccessCoeff() may change other polynomial objects.
Taylor< T > & Sacado::Tay::Taylor< T >::operator= | ( | const typename dummy< value_type, scalar_type >::type & | val | ) |
Assignment operator with constant right-hand-side.
Creates a dummy overload when value_type and scalar_type are the same type.
void Sacado::Tay::Taylor< T >::reserve | ( | int | d | ) |
Reserve space for a degree d polynomial.
Coefficients are preserved.
References Sacado::ds_array< T, isScalar >::copy().
void Sacado::Tay::Taylor< T >::resize | ( | int | d, |
bool | keep_coeffs | ||
) |
Resize polynomial to degree d.
Coefficients are preserved if keep_coeffs
is true
, otherwise all coefficients are reset to zero.
References Sacado::ds_array< T, isScalar >::copy(), Sacado::Handle< T >::makeOwnCopy(), and Sacado::ds_array< T, isScalar >::zero().