11 #ifndef EIGEN_MATHFUNCTIONSIMPL_H 12 #define EIGEN_MATHFUNCTIONSIMPL_H 32 #ifdef EIGEN_VECTORIZE_FMA 33 const T plus_clamp = pset1<T>(7.99881172180175781f);
34 const T minus_clamp = pset1<T>(-7.99881172180175781f);
36 const T plus_clamp = pset1<T>(7.90531110763549805f);
37 const T minus_clamp = pset1<T>(-7.90531110763549805f);
39 const T tiny = pset1<T>(0.0004f);
40 const T x =
pmax(
pmin(a_x, plus_clamp), minus_clamp);
43 const T alpha_1 = pset1<T>(4.89352455891786e-03
f);
44 const T alpha_3 = pset1<T>(6.37261928875436e-04
f);
45 const T alpha_5 = pset1<T>(1.48572235717979e-05
f);
46 const T alpha_7 = pset1<T>(5.12229709037114e-08
f);
47 const T alpha_9 = pset1<T>(-8.60467152213735e-11
f);
48 const T alpha_11 = pset1<T>(2.00018790482477e-13
f);
49 const T alpha_13 = pset1<T>(-2.76076847742355e-16
f);
52 const T beta_0 = pset1<T>(4.89352518554385e-03
f);
53 const T beta_2 = pset1<T>(2.26843463243900e-03
f);
54 const T beta_4 = pset1<T>(1.18534705686654e-04
f);
55 const T beta_6 = pset1<T>(1.19825839466702e-06
f);
61 T p =
pmadd(x2, alpha_13, alpha_11);
62 p =
pmadd(x2, p, alpha_9);
63 p =
pmadd(x2, p, alpha_7);
64 p =
pmadd(x2, p, alpha_5);
65 p =
pmadd(x2, p, alpha_3);
66 p =
pmadd(x2, p, alpha_1);
70 T q =
pmadd(x2, beta_6, beta_4);
71 q =
pmadd(x2, q, beta_2);
72 q =
pmadd(x2, q, beta_0);
78 template<
typename RealScalar>
96 template<
typename Scalar>
104 return positive_real_hypot<RealScalar>(
abs(x),
abs(y));
141 : x == zero ? std::complex<T>(w, y < zero ? -w : w)
142 : x > zero ? std::complex<T>(
w, y / (2 *
w))
143 : std::complex<T>(
numext::abs(y) / (2 *
w), y < zero ? -w : w );
175 const T abs_z = numext::hypot(x, y);
177 const T woz = w / abs_z;
182 : x == zero ? std::complex<T>(woz, y < zero ? woz : -woz)
183 : x > zero ? std::complex<T>(woz, -y / (2 * w * abs_z))
184 : std::complex<T>(
numext::abs(y) / (2 * w * abs_z), y < zero ? woz : -woz );
192 T b =
atan2(z.imag(), z.real());
200 #endif // EIGEN_MATHFUNCTIONSIMPL_H
#define EIGEN_STRONG_INLINE
EIGEN_DONT_INLINE Scalar zero()
Namespace containing all symbols from the Eigen library.
Pose3 x2(Rot3::Ypr(0.0, 0.0, 0.0), l2)
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
T generic_fast_tanh_float(const T &a_x)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T maxi(const T &x, const T &y)
EIGEN_STRONG_INLINE Packet4f pcmp_lt(const Packet4f &a, const Packet4f &b)
EIGEN_DEVICE_FUNC Packet pmin(const Packet &a, const Packet &b)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE internal::enable_if< NumTraits< T >::IsSigned||NumTraits< T >::IsComplex, typename NumTraits< T >::Real >::type abs(const T &x)
EIGEN_DEVICE_FUNC std::complex< T > complex_rsqrt(const std::complex< T > &a_x)
Eigen::Triplet< double > T
EIGEN_DEVICE_FUNC std::complex< T > complex_sqrt(const std::complex< T > &a_x)
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
EIGEN_DEVICE_FUNC const Scalar & q
NumTraits< Scalar >::Real RealScalar
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isinf(const Eigen::bfloat16 &h)
EIGEN_DEVICE_FUNC std::complex< T > complex_log(const std::complex< T > &z)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T mini(const T &x, const T &y)
static EIGEN_DEVICE_FUNC RealScalar run(const Scalar &x, const Scalar &y)
NumTraits< Scalar >::Real RealScalar
#define EIGEN_DEVICE_FUNC
EIGEN_DEVICE_FUNC Packet pdiv(const Packet &a, const Packet &b)
#define EIGEN_USING_STD(FUNC)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isnan(const Eigen::bfloat16 &h)
EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f &a, const Packet4f &b, const Packet4f &c)
const AutoDiffScalar< Matrix< typename internal::traits< typename internal::remove_all< DerTypeA >::type >::Scalar, Dynamic, 1 > > atan2(const AutoDiffScalar< DerTypeA > &a, const AutoDiffScalar< DerTypeB > &b)
EIGEN_STRONG_INLINE Packet4f pselect(const Packet4f &mask, const Packet4f &a, const Packet4f &b)
EIGEN_DEVICE_FUNC const ImagReturnType imag() const
Jet< T, N > sqrt(const Jet< T, N > &f)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T log(const T &x)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float sqrt(const float &x)
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
EIGEN_DEVICE_FUNC Packet pmul(const Packet &a, const Packet &b)
EIGEN_DEVICE_FUNC Packet pmax(const Packet &a, const Packet &b)
EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f &a)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE RealScalar positive_real_hypot(const RealScalar &x, const RealScalar &y)