bug #1264: fix compilation

This commit is contained in:
Gael Guennebaud 2016-07-27 23:30:47 +02:00
parent 188590db82
commit cc2f6d68b1
2 changed files with 13 additions and 4 deletions

View File

@ -666,13 +666,14 @@ EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(cosh,
#undef EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY #undef EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY
template<typename DerType> struct NumTraits<AutoDiffScalar<DerType> > template<typename DerType> struct NumTraits<AutoDiffScalar<DerType> >
: NumTraits< typename NumTraits<typename DerType::Scalar>::Real > : NumTraits< typename NumTraits<typename internal::remove_all<DerType>::type::Scalar>::Real >
{ {
typedef AutoDiffScalar<Matrix<typename NumTraits<typename DerType::Scalar>::Real,DerType::RowsAtCompileTime,DerType::ColsAtCompileTime, typedef typename internal::remove_all<DerType>::type DerTypeCleaned;
0, DerType::MaxRowsAtCompileTime, DerType::MaxColsAtCompileTime> > Real; typedef AutoDiffScalar<Matrix<typename NumTraits<typename DerTypeCleaned::Scalar>::Real,DerTypeCleaned::RowsAtCompileTime,DerTypeCleaned::ColsAtCompileTime,
0, DerTypeCleaned::MaxRowsAtCompileTime, DerTypeCleaned::MaxColsAtCompileTime> > Real;
typedef AutoDiffScalar<DerType> NonInteger; typedef AutoDiffScalar<DerType> NonInteger;
typedef AutoDiffScalar<DerType> Nested; typedef AutoDiffScalar<DerType> Nested;
typedef typename NumTraits<typename DerType::Scalar>::Literal Literal; typedef typename NumTraits<typename DerTypeCleaned::Scalar>::Literal Literal;
enum{ enum{
RequireInitialization = 1 RequireInitialization = 1
}; };

View File

@ -256,6 +256,14 @@ double bug_1261() {
return maxVal.value() + minVal.value(); return maxVal.value() + minVal.value();
} }
double bug_1264() {
typedef AutoDiffScalar<Vector2d> AD;
const AD s;
const Matrix<AD, 3, 1> v1;
const Matrix<AD, 3, 1> v2 = (s + 3.0) * v1;
return v2(0).value();
}
void test_autodiff() void test_autodiff()
{ {
for(int i = 0; i < g_repeat; i++) { for(int i = 0; i < g_repeat; i++) {