Public Types | Public Member Functions | Protected Attributes | Friends
AutoDiffScalar< _DerType > Class Template Reference

A scalar type replacement with automatic differentation capability. More...

#include <AutoDiffScalar.h>

List of all members.

Public Types

typedef
internal::auto_diff_special_op
< _DerType,!internal::is_same
< typename internal::traits
< typename
internal::remove_all< _DerType >
::type >::Scalar, typename
NumTraits< typename
internal::traits< typename
internal::remove_all< _DerType >
::type >::Scalar >::Real >
::value > 
Base
typedef internal::remove_all
< _DerType >::type 
DerType
typedef NumTraits< Scalar >::Real Real
typedef internal::traits
< DerType >::Scalar 
Scalar

Public Member Functions

 AutoDiffScalar ()
 AutoDiffScalar (const Scalar &value, int nbDer, int derNumber)
 AutoDiffScalar (const Real &value)
 AutoDiffScalar (const Scalar &value, const DerType &der)
template<typename OtherDerType >
 AutoDiffScalar (const AutoDiffScalar< OtherDerType > &other)
 AutoDiffScalar (const AutoDiffScalar &other)
const DerType & derivatives () const
DerType & derivatives ()
bool operator!= (const Scalar &other) const
template<typename OtherDerType >
bool operator!= (const AutoDiffScalar< OtherDerType > &b) const
const AutoDiffScalar
< CwiseUnaryOp
< internal::scalar_multiple_op
< Scalar >, const DerType > > 
operator* (const Scalar &other) const
template<typename OtherDerType >
const AutoDiffScalar
< CwiseBinaryOp
< internal::scalar_sum_op
< Scalar >, const CwiseUnaryOp
< internal::scalar_multiple_op
< Scalar >, const DerType >
, const CwiseUnaryOp
< internal::scalar_multiple_op
< Scalar >, const typename
internal::remove_all
< OtherDerType >::type > > > 
operator* (const AutoDiffScalar< OtherDerType > &other) const
AutoDiffScalaroperator*= (const Scalar &other)
template<typename OtherDerType >
AutoDiffScalaroperator*= (const AutoDiffScalar< OtherDerType > &other)
const AutoDiffScalar< DerType & > operator+ (const Scalar &other) const
template<typename OtherDerType >
const AutoDiffScalar
< CwiseBinaryOp
< internal::scalar_sum_op
< Scalar >, const DerType,
const typename
internal::remove_all
< OtherDerType >::type > > 
operator+ (const AutoDiffScalar< OtherDerType > &other) const
AutoDiffScalaroperator+= (const Scalar &other)
template<typename OtherDerType >
AutoDiffScalaroperator+= (const AutoDiffScalar< OtherDerType > &other)
const AutoDiffScalar< DerType & > operator- (const Scalar &b) const
template<typename OtherDerType >
const AutoDiffScalar
< CwiseBinaryOp
< internal::scalar_difference_op
< Scalar >, const DerType,
const typename
internal::remove_all
< OtherDerType >::type > > 
operator- (const AutoDiffScalar< OtherDerType > &other) const
const AutoDiffScalar
< CwiseUnaryOp
< internal::scalar_opposite_op
< Scalar >, const DerType > > 
operator- () const
AutoDiffScalaroperator-= (const Scalar &other)
template<typename OtherDerType >
AutoDiffScalaroperator-= (const AutoDiffScalar< OtherDerType > &other)
const AutoDiffScalar
< CwiseUnaryOp
< internal::scalar_multiple_op
< Scalar >, const DerType > > 
operator/ (const Scalar &other) const
template<typename OtherDerType >
const AutoDiffScalar
< CwiseUnaryOp
< internal::scalar_multiple_op
< Scalar >, const
CwiseBinaryOp
< internal::scalar_difference_op
< Scalar >, const CwiseUnaryOp
< internal::scalar_multiple_op
< Scalar >, const DerType >
, const CwiseUnaryOp
< internal::scalar_multiple_op
< Scalar >, const typename
internal::remove_all
< OtherDerType >::type > > > > 
operator/ (const AutoDiffScalar< OtherDerType > &other) const
AutoDiffScalaroperator/= (const Scalar &other)
template<typename OtherDerType >
AutoDiffScalaroperator/= (const AutoDiffScalar< OtherDerType > &other)
bool operator< (const Scalar &other) const
template<typename OtherDerType >
bool operator< (const AutoDiffScalar< OtherDerType > &b) const
bool operator<= (const Scalar &other) const
template<typename OtherDerType >
bool operator<= (const AutoDiffScalar< OtherDerType > &b) const
template<typename OtherDerType >
AutoDiffScalaroperator= (const AutoDiffScalar< OtherDerType > &other)
AutoDiffScalaroperator= (const AutoDiffScalar &other)
bool operator== (const Scalar &other) const
template<typename OtherDerType >
bool operator== (const AutoDiffScalar< OtherDerType > &b) const
bool operator> (const Scalar &other) const
template<typename OtherDerType >
bool operator> (const AutoDiffScalar< OtherDerType > &b) const
bool operator>= (const Scalar &other) const
template<typename OtherDerType >
bool operator>= (const AutoDiffScalar< OtherDerType > &b) const
const Scalar & value () const
Scalar & value ()

Protected Attributes

DerType m_derivatives
Scalar m_value

Friends

bool operator!= (const Scalar &a, const AutoDiffScalar &b)
const AutoDiffScalar
< CwiseUnaryOp
< internal::scalar_multiple_op
< Scalar >, const DerType > > 
operator* (const Scalar &other, const AutoDiffScalar &a)
const AutoDiffScalar< DerType & > operator+ (const Scalar &a, const AutoDiffScalar &b)
const AutoDiffScalar
< CwiseUnaryOp
< internal::scalar_opposite_op
< Scalar >, const DerType > > 
operator- (const Scalar &a, const AutoDiffScalar &b)
const AutoDiffScalar
< CwiseUnaryOp
< internal::scalar_multiple_op
< Scalar >, const DerType > > 
operator/ (const Scalar &other, const AutoDiffScalar &a)
bool operator< (const Scalar &a, const AutoDiffScalar &b)
std::ostream & operator<< (std::ostream &s, const AutoDiffScalar &a)
bool operator<= (const Scalar &a, const AutoDiffScalar &b)
bool operator== (const Scalar &a, const AutoDiffScalar &b)
bool operator> (const Scalar &a, const AutoDiffScalar &b)
bool operator>= (const Scalar &a, const AutoDiffScalar &b)

Detailed Description

template<typename _DerType>
class Eigen::AutoDiffScalar< _DerType >

A scalar type replacement with automatic differentation capability.

Parameters:
_DerTypethe vector type used to store/represent the derivatives. The base scalar type as well as the number of derivatives to compute are determined from this type. Typical choices include, e.g., Vector4f for 4 derivatives, or VectorXf if the number of derivatives is not known at compile time, and/or, the number of derivatives is large. Note that _DerType can also be a reference (e.g., VectorXf&) to wrap a existing vector into an AutoDiffScalar. Finally, _DerType can also be any Eigen compatible expression.

This class represents a scalar value while tracking its respective derivatives using Eigen's expression template mechanism.

It supports the following list of global math function:

AutoDiffScalar can be used as the scalar type of an Eigen::Matrix object. However, in that case, the expression template mechanism only occurs at the top Matrix level, while derivatives are computed right away.


Constructor & Destructor Documentation

AutoDiffScalar ( )
inline

Default constructor without any initialization.

AutoDiffScalar ( const Scalar &  value,
int  nbDer,
int  derNumber 
)
inline

Constructs an active scalar from its value, and initializes the nbDer derivatives such that it corresponds to the derNumber -th variable

AutoDiffScalar ( const Real &  value)
inline

Conversion from a scalar constant to an active scalar. The derivatives are set to zero.

AutoDiffScalar ( const Scalar &  value,
const DerType &  der 
)
inline

Constructs an active scalar from its value and derivatives der


The documentation for this class was generated from the following file: