From f4122e9f94795ce768dd67269f821b9664585aca Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Wed, 14 Sep 2011 08:35:54 +0200 Subject: [PATCH] add tan, acos, asin --- unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h b/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h index 323bac764..3510fba77 100644 --- a/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +++ b/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h @@ -586,6 +586,21 @@ atan2(const AutoDiffScalar& a, const AutoDiffScalar& b) return ret; } +EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(tan, + using std::tan; + using std::cos; + return ReturnType(tan(x.value()),x.derivatives() * (Scalar(1)/internal::abs2(cos(x.value()))));) + +EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(asin, + using std::sqrt; + using std::asin; + return ReturnType(asin(x.value()),x.derivatives() * (Scalar(1)/sqrt(1-internal::abs2(x.value()))));) + +EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(acos, + using std::sqrt; + using std::acos; + return ReturnType(acos(x.value()),x.derivatives() * (Scalar(-1)/sqrt(1-internal::abs2(x.value()))));) + #undef EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY template struct NumTraits >