WPILibC++ 2023.4.3
Eigen::numext Namespace Reference

Classes

struct  equal_to
 
struct  not_equal_to
 

Typedefs

typedef ::uint8_t uint8_t
 
typedef ::int8_t int8_t
 
typedef ::uint16_t uint16_t
 
typedef ::int16_t int16_t
 
typedef ::uint32_t uint32_t
 
typedef ::int32_t int32_t
 
typedef ::uint64_t uint64_t
 
typedef ::int64_t int64_t
 

Functions

template<typename Tgt , typename Src >
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Tgt bit_cast (const Src &src)
 
template<typename T >
EIGEN_STRONG_INLINE void swap (T &a, T &b)
 
template<typename T >
EIGEN_DEVICE_FUNCdiv_ceil (const T &a, const T &b)
 
template<typename X , typename Y >
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool equal_strict (const X &x, const Y &y)
 
template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool equal_strict (const float &x, const float &y)
 
template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool equal_strict (const double &x, const double &y)
 
template<typename X , typename Y >
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool not_equal_strict (const X &x, const Y &y)
 
template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool not_equal_strict (const float &x, const float &y)
 
template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool not_equal_strict (const double &x, const double &y)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEmini (const T &x, const T &y)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEmaxi (const T &x, const T &y)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (real, Scalar) real(const Scalar &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(real_ref, Scalar)>::type real_ref (const Scalar &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (real_ref, Scalar) real_ref(Scalar &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (imag, Scalar) imag(const Scalar &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (arg, Scalar) arg(const Scalar &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar)>::type imag_ref (const Scalar &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (imag_ref, Scalar) imag_ref(Scalar &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (conj, Scalar) conj(const Scalar &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (abs2, Scalar) abs2(const Scalar &x)
 
EIGEN_DEVICE_FUNC bool abs2 (bool x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEabsdiff (const T &x, const T &y)
 
template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float absdiff (const float &x, const float &y)
 
template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE double absdiff (const double &x, const double &y)
 
template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE long double absdiff (const long double &x, const long double &y)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (norm1, Scalar) norm1(const Scalar &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (hypot, Scalar) hypot(const Scalar &x
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (log1p, Scalar) log1p(const Scalar &x)
 
template<typename ScalarX , typename ScalarY >
EIGEN_DEVICE_FUNC internal::pow_impl< ScalarX, ScalarY >::result_type pow (const ScalarX &x, const ScalarY &y)
 
template<typename T >
EIGEN_DEVICE_FUNC bool() isnan (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC bool() isinf (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC bool() isfinite (const T &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (rint, Scalar) rint(const Scalar &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (round, Scalar) round(const Scalar &x)
 
template<typename T >
EIGEN_DEVICE_FUNC T() floor (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC T() ceil (const T &x)
 
int log2 (int x)
 Log base 2 for 32 bits positive integers. More...
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE EIGEN_MATHFUNC_RETVAL (sqrt, Scalar) sqrt(const Scalar &x)
 
template<>
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_DEVICE_FUNC bool sqrt< bool > (const bool &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINErsqrt (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINElog (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE internal::enable_if< NumTraits< T >::IsSigned||NumTraits< T >::IsComplex, typenameNumTraits< T >::Real >::type abs (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE internal::enable_if<!(NumTraits< T >::IsSigned||NumTraits< T >::IsComplex), typenameNumTraits< T >::Real >::type abs (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEexp (const T &x)
 
template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_MATHFUNC_RETVAL (expm1, Scalar) expm1(const Scalar &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEcos (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEsin (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEtan (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEacos (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEasin (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEatan (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEcosh (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEsinh (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEtanh (const T &x)
 
template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINEfmod (const T &a, const T &b)
 
template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float sqrt (const float &x)
 
template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE double sqrt (const double &x)
 
template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bit_cast< Eigen::half, uint16_t > (const uint16_t &src)
 
template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC uint16_t bit_cast< uint16_t, Eigen::half > (const Eigen::half &src)
 
template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isnan (const Eigen::bfloat16 &h)
 
template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isinf (const Eigen::bfloat16 &h)
 
template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isfinite (const Eigen::bfloat16 &h)
 
template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bit_cast< Eigen::bfloat16, uint16_t > (const uint16_t &src)
 
template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC uint16_t bit_cast< uint16_t, Eigen::bfloat16 > (const Eigen::bfloat16 &src)
 

Variables

EIGEN_DEVICE_FUNC const Scalar & y
 

Typedef Documentation

◆ int16_t

typedef ::int16_t Eigen::numext::int16_t

◆ int32_t

typedef ::int32_t Eigen::numext::int32_t

◆ int64_t

typedef ::int64_t Eigen::numext::int64_t

◆ int8_t

typedef ::int8_t Eigen::numext::int8_t

◆ uint16_t

typedef ::uint16_t Eigen::numext::uint16_t

◆ uint32_t

typedef ::uint32_t Eigen::numext::uint32_t

◆ uint64_t

typedef ::uint64_t Eigen::numext::uint64_t

◆ uint8_t

typedef ::uint8_t Eigen::numext::uint8_t

Function Documentation

◆ abs() [1/2]

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE internal::enable_if< NumTraits< T >::IsSigned||NumTraits< T >::IsComplex, typenameNumTraits< T >::Real >::type Eigen::numext::abs ( const T &  x)

◆ abs() [2/2]

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE internal::enable_if<!(NumTraits< T >::IsSigned||NumTraits< T >::IsComplex), typenameNumTraits< T >::Real >::type Eigen::numext::abs ( const T &  x)

◆ abs2()

EIGEN_DEVICE_FUNC bool Eigen::numext::abs2 ( bool  x)
inline

◆ absdiff() [1/4]

template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE double Eigen::numext::absdiff ( const double &  x,
const double &  y 
)

◆ absdiff() [2/4]

template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float Eigen::numext::absdiff ( const float &  x,
const float &  y 
)

◆ absdiff() [3/4]

template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE long double Eigen::numext::absdiff ( const long double &  x,
const long double &  y 
)

◆ absdiff() [4/4]

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::absdiff ( const T &  x,
const T &  y 
)

◆ acos()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::acos ( const T &  x)

◆ asin()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::asin ( const T &  x)

◆ atan()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::atan ( const T &  x)

◆ bit_cast()

template<typename Tgt , typename Src >
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Tgt Eigen::numext::bit_cast ( const Src &  src)

◆ bit_cast< Eigen::bfloat16, uint16_t >()

◆ bit_cast< Eigen::half, uint16_t >()

◆ bit_cast< uint16_t, Eigen::bfloat16 >()

◆ bit_cast< uint16_t, Eigen::half >()

◆ ceil()

template<typename T >
EIGEN_DEVICE_FUNC T() Eigen::numext::ceil ( const T &  x)

◆ cos()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::cos ( const T &  x)

◆ cosh()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::cosh ( const T &  x)

◆ div_ceil()

template<typename T >
EIGEN_DEVICE_FUNC T Eigen::numext::div_ceil ( const T &  a,
const T &  b 
)

◆ EIGEN_MATHFUNC_RETVAL() [1/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( abs2  ,
Scalar   
) const &
inline

◆ EIGEN_MATHFUNC_RETVAL() [2/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( arg  ,
Scalar   
) const &
inline

◆ EIGEN_MATHFUNC_RETVAL() [3/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( conj  ,
Scalar   
) const &
inline

◆ EIGEN_MATHFUNC_RETVAL() [4/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( expm1  ,
Scalar   
) const &
inline

◆ EIGEN_MATHFUNC_RETVAL() [5/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( hypot  ,
Scalar   
) const &
inline

◆ EIGEN_MATHFUNC_RETVAL() [6/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( imag  ,
Scalar   
) const &
inline

◆ EIGEN_MATHFUNC_RETVAL() [7/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( imag_ref  ,
Scalar   
) &
inline

◆ EIGEN_MATHFUNC_RETVAL() [8/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( log1p  ,
Scalar   
) const &
inline

◆ EIGEN_MATHFUNC_RETVAL() [9/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( norm1  ,
Scalar   
) const &
inline

◆ EIGEN_MATHFUNC_RETVAL() [10/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( real  ,
Scalar   
) const &
inline

◆ EIGEN_MATHFUNC_RETVAL() [11/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( real_ref  ,
Scalar   
) &
inline

◆ EIGEN_MATHFUNC_RETVAL() [12/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( rint  ,
Scalar   
) const &
inline

◆ EIGEN_MATHFUNC_RETVAL() [13/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC Eigen::numext::EIGEN_MATHFUNC_RETVAL ( round  ,
Scalar   
) const &
inline

◆ EIGEN_MATHFUNC_RETVAL() [14/14]

template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Eigen::numext::EIGEN_MATHFUNC_RETVAL ( sqrt  ,
Scalar   
) const &
Returns
the square root of x.

It is essentially equivalent to

using std::sqrt; return sqrt(x);
auto sqrt(const UnitType &value) noexcept -> unit_t< square_root< typename units::traits::unit_t_traits< UnitType >::unit_type >, typename units::traits::unit_t_traits< UnitType >::underlying_type, linear_scale >
computes the square root of value
Definition: math.h:483
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float sqrt(const float &x)
Definition: MathFunctions.h:177

but slightly faster for float/double and some compilers (e.g., gcc), thanks to specializations when SSE is enabled.

It's usage is justified in performance critical functions, like norm/normalize.

◆ equal_strict() [1/3]

template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool Eigen::numext::equal_strict ( const double &  x,
const double &  y 
)

◆ equal_strict() [2/3]

template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool Eigen::numext::equal_strict ( const float &  x,
const float &  y 
)

◆ equal_strict() [3/3]

template<typename X , typename Y >
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool Eigen::numext::equal_strict ( const X &  x,
const Y &  y 
)

◆ exp()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::exp ( const T &  x)

◆ floor()

template<typename T >
EIGEN_DEVICE_FUNC T() Eigen::numext::floor ( const T &  x)

◆ fmod()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::fmod ( const T &  a,
const T &  b 
)

◆ imag_ref()

template<typename Scalar >
EIGEN_DEVICE_FUNC internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar)>::type Eigen::numext::imag_ref ( const Scalar &  x)
inline

◆ isfinite() [1/2]

template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() Eigen::numext::isfinite ( const Eigen::bfloat16 h)

◆ isfinite() [2/2]

template<typename T >
EIGEN_DEVICE_FUNC bool() Eigen::numext::isfinite ( const T &  x)

◆ isinf() [1/2]

template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() Eigen::numext::isinf ( const Eigen::bfloat16 h)

◆ isinf() [2/2]

template<typename T >
EIGEN_DEVICE_FUNC bool() Eigen::numext::isinf ( const T &  x)

◆ isnan() [1/2]

template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() Eigen::numext::isnan ( const Eigen::bfloat16 h)

◆ isnan() [2/2]

template<typename T >
EIGEN_DEVICE_FUNC bool() Eigen::numext::isnan ( const T &  x)

◆ log()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::log ( const T &  x)

◆ log2()

int Eigen::numext::log2 ( int  x)
inline

Log base 2 for 32 bits positive integers.

Conveniently returns 0 for x==0.

◆ maxi()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::maxi ( const T &  x,
const T &  y 
)

◆ mini()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::mini ( const T &  x,
const T &  y 
)

◆ not_equal_strict() [1/3]

template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool Eigen::numext::not_equal_strict ( const double &  x,
const double &  y 
)

◆ not_equal_strict() [2/3]

template<>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool Eigen::numext::not_equal_strict ( const float &  x,
const float &  y 
)

◆ not_equal_strict() [3/3]

template<typename X , typename Y >
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool Eigen::numext::not_equal_strict ( const X &  x,
const Y &  y 
)

◆ pow()

template<typename ScalarX , typename ScalarY >
EIGEN_DEVICE_FUNC internal::pow_impl< ScalarX, ScalarY >::result_type Eigen::numext::pow ( const ScalarX &  x,
const ScalarY &  y 
)
inline

◆ real_ref()

template<typename Scalar >
EIGEN_DEVICE_FUNC internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(real_ref, Scalar)>::type Eigen::numext::real_ref ( const Scalar &  x)
inline

◆ rsqrt()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::rsqrt ( const T &  x)
Returns
the reciprocal square root of x.

◆ sin()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::sin ( const T &  x)

◆ sinh()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::sinh ( const T &  x)

◆ sqrt() [1/2]

template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE double Eigen::numext::sqrt ( const double &  x)

◆ sqrt() [2/2]

template<>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float Eigen::numext::sqrt ( const float &  x)

◆ sqrt< bool >()

◆ swap()

template<typename T >
EIGEN_STRONG_INLINE void Eigen::numext::swap ( T &  a,
T &  b 
)

◆ tan()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::tan ( const T &  x)

◆ tanh()

template<typename T >
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T Eigen::numext::tanh ( const T &  x)

Variable Documentation

◆ y

EIGEN_DEVICE_FUNC const Scalar& Eigen::numext::y
Initial value:
{
return EIGEN_MATHFUNC_IMPL(hypot, Scalar)::run(x, y)
#define EIGEN_MATHFUNC_IMPL(func, scalar)
Definition: MathFunctions.h:70
constexpr common_return_t< T1, T2 > hypot(const T1 x, const T2 y) noexcept
Compile-time Pythagorean addition function.
Definition: hypot.hpp:84
EIGEN_DEVICE_FUNC const Scalar & y
Definition: MathFunctions.h:1332