41#if defined(EIGEN_HAS_GPU_FP16) || defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
48 #pragma push_macro("EIGEN_CONSTEXPR")
49 #undef EIGEN_CONSTEXPR
50 #define EIGEN_CONSTEXPR
53#define F16_PACKET_FUNCTION(PACKET_F, PACKET_F16, METHOD) \
55 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC EIGEN_UNUSED \
56 PACKET_F16 METHOD<PACKET_F16>(const PACKET_F16& _x) { \
57 return float2half(METHOD<PACKET_F>(half2float(_x))); \
85#if !defined(EIGEN_HAS_GPU_FP16) || !defined(EIGEN_GPU_COMPILE_PHASE)
88#if (defined(EIGEN_HAS_GPU_FP16) && !defined(EIGEN_GPU_COMPILE_PHASE))
98#if defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
108#elif defined(EIGEN_HAS_HIP_FP16)
111#elif defined(EIGEN_HAS_CUDA_FP16)
112 #if EIGEN_CUDA_SDK_VER < 90000
116#elif defined(SYCL_DEVICE_ONLY)
128#if defined(EIGEN_HAS_GPU_FP16)
129 #if defined(EIGEN_HAS_HIP_FP16)
131 #elif defined(EIGEN_HAS_CUDA_FP16)
132 #if EIGEN_CUDA_SDK_VER >= 90000
146#if !defined(EIGEN_HAS_GPU_FP16) || !defined(EIGEN_GPU_COMPILE_PHASE)
151#elif defined(EIGEN_HAS_HIP_FP16)
154#elif defined(EIGEN_HAS_CUDA_FP16)
158 #if defined(EIGEN_CUDA_SDK_VER) && EIGEN_CUDA_SDK_VER < 90000
167#if defined(EIGEN_HAS_GPU_FP16)
168 #if defined(EIGEN_HAS_HIP_FP16)
170 #elif defined(EIGEN_HAS_CUDA_FP16)
171 #if defined(EIGEN_CUDA_SDK_VER) && EIGEN_CUDA_SDK_VER >= 90000
188 template<
typename RealScalar>
196#if defined(EIGEN_HAS_GPU_FP16) && !defined(EIGEN_GPU_COMPILE_PHASE)
210 static const bool is_specialized =
true;
213 static const bool is_exact =
false;
214 static const bool has_infinity =
true;
215 static const bool has_quiet_NaN =
true;
216 static const bool has_signaling_NaN =
true;
217 static const float_denorm_style has_denorm = denorm_present;
218 static const bool has_denorm_loss =
false;
219 static const std::float_round_style round_style = std::round_to_nearest;
220 static const bool is_iec559 =
false;
221 static const bool is_bounded =
false;
222 static const bool is_modulo =
false;
225 static const int max_digits10 = 5;
226 static const int radix = 2;
227 static const int min_exponent = -13;
228 static const int min_exponent10 = -4;
229 static const int max_exponent = 16;
230 static const int max_exponent10 = 4;
231 static const bool traps =
true;
232 static const bool tinyness_before =
false;
250struct numeric_limits<const
Eigen::half> : numeric_limits<Eigen::half> {};
252struct numeric_limits<volatile
Eigen::half> : numeric_limits<Eigen::half> {};
254struct numeric_limits<const volatile
Eigen::half> : numeric_limits<Eigen::half> {};
261#if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && \
262 EIGEN_CUDA_ARCH >= 530) || \
263 (defined(EIGEN_HAS_HIP_FP16) && defined(HIP_DEVICE_COMPILE))
267#define EIGEN_HAS_NATIVE_FP16
275#if defined(EIGEN_HAS_NATIVE_FP16)
277#if defined(EIGEN_CUDA_SDK_VER) && EIGEN_CUDA_SDK_VER >= 90000
278 return __hadd(::__half(a), ::__half(
b));
290#if defined(EIGEN_CUDA_SDK_VER) && EIGEN_CUDA_SDK_VER >= 90000
293 float num = __half2float(a);
294 float denom = __half2float(
b);
295 return __float2half(num / denom);
337#if defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
339 return half(vaddh_f16(a.x,
b.x));
342 return half(vmulh_f16(a.x,
b.x));
345 return half(vsubh_f16(a.x,
b.x));
348 return half(vdivh_f16(a.x,
b.x));
351 return half(vnegh_f16(a.x));
354 a = half(vaddh_f16(a.x,
b.x));
358 a = half(vmulh_f16(a.x,
b.x));
362 a = half(vsubh_f16(a.x,
b.x));
366 a = half(vdivh_f16(a.x,
b.x));
370 return vceqh_f16(a.x,
b.x);
373 return !vceqh_f16(a.x,
b.x);
376 return vclth_f16(a.x,
b.x);
379 return vcleh_f16(a.x,
b.x);
382 return vcgth_f16(a.x,
b.x);
385 return vcgeh_f16(a.x,
b.x);
390#elif !defined(EIGEN_HAS_NATIVE_FP16) || (EIGEN_COMP_CLANG && !EIGEN_COMP_NVCC)
392#if EIGEN_COMP_CLANG && defined(EIGEN_CUDACC)
394#pragma push_macro("EIGEN_DEVICE_FUNC")
395#undef EIGEN_DEVICE_FUNC
396#if defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_HAS_NATIVE_FP16)
397#define EIGEN_DEVICE_FUNC __host__
399#define EIGEN_DEVICE_FUNC __host__ __device__
406 return half(
float(a) +
float(
b));
409 return half(
float(a) *
float(
b));
412 return half(
float(a) -
float(
b));
415 return half(
float(a) /
float(
b));
423 a =
half(
float(a) +
float(
b));
427 a =
half(
float(a) *
float(
b));
431 a =
half(
float(a) -
float(
b));
435 a =
half(
float(a) /
float(
b));
445 return float(a) < float(
b);
448 return float(a) <= float(
b);
451 return float(a) > float(
b);
454 return float(a) >= float(
b);
457#if defined(__clang__) && defined(__CUDA__)
458#pragma pop_macro("EIGEN_DEVICE_FUNC")
465 return half(
static_cast<float>(a) /
static_cast<float>(
b));
479 half original_value = a;
481 return original_value;
485 half original_value = a;
487 return original_value;
502#if defined(EIGEN_HAS_GPU_FP16)
515#if defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
516 return numext::bit_cast<numext::uint16_t>(
h.x);
517#elif defined(SYCL_DEVICE_ONLY)
518 return numext::bit_cast<numext::uint16_t>(
h);
530#if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 300) || \
531 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
532 __half tmp_ff = __float2half(ff);
535#elif defined(EIGEN_HAS_FP16_C)
537 h.x = _cvtss_sh(ff, 0);
540#elif defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
542 h.x =
static_cast<__fp16
>(ff);
550 const float32_bits denorm_magic = { ((127 - 15) + (23 - 10) + 1) << 23 };
551 unsigned int sign_mask = 0x80000000u;
555 unsigned int sign = f.
u & sign_mask;
563 if (f.
u >= f16max.
u) {
564 o.
x = (f.
u > f32infty.
u) ? 0x7e00 : 0x7c00;
566 if (f.
u < (113 << 23)) {
570 f.
f += denorm_magic.
f;
575 unsigned int mant_odd = (f.
u >> 13) & 1;
594#if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 300) || \
595 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
596 return __half2float(
h);
597#elif defined(EIGEN_HAS_FP16_C)
598 return _cvtsh_ss(
h.x);
599#elif defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
600 return static_cast<float>(
h.x);
603 const unsigned int shifted_exp = 0x7c00 << 13;
606 o.
u = (
h.x & 0x7fff) << 13;
607 unsigned int exp = shifted_exp & o.
u;
608 o.
u += (127 - 15) << 23;
611 if (
exp == shifted_exp) {
612 o.
u += (128 - 16) << 23;
613 }
else if (
exp == 0) {
618 o.
u |= (
h.x & 0x8000) << 16;
626#ifdef EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC
627 return (numext::bit_cast<numext::uint16_t>(a.x) & 0x7fff) == 0x7c00;
629 return (a.x & 0x7fff) == 0x7c00;
633#if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 530) || \
634 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
636#elif defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
637 return (numext::bit_cast<numext::uint16_t>(a.x) & 0x7fff) > 0x7c00;
639 return (a.x & 0x7fff) > 0x7c00;
647#if defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
648 return half(vabsh_f16(a.
x));
656#if (EIGEN_CUDA_SDK_VER >= 80000 && defined EIGEN_CUDA_ARCH && EIGEN_CUDA_ARCH >= 530) || \
657 defined(EIGEN_HIP_DEVICE_COMPILE)
658 return half(hexp(a));
660 return half(::expf(
float(a)));
667#if (defined(EIGEN_HAS_CUDA_FP16) && EIGEN_CUDA_SDK_VER >= 80000 && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 530) || \
668 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
669 return half(::hlog(a));
671 return half(::logf(
float(a)));
678 return half(::log10f(
float(a)));
685#if (EIGEN_CUDA_SDK_VER >= 80000 && defined EIGEN_CUDA_ARCH && EIGEN_CUDA_ARCH >= 530) || \
686 defined(EIGEN_HIP_DEVICE_COMPILE)
687 return half(hsqrt(a));
689 return half(::sqrtf(
float(a)));
693 return half(::powf(
float(a),
float(
b)));
696 return half(::sinf(
float(a)));
699 return half(::cosf(
float(a)));
702 return half(::tanf(
float(a)));
705 return half(::tanhf(
float(a)));
708 return half(::asinf(
float(a)));
711 return half(::acosf(
float(a)));
714#if (EIGEN_CUDA_SDK_VER >= 80000 && defined EIGEN_CUDA_ARCH && EIGEN_CUDA_ARCH >= 300) || \
715 defined(EIGEN_HIP_DEVICE_COMPILE)
716 return half(hfloor(a));
718 return half(::floorf(
float(a)));
722#if (EIGEN_CUDA_SDK_VER >= 80000 && defined EIGEN_CUDA_ARCH && EIGEN_CUDA_ARCH >= 300) || \
723 defined(EIGEN_HIP_DEVICE_COMPILE)
724 return half(hceil(a));
726 return half(::ceilf(
float(a)));
730 return half(::rintf(
float(a)));
733 return half(::roundf(
float(a)));
736 return half(::fmodf(
float(a),
float(
b)));
740#if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 530) || \
741 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
742 return __hlt(
b, a) ?
b : a;
744 const float f1 =
static_cast<float>(a);
745 const float f2 =
static_cast<float>(
b);
746 return f2 < f1 ?
b : a;
750#if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 530) || \
751 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
752 return __hlt(a,
b) ?
b : a;
754 const float f1 =
static_cast<float>(a);
755 const float f2 =
static_cast<float>(
b);
756 return f1 < f2 ?
b : a;
762 os << static_cast<float>(v);
779 return x + (
y-x) *
half(
float(std::rand()) / float(RAND_MAX));
823#if defined(EIGEN_HAS_GPU_FP16) || defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
824 #pragma pop_macro("EIGEN_CONSTEXPR")
830#if defined(EIGEN_GPU_COMPILE_PHASE)
873#if (defined(EIGEN_CUDACC) && (!defined(EIGEN_CUDA_ARCH) || EIGEN_CUDA_ARCH >= 300)) \
874 || defined(EIGEN_HIPCC)
876#if defined(EIGEN_HAS_CUDA_FP16) && EIGEN_CUDA_SDK_VER >= 90000
879 const __half
h = var;
880 return static_cast<Eigen::half>(__shfl_sync(mask,
h, srcLane, width));
884 const __half
h = var;
885 return static_cast<Eigen::half>(__shfl_up_sync(mask,
h, delta, width));
889 const __half
h = var;
890 return static_cast<Eigen::half>(__shfl_down_sync(mask,
h, delta, width));
894 const __half
h = var;
895 return static_cast<Eigen::half>(__shfl_xor_sync(mask,
h, laneMask, width));
901 const int ivar =
static_cast<int>(Eigen::numext::bit_cast<Eigen::numext::uint16_t>(var));
902 return Eigen::numext::bit_cast<Eigen::half>(
static_cast<Eigen::numext::uint16_t>(__shfl(ivar, srcLane, width)));
906 const int ivar =
static_cast<int>(Eigen::numext::bit_cast<Eigen::numext::uint16_t>(var));
907 return Eigen::numext::bit_cast<Eigen::half>(
static_cast<Eigen::numext::uint16_t>(__shfl_up(ivar, delta, width)));
911 const int ivar =
static_cast<int>(Eigen::numext::bit_cast<Eigen::numext::uint16_t>(var));
912 return Eigen::numext::bit_cast<Eigen::half>(
static_cast<Eigen::numext::uint16_t>(__shfl_down(ivar, delta, width)));
916 const int ivar =
static_cast<int>(Eigen::numext::bit_cast<Eigen::numext::uint16_t>(var));
917 return Eigen::numext::bit_cast<Eigen::half>(
static_cast<Eigen::numext::uint16_t>(__shfl_xor(ivar, laneMask, width)));
924#if (defined(EIGEN_CUDACC) && (!defined(EIGEN_CUDA_ARCH) || EIGEN_CUDA_ARCH >= 350)) \
925 || defined(EIGEN_HIPCC)
931#if EIGEN_HAS_STD_HASH
934struct hash<
Eigen::half> {
936 return static_cast<std::size_t
>(Eigen::numext::bit_cast<Eigen::numext::uint16_t>(a));
EIGEN_DEVICE_FUNC const SignReturnType sign() const
Definition: ArrayCwiseUnaryOps.h:219
EIGEN_DEVICE_FUNC RealReturnType real() const
Definition: CommonCwiseUnaryOps.h:100
internal::enable_if< internal::valid_indexed_view_overload< RowIndices, ColIndices >::value &&internal::traits< typenameEIGEN_INDEXED_VIEW_METHOD_TYPE< RowIndices, ColIndices >::type >::ReturnAsIndexedView, typenameEIGEN_INDEXED_VIEW_METHOD_TYPE< RowIndices, ColIndices >::type >::type operator()(const RowIndices &rowIndices, const ColIndices &colIndices) EIGEN_INDEXED_VIEW_METHOD_CONST
Definition: IndexedViewMethods.h:73
#define EIGEN_ALWAYS_INLINE
Definition: Macros.h:942
#define EIGEN_CONSTEXPR
Definition: Macros.h:797
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:986
#define EIGEN_NOT_A_MACRO
Definition: Macros.h:906
#define EIGEN_STRONG_INLINE
Definition: Macros.h:927
#define EIGEN_LOG2E
Definition: MathFunctions.h:17
constexpr common_t< T1, T2 > max(const T1 x, const T2 y) noexcept
Compile-time pairwise maximum function.
Definition: max.hpp:35
constexpr common_t< T1, T2 > min(const T1 x, const T2 y) noexcept
Compile-time pairwise minimum function.
Definition: min.hpp:35
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half abs(const half &a)
Definition: Half.h:646
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator--(half &a)
Definition: Half.h:473
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half log10(const half &a)
Definition: Half.h:677
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half rint(const half &a)
Definition: Half.h:729
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator==(const half &a, const half &b)
Definition: Half.h:438
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half tan(const half &a)
Definition: Half.h:701
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half ceil(const half &a)
Definition: Half.h:721
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half log1p(const half &a)
Definition: Half.h:674
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool() isnan(const half &a)
Definition: Half.h:632
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half cos(const half &a)
Definition: Half.h:698
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator>=(const half &a, const half &b)
Definition: Half.h:453
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half() min(const half &a, const half &b)
Definition: Half.h:739
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half asin(const half &a)
Definition: Half.h:707
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool() isfinite(const half &a)
Definition: Half.h:642
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC float half_to_float(__half_raw h)
Definition: Half.h:593
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half tanh(const half &a)
Definition: Half.h:704
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator*(const half &a, const half &b)
Definition: Half.h:408
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half acos(const half &a)
Definition: Half.h:710
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator*=(half &a, const half &b)
Definition: Half.h:426
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half pow(const half &a, const half &b)
Definition: Half.h:692
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half fmod(const half &a, const half &b)
Definition: Half.h:735
EIGEN_ALWAYS_INLINE std::ostream & operator<<(std::ostream &os, const half &v)
Definition: Half.h:761
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half sqrt(const half &a)
Definition: Half.h:684
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half() max(const half &a, const half &b)
Definition: Half.h:749
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator+(const half &a, const half &b)
Definition: Half.h:405
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator/(const half &a, const half &b)
Definition: Half.h:414
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator/=(half &a, const half &b)
Definition: Half.h:434
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half round(const half &a)
Definition: Half.h:732
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR __half_raw raw_uint16_to_half(numext::uint16_t x)
Definition: Half.h:495
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator-(const half &a, const half &b)
Definition: Half.h:411
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator++(half &a)
Definition: Half.h:468
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half floor(const half &a)
Definition: Half.h:713
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator<=(const half &a, const half &b)
Definition: Half.h:447
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half sin(const half &a)
Definition: Half.h:695
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC numext::uint16_t raw_half_as_uint16(const __half_raw &h)
Definition: Half.h:511
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator-=(half &a, const half &b)
Definition: Half.h:430
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half log(const half &a)
Definition: Half.h:666
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator+=(half &a, const half &b)
Definition: Half.h:422
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator>(const half &a, const half &b)
Definition: Half.h:450
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half log2(const half &a)
Definition: Half.h:680
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator!=(const half &a, const half &b)
Definition: Half.h:441
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half exp(const half &a)
Definition: Half.h:655
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC __half_raw float_to_half_rtne(float ff)
Definition: Half.h:529
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half expm1(const half &a)
Definition: Half.h:663
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool() isinf(const half &a)
Definition: Half.h:625
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator<(const half &a, const half &b)
Definition: Half.h:444
const Scalar & y
Definition: MathFunctions.h:821
::uint16_t uint16_t
Definition: Meta.h:54
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isinf(const Eigen::bfloat16 &h)
Definition: BFloat16.h:665
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool equal_strict(const X &x, const Y &y)
Definition: Meta.h:787
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isfinite(const Eigen::bfloat16 &h)
Definition: BFloat16.h:671
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isnan(const Eigen::bfloat16 &h)
Definition: BFloat16.h:659
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool not_equal_strict(const X &x, const Y &y)
Definition: Meta.h:798
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Tgt bit_cast(const Src &src)
Definition: NumTraits.h:85
Namespace containing all symbols from the Eigen library.
Definition: Core:141
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:74
Definition: format.h:2563
result
Definition: format.h:2564
Definition: Eigen_Colamd.h:50
Definition: BFloat16.h:88
static constexpr const unit_t< compound_unit< energy::joule, time::seconds > > h(6.626070040e-34)
Planck constant.
static constexpr const velocity::meters_per_second_t c(299792458.0)
Speed of light in vacuum.
Definition: NumTraits.h:153
@ RequireInitialization
Definition: NumTraits.h:158
@ IsSigned
Definition: NumTraits.h:156
@ IsInteger
Definition: NumTraits.h:155
@ IsComplex
Definition: NumTraits.h:157
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half epsilon()
Definition: Half.h:801
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half infinity()
Definition: Half.h:813
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half highest()
Definition: Half.h:807
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half quiet_NaN()
Definition: Half.h:816
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half lowest()
Definition: Half.h:810
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half dummy_precision()
Definition: Half.h:804
Holds information about the various numeric (i.e.
Definition: NumTraits.h:233
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR __half_raw(numext::uint16_t raw)
Definition: Half.h:103
numext::uint16_t x
Definition: Half.h:104
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR __half_raw()
Definition: Half.h:96
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR half_base(const __half_raw &h)
Definition: Half.h:126
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR half_base()
Definition: Half.h:125
half_impl::__half_raw __half_raw
Definition: Half.h:150
EIGEN_DEVICE_FUNC half(std::complex< RealScalar > c)
Definition: Half.h:189
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR half()
Definition: Half.h:163
EIGEN_DEVICE_FUNC half(T val)
Definition: Half.h:181
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR half(bool b)
Definition: Half.h:178
EIGEN_DEVICE_FUNC half(float f)
Definition: Half.h:183
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR half(const __half_raw &h)
Definition: Half.h:165
static half run()
Definition: Half.h:781
static half run(const half &x, const half &y)
Definition: Half.h:777
Definition: MathFunctions.h:810
static Eigen::half lowest()
Definition: Half.h:235
static Eigen::half signaling_NaN()
Definition: Half.h:241
static Eigen::half infinity()
Definition: Half.h:239
static Eigen::half quiet_NaN()
Definition: Half.h:240
static Eigen::half epsilon()
Definition: Half.h:237
static Eigen::half round_error()
Definition: Half.h:238
static Eigen::half denorm_min()
Definition: Half.h:242
float f
Definition: Half.h:526
unsigned int u
Definition: Half.h:525