@@ -20,24 +20,34 @@ struct NumTraits<boost::math::differentiation::autodiff_v1::detail::
20
20
};
21
21
};
22
22
23
- template <typename RealType, size_t Order, typename BinaryOp, typename A>
24
- struct ScalarBinaryOpTraits <boost::math::differentiation::autodiff_v1::detail::
25
- template fvar<RealType, Order>,
26
- A, BinaryOp> {
27
- typedef boost::math::differentiation::autodiff_v1::detail::template fvar<
28
- RealType, Order>
29
- ReturnType;
30
- };
23
+ #define BOOST_AUTODIFF_EIGEN_SCALAR_TRAITS (A ) \
24
+ template <class Scalar , size_t Order, typename BinaryOp> \
25
+ struct ScalarBinaryOpTraits <boost::math::differentiation::autodiff_v1:: \
26
+ detail::template fvar<Scalar, Order>, \
27
+ A, BinaryOp> { \
28
+ typedef boost::math::differentiation::autodiff_v1::detail::template fvar< \
29
+ Scalar, Order> \
30
+ ReturnType; \
31
+ }; \
32
+ template <class Scalar , size_t Order, typename BinaryOp> \
33
+ struct ScalarBinaryOpTraits <A, \
34
+ boost::math::differentiation::autodiff_v1:: \
35
+ detail::template fvar<Scalar, Order>, \
36
+ BinaryOp> { \
37
+ typedef boost::math::differentiation::autodiff_v1::detail::template fvar< \
38
+ Scalar, Order> \
39
+ ReturnType; \
40
+ };
31
41
32
- template < typename RealType, size_t Order, typename BinaryOp, typename A>
33
- struct ScalarBinaryOpTraits <A,
34
- boost::math::differentiation::autodiff_v1::detail::
35
- template fvar<RealType, Order>,
36
- BinaryOp> {
37
- typedef boost::math::differentiation::autodiff_v1::detail:: template fvar<
38
- RealType, Order>
39
- ReturnType ;
40
- } ;
42
+ BOOST_AUTODIFF_EIGEN_SCALAR_TRAITS ( float );
43
+ BOOST_AUTODIFF_EIGEN_SCALAR_TRAITS ( double );
44
+ BOOST_AUTODIFF_EIGEN_SCALAR_TRAITS ( long double );
45
+ BOOST_AUTODIFF_EIGEN_SCALAR_TRAITS ( short );
46
+ BOOST_AUTODIFF_EIGEN_SCALAR_TRAITS ( unsigned short );
47
+ BOOST_AUTODIFF_EIGEN_SCALAR_TRAITS ( int );
48
+ BOOST_AUTODIFF_EIGEN_SCALAR_TRAITS ( unsigned int );
49
+ BOOST_AUTODIFF_EIGEN_SCALAR_TRAITS ( long ) ;
50
+ BOOST_AUTODIFF_EIGEN_SCALAR_TRAITS ( unsigned long ) ;
41
51
42
52
template <typename RealType, size_t Order, typename RealType2, size_t Order2,
43
53
typename BinaryOp>
@@ -53,7 +63,7 @@ struct ScalarBinaryOpTraits<
53
63
typedef boost::math::differentiation::autodiff_v1::detail::template fvar<
54
64
RealReturn, ReturnOrder>
55
65
ReturnType;
56
- }
66
+ };
57
67
} // namespace Eigen
58
68
59
69
#endif // BOOST_MATH_DIFFERENTIATION_AUTODIFF_EIGEN_HPP
0 commit comments