aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/test/autodiff.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2016-05-18 16:00:11 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2016-05-18 16:00:11 +0200
commit448d9d943c3996f6d74cebad457865d005248ddd (patch)
treec32225b0181baf617ecebe5e3ea7e33b5c0fe3f0 /unsupported/test/autodiff.cpp
parent5a71eb598585f0413ed630f5007f3c0295c7ba60 (diff)
bug #1222: fix compilation in AutoDiffScalar and add respective unit test
Diffstat (limited to 'unsupported/test/autodiff.cpp')
-rw-r--r--unsupported/test/autodiff.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/unsupported/test/autodiff.cpp b/unsupported/test/autodiff.cpp
index c4606cd17..ad3f83d4e 100644
--- a/unsupported/test/autodiff.cpp
+++ b/unsupported/test/autodiff.cpp
@@ -207,7 +207,14 @@ void test_autodiff_hessian()
VERIFY_IS_APPROX(y.derivatives()(1).derivatives(), -std::sin(s1*s3+s2*s4)*Vector2d(s3*s4,s4*s4));
}
-
+double bug_1222() {
+ typedef Eigen::AutoDiffScalar<Eigen::Vector3d> AD;
+ const double _cv1_3 = 1.0;
+ const AD chi_3 = 1.0;
+ // this line did not work, because operator+ returns ADS<DerType&>, which then cannot be converted to ADS<DerType>
+ const AD denom = chi_3 + _cv1_3;
+ return denom.value();
+}
void test_autodiff()
{
@@ -217,5 +224,7 @@ void test_autodiff()
CALL_SUBTEST_3( test_autodiff_jacobian<1>() );
CALL_SUBTEST_4( test_autodiff_hessian<1>() );
}
+
+ bug_1222();
}