Eigen::AutoDiffVector< ValueType, JacobianType > Class Template Reference

#include <AutoDiffVector.h>

Public Types

typedef internal::traits< ValueType >::Scalar BaseScalar
 
typedef AutoDiffScalar< Matrix< BaseScalar, JacobianType::RowsAtCompileTime, 1 > > ActiveScalar
 
typedef ActiveScalar Scalar
 
typedef AutoDiffScalar< typename JacobianType::ColXpr > CoeffType
 
typedef JacobianType::Index Index
 

Public Member Functions

 AutoDiffVector ()
 
 AutoDiffVector (const ValueType &values)
 
CoeffType operator[] (Index i)
 
const CoeffType operator[] (Index i) const
 
CoeffType operator() (Index i)
 
const CoeffType operator() (Index i) const
 
CoeffType coeffRef (Index i)
 
const CoeffType coeffRef (Index i) const
 
Index size () const
 
Scalar sum () const
 
 AutoDiffVector (const ValueType &values, const JacobianType &jac)
 
template<typename OtherValueType , typename OtherJacobianType >
 AutoDiffVector (const AutoDiffVector< OtherValueType, OtherJacobianType > &other)
 
 AutoDiffVector (const AutoDiffVector &other)
 
template<typename OtherValueType , typename OtherJacobianType >
AutoDiffVectoroperator= (const AutoDiffVector< OtherValueType, OtherJacobianType > &other)
 
AutoDiffVectoroperator= (const AutoDiffVector &other)
 
const ValueType & values () const
 
ValueType & values ()
 
const JacobianType & jacobian () const
 
JacobianType & jacobian ()
 
template<typename OtherValueType , typename OtherJacobianType >
const AutoDiffVector< typename MakeCwiseBinaryOp< internal::scalar_sum_op< BaseScalar >, ValueType, OtherValueType >::Type, typename MakeCwiseBinaryOp< internal::scalar_sum_op< BaseScalar >, JacobianType, OtherJacobianType >::Type > operator+ (const AutoDiffVector< OtherValueType, OtherJacobianType > &other) const
 
template<typename OtherValueType , typename OtherJacobianType >
AutoDiffVectoroperator+= (const AutoDiffVector< OtherValueType, OtherJacobianType > &other)
 
template<typename OtherValueType , typename OtherJacobianType >
const AutoDiffVector< typename MakeCwiseBinaryOp< internal::scalar_difference_op< Scalar >, ValueType, OtherValueType >::Type, typename MakeCwiseBinaryOp< internal::scalar_difference_op< Scalar >, JacobianType, OtherJacobianType >::Type > operator- (const AutoDiffVector< OtherValueType, OtherJacobianType > &other) const
 
template<typename OtherValueType , typename OtherJacobianType >
AutoDiffVectoroperator-= (const AutoDiffVector< OtherValueType, OtherJacobianType > &other)
 
const AutoDiffVector< typename MakeCwiseUnaryOp< internal::scalar_opposite_op< Scalar >, ValueType >::Type, typename MakeCwiseUnaryOp< internal::scalar_opposite_op< Scalar >, JacobianType >::Type > operator- () const
 
const AutoDiffVector< typename MakeCwiseUnaryOp< internal::scalar_multiple_op< Scalar >, ValueType >::Type, typename MakeCwiseUnaryOp< internal::scalar_multiple_op< Scalar >, JacobianType >::Type > operator* (const BaseScalar &other) const
 
AutoDiffVectoroperator*= (const Scalar &other)
 
template<typename OtherValueType , typename OtherJacobianType >
AutoDiffVectoroperator*= (const AutoDiffVector< OtherValueType, OtherJacobianType > &other)
 

Protected Attributes

ValueType m_values
 
JacobianType m_jacobian
 

Friends

const AutoDiffVector< typename MakeCwiseUnaryOp< internal::scalar_multiple_op< Scalar >, ValueType >::Type, typename MakeCwiseUnaryOp< internal::scalar_multiple_op< Scalar >, JacobianType >::Type > operator* (const Scalar &other, const AutoDiffVector &v)
 

Member Typedef Documentation

◆ ActiveScalar

template<typename ValueType , typename JacobianType >
typedef AutoDiffScalar<Matrix<BaseScalar, JacobianType::RowsAtCompileTime, 1> > Eigen::AutoDiffVector< ValueType, JacobianType >::ActiveScalar

◆ BaseScalar

template<typename ValueType , typename JacobianType >
typedef internal::traits<ValueType>::Scalar Eigen::AutoDiffVector< ValueType, JacobianType >::BaseScalar

◆ CoeffType

template<typename ValueType , typename JacobianType >
typedef AutoDiffScalar<typename JacobianType::ColXpr> Eigen::AutoDiffVector< ValueType, JacobianType >::CoeffType

◆ Index

template<typename ValueType , typename JacobianType >
typedef JacobianType::Index Eigen::AutoDiffVector< ValueType, JacobianType >::Index

◆ Scalar

template<typename ValueType , typename JacobianType >
typedef ActiveScalar Eigen::AutoDiffVector< ValueType, JacobianType >::Scalar

Constructor & Destructor Documentation

◆ AutoDiffVector() [1/5]

template<typename ValueType , typename JacobianType >
Eigen::AutoDiffVector< ValueType, JacobianType >::AutoDiffVector ( )
inline
45 {}

◆ AutoDiffVector() [2/5]

template<typename ValueType , typename JacobianType >
Eigen::AutoDiffVector< ValueType, JacobianType >::AutoDiffVector ( const ValueType &  values)
inline
47 : m_values(values) { m_jacobian.setZero(); }
ValueType m_values
Definition: AutoDiffVector.h:183
const ValueType & values() const
Definition: AutoDiffVector.h:86
JacobianType m_jacobian
Definition: AutoDiffVector.h:184

References Eigen::AutoDiffVector< ValueType, JacobianType >::m_jacobian.

◆ AutoDiffVector() [3/5]

template<typename ValueType , typename JacobianType >
Eigen::AutoDiffVector< ValueType, JacobianType >::AutoDiffVector ( const ValueType &  values,
const JacobianType &  jac 
)
inline
65 : m_values(values), m_jacobian(jac) {}

◆ AutoDiffVector() [4/5]

template<typename ValueType , typename JacobianType >
template<typename OtherValueType , typename OtherJacobianType >
Eigen::AutoDiffVector< ValueType, JacobianType >::AutoDiffVector ( const AutoDiffVector< OtherValueType, OtherJacobianType > &  other)
inline
69  : m_values(other.values()), m_jacobian(other.jacobian()) {}

◆ AutoDiffVector() [5/5]

template<typename ValueType , typename JacobianType >
Eigen::AutoDiffVector< ValueType, JacobianType >::AutoDiffVector ( const AutoDiffVector< ValueType, JacobianType > &  other)
inline
71 : m_values(other.values()), m_jacobian(other.jacobian()) {}

Member Function Documentation

◆ coeffRef() [1/2]

template<typename ValueType , typename JacobianType >
CoeffType Eigen::AutoDiffVector< ValueType, JacobianType >::coeffRef ( Index  i)
inline
55 { return CoeffType(m_values[i], m_jacobian.col(i)); }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
AutoDiffScalar< typename JacobianType::ColXpr > CoeffType
Definition: AutoDiffVector.h:42

References i, Eigen::AutoDiffVector< ValueType, JacobianType >::m_jacobian, and Eigen::AutoDiffVector< ValueType, JacobianType >::m_values.

◆ coeffRef() [2/2]

template<typename ValueType , typename JacobianType >
const CoeffType Eigen::AutoDiffVector< ValueType, JacobianType >::coeffRef ( Index  i) const
inline

◆ jacobian() [1/2]

template<typename ValueType , typename JacobianType >
JacobianType& Eigen::AutoDiffVector< ValueType, JacobianType >::jacobian ( )
inline

◆ jacobian() [2/2]

◆ operator()() [1/2]

template<typename ValueType , typename JacobianType >
CoeffType Eigen::AutoDiffVector< ValueType, JacobianType >::operator() ( Index  i)
inline

◆ operator()() [2/2]

template<typename ValueType , typename JacobianType >
const CoeffType Eigen::AutoDiffVector< ValueType, JacobianType >::operator() ( Index  i) const
inline

◆ operator*()

template<typename ValueType , typename JacobianType >
const AutoDiffVector<typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>::Type, typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>::Type> Eigen::AutoDiffVector< ValueType, JacobianType >::operator* ( const BaseScalar other) const
inline
138  {
139  return AutoDiffVector<typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>::Type,
140  typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>::Type>(
141  m_values * other, m_jacobian * other);
142  }
Type
Type of JSON value.
Definition: rapidjson.h:513

References Eigen::AutoDiffVector< ValueType, JacobianType >::m_jacobian, and Eigen::AutoDiffVector< ValueType, JacobianType >::m_values.

◆ operator*=() [1/2]

template<typename ValueType , typename JacobianType >
template<typename OtherValueType , typename OtherJacobianType >
AutoDiffVector& Eigen::AutoDiffVector< ValueType, JacobianType >::operator*= ( const AutoDiffVector< OtherValueType, OtherJacobianType > &  other)
inline
177  {
178  *this = *this * other;
179  return *this;
180  }

◆ operator*=() [2/2]

template<typename ValueType , typename JacobianType >
AutoDiffVector& Eigen::AutoDiffVector< ValueType, JacobianType >::operator*= ( const Scalar other)
inline

◆ operator+()

template<typename ValueType , typename JacobianType >
template<typename OtherValueType , typename OtherJacobianType >
const AutoDiffVector< typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>, ValueType, OtherValueType>::Type, typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>, JacobianType, OtherJacobianType>::Type> Eigen::AutoDiffVector< ValueType, JacobianType >::operator+ ( const AutoDiffVector< OtherValueType, OtherJacobianType > &  other) const
inline
96  {
97  return AutoDiffVector<
98  typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>, ValueType, OtherValueType>::Type,
99  typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>, JacobianType, OtherJacobianType>::Type>(
100  m_values + other.values(), m_jacobian + other.jacobian());
101  }
AutoDiffVector()
Definition: AutoDiffVector.h:45

References Eigen::AutoDiffVector< ValueType, JacobianType >::jacobian(), Eigen::AutoDiffVector< ValueType, JacobianType >::m_jacobian, Eigen::AutoDiffVector< ValueType, JacobianType >::m_values, and Eigen::AutoDiffVector< ValueType, JacobianType >::values().

◆ operator+=()

template<typename ValueType , typename JacobianType >
template<typename OtherValueType , typename OtherJacobianType >
AutoDiffVector& Eigen::AutoDiffVector< ValueType, JacobianType >::operator+= ( const AutoDiffVector< OtherValueType, OtherJacobianType > &  other)
inline

◆ operator-() [1/2]

template<typename ValueType , typename JacobianType >
const AutoDiffVector<typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, ValueType>::Type, typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, JacobianType>::Type> Eigen::AutoDiffVector< ValueType, JacobianType >::operator- ( void  ) const
inline
130  {
131  return AutoDiffVector<typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, ValueType>::Type,
132  typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, JacobianType>::Type>(
133  -m_values, -m_jacobian);
134  }

References Eigen::AutoDiffVector< ValueType, JacobianType >::m_jacobian, and Eigen::AutoDiffVector< ValueType, JacobianType >::m_values.

◆ operator-() [2/2]

template<typename ValueType , typename JacobianType >
template<typename OtherValueType , typename OtherJacobianType >
const AutoDiffVector< typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>, ValueType, OtherValueType>::Type, typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>, JacobianType, OtherJacobianType>::Type> Eigen::AutoDiffVector< ValueType, JacobianType >::operator- ( const AutoDiffVector< OtherValueType, OtherJacobianType > &  other) const
inline
114  {
115  return AutoDiffVector<
116  typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>, ValueType, OtherValueType>::Type,
117  typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>, JacobianType, OtherJacobianType>::Type>(
118  m_values - other.values(), m_jacobian - other.jacobian());
119  }

References Eigen::AutoDiffVector< ValueType, JacobianType >::jacobian(), Eigen::AutoDiffVector< ValueType, JacobianType >::m_jacobian, Eigen::AutoDiffVector< ValueType, JacobianType >::m_values, and Eigen::AutoDiffVector< ValueType, JacobianType >::values().

◆ operator-=()

template<typename ValueType , typename JacobianType >
template<typename OtherValueType , typename OtherJacobianType >
AutoDiffVector& Eigen::AutoDiffVector< ValueType, JacobianType >::operator-= ( const AutoDiffVector< OtherValueType, OtherJacobianType > &  other)
inline

◆ operator=() [1/2]

template<typename ValueType , typename JacobianType >
AutoDiffVector& Eigen::AutoDiffVector< ValueType, JacobianType >::operator= ( const AutoDiffVector< ValueType, JacobianType > &  other)
inline

◆ operator=() [2/2]

template<typename ValueType , typename JacobianType >
template<typename OtherValueType , typename OtherJacobianType >
AutoDiffVector& Eigen::AutoDiffVector< ValueType, JacobianType >::operator= ( const AutoDiffVector< OtherValueType, OtherJacobianType > &  other)
inline

◆ operator[]() [1/2]

template<typename ValueType , typename JacobianType >
CoeffType Eigen::AutoDiffVector< ValueType, JacobianType >::operator[] ( Index  i)
inline

◆ operator[]() [2/2]

template<typename ValueType , typename JacobianType >
const CoeffType Eigen::AutoDiffVector< ValueType, JacobianType >::operator[] ( Index  i) const
inline

◆ size()

template<typename ValueType , typename JacobianType >
Index Eigen::AutoDiffVector< ValueType, JacobianType >::size ( ) const
inline

◆ sum()

template<typename ValueType , typename JacobianType >
Scalar Eigen::AutoDiffVector< ValueType, JacobianType >::sum ( ) const
inline
61  { /*std::cerr << "sum \n\n";*/ /*std::cerr << m_jacobian.rowwise().sum() << "\n\n";*/
62  return Scalar(m_values.sum(), m_jacobian.rowwise().sum());
63  }
ActiveScalar Scalar
Definition: AutoDiffVector.h:41

References Eigen::AutoDiffVector< ValueType, JacobianType >::m_jacobian, and Eigen::AutoDiffVector< ValueType, JacobianType >::m_values.

◆ values() [1/2]

template<typename ValueType , typename JacobianType >
ValueType& Eigen::AutoDiffVector< ValueType, JacobianType >::values ( )
inline

◆ values() [2/2]

Friends And Related Function Documentation

◆ operator*

template<typename ValueType , typename JacobianType >
const AutoDiffVector< typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>::Type, typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>::Type> operator* ( const Scalar other,
const AutoDiffVector< ValueType, JacobianType > &  v 
)
friend
147  {
148  return AutoDiffVector<typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>::Type,
149  typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>::Type>(
150  v.values() * other, v.jacobian() * other);
151  }
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1

Member Data Documentation

◆ m_jacobian

◆ m_values


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