10 #ifndef EIGEN_AUTODIFF_VECTOR_H
11 #define EIGEN_AUTODIFF_VECTOR_H
34 template<
typename ValueType,
typename JacobianType>
39 typedef typename internal::traits<ValueType>::Scalar
BaseScalar;
43 typedef typename JacobianType::Index
Index;
73 template<
typename OtherValueType,
typename OtherJacobianType>
82 template<
typename OtherValueType,
typename OtherJacobianType>
103 template<
typename OtherValueType,
typename OtherJacobianType>
105 typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>,ValueType,OtherValueType>
::Type,
106 typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>,JacobianType,OtherJacobianType>
::Type >
110 typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>,ValueType,OtherValueType>
::Type,
111 typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>,JacobianType,OtherJacobianType>
::Type >(
116 template<
typename OtherValueType,
typename OtherJacobianType>
125 template<
typename OtherValueType,
typename OtherJacobianType>
127 typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>,ValueType,OtherValueType>
::Type,
128 typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>,JacobianType,OtherJacobianType>
::Type >
132 typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>,ValueType,OtherValueType>
::Type,
133 typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>,JacobianType,OtherJacobianType>
::Type >(
138 template<
typename OtherValueType,
typename OtherJacobianType>
148 typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, ValueType>
::Type,
149 typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, JacobianType>
::Type >
153 typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, ValueType>
::Type,
154 typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, JacobianType>
::Type >(
160 typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>
::Type,
161 typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>
::Type>
165 typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>
::Type,
166 typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>
::Type >(
172 typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>
::Type,
173 typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>
::Type >
177 typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>
::Type,
178 typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>
::Type >(
180 v.jacobian() * other);
207 template<
typename OtherValueType,
typename OtherJacobianType>
210 *
this = *
this * other;
Array< int, Dynamic, 1 > v
A scalar type replacement with automatic differentiation capability.
AutoDiffScalar< Matrix< BaseScalar, JacobianType::RowsAtCompileTime, 1 > > ActiveScalar
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
AutoDiffVector & operator=(const AutoDiffVector< OtherValueType, OtherJacobianType > &other)
JacobianType & jacobian()
AutoDiffVector & operator+=(const AutoDiffVector< OtherValueType, OtherJacobianType > &other)
AutoDiffVector & operator=(const AutoDiffVector &other)
AutoDiffScalar< typename JacobianType::ColXpr > CoeffType
CoeffType coeffRef(Index i)
AutoDiffVector(const ValueType &values)
CoeffType operator[](Index i)
JacobianType::Index Index
const AutoDiffVector< typename MakeCwiseUnaryOp< internal::scalar_opposite_op< Scalar >, ValueType >::Type, typename MakeCwiseUnaryOp< internal::scalar_opposite_op< Scalar >, JacobianType >::Type > operator-() const
AutoDiffVector(const ValueType &values, const JacobianType &jac)
internal::traits< ValueType >::Scalar BaseScalar
const CoeffType coeffRef(Index i) const
AutoDiffVector(const AutoDiffVector &other)
AutoDiffVector & operator-=(const AutoDiffVector< OtherValueType, OtherJacobianType > &other)
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
const ValueType & values() const
AutoDiffVector & operator*=(const Scalar &other)
AutoDiffVector & operator*=(const AutoDiffVector< OtherValueType, OtherJacobianType > &other)
AutoDiffVector(const AutoDiffVector< OtherValueType, OtherJacobianType > &other)
friend 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)
const JacobianType & jacobian() const
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
CoeffType operator()(Index i)
: TensorContractionSycl.h, provides various tensor contraction kernel for SYCL backend