Sacado Development
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
Sacado::Tay::Taylor< T > Class Template Reference

Taylor polynomial class. More...

#include <Sacado_Tay_Taylor.hpp>

Collaboration diagram for Sacado::Tay::Taylor< T >:
Collaboration graph
[legend]

List of all members.

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 Member Functions

 Taylor ()
 Default constructor.
 Taylor (const T &x)
 Constructor with supplied value x.
 Taylor (const typename dummy< value_type, scalar_type >::type &x)
 Constructor with supplied value x.
 Taylor (unsigned int d, const T &x)
 Constructor with degree d and value x.
 Taylor (unsigned int d)
 Constructor with degree d.
 Taylor (const Taylor &x)
 Copy constructor.
 ~Taylor ()
 Destructor.
void resize (unsigned int d, bool keep_coeffs)
 Resize polynomial to degree d.
void reserve (unsigned int d)
 Reserve space for a degree d polynomial.
void copyForWrite ()
 Prepare polynomial for writing.
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.
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
unsigned int degree () const
 Returns degree of polynomial.
bool hasFastAccess (unsigned int d) const
 Returns true if polynomial has degree >= d.
const T * coeff () const
 Returns Taylor coefficient array.
T * coeff ()
 Returns Taylor coefficient array.
coeff (unsigned int i) const
 Returns degree i term with bounds checking.
T & fastAccessCoeff (unsigned int i)
 Returns degree i term without bounds checking.
const T & fastAccessCoeff (unsigned 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.

Protected Member Functions

unsigned int length () const
 Return length of array.
void resizeCoeffs (unsigned int len)
 Resize coefficient array to new size.

Protected Attributes

Sacado::Handle< TaylorDatath

Detailed Description

template<typename T>
class Sacado::Tay::Taylor< T >

Taylor polynomial class.

Uses a handle and a "copy-on-write" strategy for efficient copying, but no expression templating.


Constructor & Destructor Documentation

template<typename T >
Sacado::Tay::Taylor< T >::Taylor ( const T &  x)

Constructor with supplied value x.

Sets the first coefficient to x

template<typename T >
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.

template<typename T >
Sacado::Tay::Taylor< T >::Taylor ( unsigned int  d,
const T &  x 
)

Constructor with degree d and value x.

Initializes first coeffienct to x and of a polynomial of degree d

template<typename T >
Sacado::Tay::Taylor< T >::Taylor ( unsigned int  d)

Constructor with degree d.

Initializes all components to zero


Member Function Documentation

template<typename T >
void Sacado::Tay::Taylor< T >::copyForWrite ( ) [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.

template<typename T >
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.

template<typename T >
void Sacado::Tay::Taylor< T >::reserve ( unsigned int  d)

Reserve space for a degree d polynomial.

Coefficients are preserved.

template<typename T >
void Sacado::Tay::Taylor< T >::resize ( unsigned 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.


The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends