mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 19:59:05 +08:00
Added epsilon, dummy_precision, infinity and quiet_NaN NumTraits for fp16
This commit is contained in:
parent
e939b087fe
commit
833efb39bf
@ -366,13 +366,22 @@ template<> struct is_arithmetic<half> { enum { value = true }; };
|
|||||||
template<> struct NumTraits<Eigen::half>
|
template<> struct NumTraits<Eigen::half>
|
||||||
: GenericNumTraits<Eigen::half>
|
: GenericNumTraits<Eigen::half>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE float dummy_precision() { return 1e-3f; }
|
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half epsilon() {
|
||||||
|
return internal::raw_uint16_to_half(0x0800);
|
||||||
|
}
|
||||||
|
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half dummy_precision() { return half(1e-3f); }
|
||||||
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half highest() {
|
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half highest() {
|
||||||
return internal::raw_uint16_to_half(0x7bff);
|
return internal::raw_uint16_to_half(0x7bff);
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half lowest() {
|
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half lowest() {
|
||||||
return internal::raw_uint16_to_half(0xfbff);
|
return internal::raw_uint16_to_half(0xfbff);
|
||||||
}
|
}
|
||||||
|
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half infinity() {
|
||||||
|
return internal::raw_uint16_to_half(0x7c00);
|
||||||
|
}
|
||||||
|
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half quiet_NaN() {
|
||||||
|
return internal::raw_uint16_to_half(0x7c01);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Infinity/NaN checks.
|
// Infinity/NaN checks.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user