38 #include "../../InternalHeaderCheck.h"
40 #if defined(EIGEN_HAS_GPU_FP16) || defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
47 #pragma push_macro("EIGEN_CONSTEXPR")
48 #undef EIGEN_CONSTEXPR
49 #define EIGEN_CONSTEXPR
52 #define F16_PACKET_FUNCTION(PACKET_F, PACKET_F16, METHOD) \
54 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC EIGEN_UNUSED PACKET_F16 METHOD<PACKET_F16>(const PACKET_F16& _x) { \
55 return float2half(METHOD<PACKET_F>(half2float(_x))); \
83 #if !defined(EIGEN_HAS_GPU_FP16) || !defined(EIGEN_GPU_COMPILE_PHASE)
86 #if (defined(EIGEN_HAS_GPU_FP16) && !defined(EIGEN_GPU_COMPILE_PHASE))
96 #if defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
105 #elif defined(EIGEN_HAS_HIP_FP16)
108 #elif defined(EIGEN_HAS_CUDA_FP16)
109 #if EIGEN_CUDA_SDK_VER < 90000
113 #elif defined(SYCL_DEVICE_ONLY)
125 #if defined(EIGEN_HAS_GPU_FP16)
126 #if defined(EIGEN_HAS_HIP_FP16)
128 #elif defined(EIGEN_HAS_CUDA_FP16)
129 #if EIGEN_CUDA_SDK_VER >= 90000
142 #if !defined(EIGEN_HAS_GPU_FP16) || !defined(EIGEN_GPU_COMPILE_PHASE)
147 #elif defined(EIGEN_HAS_HIP_FP16)
150 #elif defined(EIGEN_HAS_CUDA_FP16)
154 #if defined(EIGEN_CUDA_SDK_VER) && EIGEN_CUDA_SDK_VER < 90000
163 #if defined(EIGEN_HAS_GPU_FP16)
164 #if defined(EIGEN_HAS_HIP_FP16)
166 #elif defined(EIGEN_HAS_CUDA_FP16)
167 #if defined(EIGEN_CUDA_SDK_VER) && EIGEN_CUDA_SDK_VER >= 90000
182 template <
typename RealScalar>
190 #if defined(EIGEN_HAS_GPU_FP16) && !defined(EIGEN_GPU_COMPILE_PHASE)
201 namespace half_impl {
202 template <
typename =
void>
248 template <
typename T>
250 template <
typename T>
252 template <
typename T>
254 template <
typename T>
256 template <
typename T>
258 template <
typename T>
260 template <
typename T>
264 template <
typename T>
266 template <
typename T>
269 template <
typename T>
271 template <
typename T>
273 template <
typename T>
275 template <
typename T>
277 template <
typename T>
279 template <
typename T>
281 template <
typename T>
283 template <
typename T>
285 template <
typename T>
287 template <
typename T>
289 template <
typename T>
291 template <
typename T>
293 template <
typename T>
295 template <
typename T>
308 class numeric_limits<const
Eigen::half> :
public numeric_limits<Eigen::half> {};
310 class numeric_limits<volatile
Eigen::half> :
public numeric_limits<Eigen::half> {};
312 class numeric_limits<const volatile
Eigen::half> :
public numeric_limits<Eigen::half> {};
317 namespace half_impl {
319 #if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 530) || \
320 (defined(EIGEN_HAS_HIP_FP16) && defined(HIP_DEVICE_COMPILE))
324 #define EIGEN_HAS_NATIVE_FP16
332 #if defined(EIGEN_HAS_NATIVE_FP16)
334 #if defined(EIGEN_CUDA_SDK_VER) && EIGEN_CUDA_SDK_VER >= 90000
335 return __hadd(::__half(
a), ::__half(
b));
343 #if defined(EIGEN_CUDA_SDK_VER) && EIGEN_CUDA_SDK_VER >= 90000
346 float num = __half2float(
a);
347 float denom = __half2float(
b);
348 return __float2half(num / denom);
376 #if defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC) && !defined(EIGEN_GPU_COMPILE_PHASE)
383 a = half(vaddh_f16(
a.x,
b.x));
387 a = half(vmulh_f16(
a.x,
b.x));
391 a = half(vsubh_f16(
a.x,
b.x));
395 a = half(vdivh_f16(
a.x,
b.x));
407 #elif !defined(EIGEN_HAS_NATIVE_FP16) || (EIGEN_COMP_CLANG && !EIGEN_COMP_NVCC)
409 #if EIGEN_COMP_CLANG && defined(EIGEN_GPUCC)
411 #pragma push_macro("EIGEN_DEVICE_FUNC")
412 #undef EIGEN_DEVICE_FUNC
413 #if defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_HAS_NATIVE_FP16)
414 #define EIGEN_DEVICE_FUNC __host__
416 #define EIGEN_DEVICE_FUNC __host__ __device__
428 result.
x =
a.x ^ 0x8000;
458 #if EIGEN_COMP_CLANG && defined(EIGEN_GPUCC)
459 #pragma pop_macro("EIGEN_DEVICE_FUNC")
466 return half(
static_cast<float>(
a) /
static_cast<float>(
b));
480 half original_value =
a;
482 return original_value;
486 half original_value =
a;
488 return original_value;
503 #if defined(EIGEN_HAS_GPU_FP16)
516 #if defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
517 return numext::bit_cast<numext::uint16_t>(h.
x);
518 #elif defined(SYCL_DEVICE_ONLY)
519 return numext::bit_cast<numext::uint16_t>(h);
531 #if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 300) || \
532 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
533 __half tmp_ff = __float2half(ff);
536 #elif defined(EIGEN_HAS_FP16_C)
540 h.
x = _mm_extract_epi16(_mm_cvtps_ph(_mm_set_ss(ff), 0), 0);
542 h.
x = _cvtss_sh(ff, 0);
546 #elif defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
548 h.
x =
static_cast<__fp16
>(ff);
557 const float32_bits denorm_magic = {((127 - 15) + (23 - 10) + 1) << 23};
558 unsigned int sign_mask = 0x80000000u;
562 unsigned int sign =
f.u & sign_mask;
570 if (
f.u >= f16max.
u) {
571 o.
x = (
f.u > f32infty.
u) ? 0x7e00 : 0x7c00;
573 if (
f.u < (113 << 23)) {
577 f.f += denorm_magic.
f;
582 unsigned int mant_odd = (
f.u >> 13) & 1;
601 #if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 300) || \
602 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
603 return __half2float(h);
604 #elif defined(EIGEN_HAS_FP16_C)
607 return _mm_cvtss_f32(_mm_cvtph_ps(_mm_set1_epi16(h.
x)));
609 return _cvtsh_ss(h.
x);
611 #elif defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
612 return static_cast<float>(h.
x);
615 const unsigned int shifted_exp = 0x7c00 << 13;
618 o.
u = (h.
x & 0x7fff) << 13;
619 unsigned int exp = shifted_exp & o.
u;
620 o.
u += (127 - 15) << 23;
623 if (
exp == shifted_exp) {
624 o.
u += (128 - 16) << 23;
625 }
else if (
exp == 0) {
630 o.
u |= (h.
x & 0x8000) << 16;
638 #ifdef EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC
639 return (numext::bit_cast<numext::uint16_t>(
a.x) & 0x7fff) == 0x7c00;
641 return (
a.x & 0x7fff) == 0x7c00;
645 #if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 530) || \
646 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
648 #elif defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
649 return (numext::bit_cast<numext::uint16_t>(
a.x) & 0x7fff) > 0x7c00;
651 return (
a.x & 0x7fff) > 0x7c00;
659 #if defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
660 return half(vabsh_f16(
a.x));
663 result.
x =
a.x & 0x7FFF;
668 #if (EIGEN_CUDA_SDK_VER >= 80000 && defined EIGEN_CUDA_ARCH && EIGEN_CUDA_ARCH >= 530) || \
669 defined(EIGEN_HIP_DEVICE_COMPILE)
670 return half(hexp(
a));
672 return half(::expf(
float(
a)));
676 #if (EIGEN_CUDA_SDK_VER >= 80000 && defined EIGEN_CUDA_ARCH && EIGEN_CUDA_ARCH >= 530) || \
677 defined(EIGEN_HIP_DEVICE_COMPILE)
678 return half(hexp2(
a));
680 return half(::exp2f(
float(
a)));
685 #if (defined(EIGEN_HAS_CUDA_FP16) && EIGEN_CUDA_SDK_VER >= 80000 && defined(EIGEN_CUDA_ARCH) && \
686 EIGEN_CUDA_ARCH >= 530) || \
687 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
688 return half(hlog(
a));
690 return half(::logf(
float(
a)));
700 #if (EIGEN_CUDA_SDK_VER >= 80000 && defined EIGEN_CUDA_ARCH && EIGEN_CUDA_ARCH >= 530) || \
701 defined(EIGEN_HIP_DEVICE_COMPILE)
702 return half(hsqrt(
a));
704 return half(::sqrtf(
float(
a)));
708 return half(::powf(
float(
a),
float(
b)));
711 return half(::atan2f(
float(
a),
float(
b)));
722 #if (EIGEN_CUDA_SDK_VER >= 80000 && defined EIGEN_CUDA_ARCH && EIGEN_CUDA_ARCH >= 300) || \
723 defined(EIGEN_HIP_DEVICE_COMPILE)
724 return half(hfloor(
a));
726 return half(::floorf(
float(
a)));
730 #if (EIGEN_CUDA_SDK_VER >= 80000 && defined EIGEN_CUDA_ARCH && EIGEN_CUDA_ARCH >= 300) || \
731 defined(EIGEN_HIP_DEVICE_COMPILE)
732 return half(hceil(
a));
734 return half(::ceilf(
float(
a)));
741 return half(::fmodf(
float(
a),
float(
b)));
745 #if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 530) || \
746 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
747 return __hlt(
b,
a) ?
b :
a;
749 const float f1 =
static_cast<float>(
a);
750 const float f2 =
static_cast<float>(
b);
755 #if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 530) || \
756 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
757 return __hlt(
a,
b) ?
b :
a;
759 const float f1 =
static_cast<float>(
a);
760 const float f2 =
static_cast<float>(
b);
767 os << static_cast<float>(
v);
786 enum :
int { MantissaBits = 10 };
826 #if defined(EIGEN_HAS_GPU_FP16) || defined(EIGEN_HAS_ARM64_FP16_SCALAR_ARITHMETIC)
827 #pragma pop_macro("EIGEN_CONSTEXPR")
833 #if defined(EIGEN_GPU_COMPILE_PHASE)
876 #if (defined(EIGEN_CUDACC) && (!defined(EIGEN_CUDA_ARCH) || EIGEN_CUDA_ARCH >= 300)) || defined(EIGEN_HIPCC)
878 #if defined(EIGEN_HAS_CUDA_FP16) && EIGEN_CUDA_SDK_VER >= 90000
881 int width = warpSize) {
882 const __half h = var;
883 return static_cast<Eigen::half>(__shfl_sync(mask, h, srcLane, width));
887 int width = warpSize) {
888 const __half h = var;
893 int width = warpSize) {
894 const __half h = var;
899 int width = warpSize) {
900 const __half h = var;
901 return static_cast<Eigen::half>(__shfl_xor_sync(mask, h, laneMask, width));
907 const int ivar =
static_cast<int>(Eigen::numext::bit_cast<Eigen::numext::uint16_t>(var));
908 return Eigen::numext::bit_cast<Eigen::half>(
static_cast<Eigen::numext::uint16_t>(__shfl(ivar, srcLane, width)));
912 const int ivar =
static_cast<int>(Eigen::numext::bit_cast<Eigen::numext::uint16_t>(var));
917 const int ivar =
static_cast<int>(Eigen::numext::bit_cast<Eigen::numext::uint16_t>(var));
922 const int ivar =
static_cast<int>(Eigen::numext::bit_cast<Eigen::numext::uint16_t>(var));
923 return Eigen::numext::bit_cast<Eigen::half>(
static_cast<Eigen::numext::uint16_t>(__shfl_xor(ivar, laneMask, width)));
930 #if (defined(EIGEN_CUDACC) && (!defined(EIGEN_CUDA_ARCH) || EIGEN_CUDA_ARCH >= 350)) || defined(EIGEN_HIPCC)
936 #if EIGEN_HAS_STD_HASH
939 struct hash<
Eigen::half> {
941 return static_cast<std::size_t
>(Eigen::numext::bit_cast<Eigen::numext::uint16_t>(
a));
953 #if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 300) || \
954 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
955 return __float2half(
a);
965 #if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 300) || \
966 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
967 return __float2half(
static_cast<float>(
a));
969 return half(
static_cast<float>(
a));
977 #if (defined(EIGEN_HAS_CUDA_FP16) && defined(EIGEN_CUDA_ARCH) && EIGEN_CUDA_ARCH >= 300) || \
978 (defined(EIGEN_HAS_HIP_FP16) && defined(EIGEN_HIP_DEVICE_COMPILE))
979 return __half2float(
a);
981 return static_cast<float>(
a);
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
#define EIGEN_ALWAYS_INLINE
Definition: Macros.h:845
#define EIGEN_DISABLE_DEPRECATED_WARNING
Definition: Macros.h:957
#define EIGEN_CONSTEXPR
Definition: Macros.h:758
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:892
#define EIGEN_NOT_A_MACRO
Definition: Macros.h:813
#define EIGEN_DIAGNOSTICS(tokens)
Definition: Macros.h:953
#define EIGEN_STRONG_INLINE
Definition: Macros.h:834
#define EIGEN_LOG2E
Definition: MathFunctions.h:17
Scalar * b
Definition: benchVecAdd.cpp:17
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
const Scalar * a
Definition: level2_cplx_impl.h:32
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half abs(const half &a)
Definition: Half.h:658
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator--(half &a)
Definition: Half.h:474
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half log10(const half &a)
Definition: Half.h:694
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half rint(const half &a)
Definition: Half.h:737
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half atan(const half &a)
Definition: Half.h:719
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 tan(const half &a)
Definition: Half.h:715
EIGEN_ALWAYS_INLINE std::ostream & operator<<(std::ostream &os, const half &v)
Definition: Half.h:766
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half ceil(const half &a)
Definition: Half.h:729
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator-=(half &a, const half &b)
Definition: Half.h:439
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half atanh(const half &a)
Definition: Half.h:720
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half log1p(const half &a)
Definition: Half.h:693
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool() isnan(const half &a)
Definition: Half.h:644
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half cos(const half &a)
Definition: Half.h:714
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator>=(const half &a, const half &b)
Definition: Half.h:456
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half exp2(const half &a)
Definition: Half.h:675
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half() min(const half &a, const half &b)
Definition: Half.h:744
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half asin(const half &a)
Definition: Half.h:717
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool() isfinite(const half &a)
Definition: Half.h:654
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC float half_to_float(__half_raw h)
Definition: Half.h:600
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half tanh(const half &a)
Definition: Half.h:716
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator*=(half &a, const half &b)
Definition: Half.h:435
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator*(const half &a, const half &b)
Definition: Half.h:423
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half atan2(const half &a, const half &b)
Definition: Half.h:710
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half acos(const half &a)
Definition: Half.h:718
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half pow(const half &a, const half &b)
Definition: Half.h:707
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half trunc(const half &a)
Definition: Half.h:739
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half fmod(const half &a, const half &b)
Definition: Half.h:740
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half sqrt(const half &a)
Definition: Half.h:699
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half() max(const half &a, const half &b)
Definition: Half.h:754
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator+(const half &a, const half &b)
Definition: Half.h:422
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator/(const half &a, const half &b)
Definition: Half.h:425
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half round(const half &a)
Definition: Half.h:738
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR __half_raw raw_uint16_to_half(numext::uint16_t x)
Definition: Half.h:496
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator-(const half &a, const half &b)
Definition: Half.h:424
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator++(half &a)
Definition: Half.h:469
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half floor(const half &a)
Definition: Half.h:721
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator<=(const half &a, const half &b)
Definition: Half.h:454
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half sin(const half &a)
Definition: Half.h:713
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC numext::uint16_t raw_half_as_uint16(const __half_raw &h)
Definition: Half.h:512
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator+=(half &a, const half &b)
Definition: Half.h:431
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator/=(half &a, const half &b)
Definition: Half.h:443
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half log(const half &a)
Definition: Half.h:684
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator>(const half &a, const half &b)
Definition: Half.h:455
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half log2(const half &a)
Definition: Half.h:695
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 exp(const half &a)
Definition: Half.h:667
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC __half_raw float_to_half_rtne(float ff)
Definition: Half.h:530
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half expm1(const half &a)
Definition: Half.h:683
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool() isinf(const half &a)
Definition: Half.h:637
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator<(const half &a, const half &b)
Definition: Half.h:453
const Scalar & y
Definition: RandomImpl.h:36
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isinf(const Eigen::bfloat16 &h)
Definition: BFloat16.h:747
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool equal_strict(const X &x, const Y &y)
Definition: Meta.h:571
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isfinite(const Eigen::bfloat16 &h)
Definition: BFloat16.h:752
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isnan(const Eigen::bfloat16 &h)
Definition: BFloat16.h:742
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool not_equal_strict(const X &x, const Y &y)
Definition: Meta.h:606
std::uint16_t uint16_t
Definition: Meta.h:38
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Tgt bit_cast(const Src &src)
Definition: NumTraits.h:102
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
double f2(const Vector< double > &coord)
f2 function, in front of the C2 unknown
Definition: poisson/poisson_with_singularity/two_d_poisson.cc:233
double f1(const Vector< double > &coord)
f1 function, in front of the C1 unknown
Definition: poisson/poisson_with_singularity/two_d_poisson.cc:147
int delta
Definition: MultiOpt.py:96
T sign(T x)
Definition: cxx11_tensor_builtins_sycl.cpp:172
int c
Definition: calibrate.py:100
val
Definition: calibrate.py:119
Definition: Eigen_Colamd.h:49
list x
Definition: plotDoE.py:28
Definition: NumTraits.h:172
@ RequireInitialization
Definition: NumTraits.h:177
@ IsSigned
Definition: NumTraits.h:175
@ IsInteger
Definition: NumTraits.h:174
@ IsComplex
Definition: NumTraits.h:176
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half epsilon()
Definition: Half.h:804
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half infinity()
Definition: Half.h:816
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half highest()
Definition: Half.h:810
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half quiet_NaN()
Definition: Half.h:819
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half lowest()
Definition: Half.h:813
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR EIGEN_STRONG_INLINE Eigen::half dummy_precision()
Definition: Half.h:807
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:217
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR __half_raw(numext::uint16_t raw)
Definition: Half.h:100
numext::uint16_t x
Definition: Half.h:101
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR __half_raw()
Definition: Half.h:94
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR half_base(const __half_raw &h)
Definition: Half.h:123
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR half_base()
Definition: Half.h:122
static EIGEN_CONSTEXPR const bool has_infinity
Definition: Half.h:208
static EIGEN_DISABLE_DEPRECATED_WARNING EIGEN_CONSTEXPR const std::float_denorm_style has_denorm
Definition: Half.h:213
static EIGEN_CONSTEXPR Eigen::half round_error()
Definition: Half.h:241
static EIGEN_CONSTEXPR const int radix
Definition: Half.h:227
static EIGEN_CONSTEXPR const int digits10
Definition: Half.h:223
static EIGEN_CONSTEXPR Eigen::half() min()
Definition: Half.h:237
static EIGEN_CONSTEXPR Eigen::half infinity()
Definition: Half.h:242
static EIGEN_CONSTEXPR const int min_exponent
Definition: Half.h:228
static EIGEN_CONSTEXPR const int max_exponent10
Definition: Half.h:231
static EIGEN_CONSTEXPR Eigen::half epsilon()
Definition: Half.h:240
static EIGEN_CONSTEXPR Eigen::half() max()
Definition: Half.h:239
static EIGEN_CONSTEXPR const bool has_quiet_NaN
Definition: Half.h:209
static EIGEN_CONSTEXPR const bool is_signed
Definition: Half.h:205
static EIGEN_CONSTEXPR const int max_digits10
Definition: Half.h:225
static EIGEN_CONSTEXPR const bool is_iec559
Definition: Half.h:217
static EIGEN_CONSTEXPR const bool has_signaling_NaN
Definition: Half.h:210
static EIGEN_CONSTEXPR const bool has_denorm_loss
Definition: Half.h:214
static EIGEN_CONSTEXPR const bool is_integer
Definition: Half.h:206
static EIGEN_CONSTEXPR const int max_exponent
Definition: Half.h:230
static EIGEN_CONSTEXPR const bool is_specialized
Definition: Half.h:204
static EIGEN_CONSTEXPR const bool tinyness_before
Definition: Half.h:235
static EIGEN_CONSTEXPR Eigen::half quiet_NaN()
Definition: Half.h:243
static EIGEN_CONSTEXPR const bool traps
Definition: Half.h:232
static EIGEN_CONSTEXPR const std::float_round_style round_style
Definition: Half.h:216
static EIGEN_CONSTEXPR const bool is_modulo
Definition: Half.h:221
static EIGEN_CONSTEXPR const bool is_exact
Definition: Half.h:207
static EIGEN_CONSTEXPR const int min_exponent10
Definition: Half.h:229
static EIGEN_CONSTEXPR Eigen::half denorm_min()
Definition: Half.h:245
static EIGEN_CONSTEXPR Eigen::half lowest()
Definition: Half.h:238
static EIGEN_CONSTEXPR Eigen::half signaling_NaN()
Definition: Half.h:244
static EIGEN_CONSTEXPR const int digits
Definition: Half.h:222
static EIGEN_CONSTEXPR const bool is_bounded
Definition: Half.h:220
half_impl::__half_raw __half_raw
Definition: Half.h:146
EIGEN_DEVICE_FUNC half(std::complex< RealScalar > c)
Definition: Half.h:183
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR half()
Definition: Half.h:159
EIGEN_DEVICE_FUNC half(T val)
Definition: Half.h:176
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR half(bool b)
Definition: Half.h:173
EIGEN_DEVICE_FUNC half(float f)
Definition: Half.h:178
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR half(const __half_raw &h)
Definition: Half.h:161
static EIGEN_DEVICE_FUNC half run(const float &a)
Definition: Half.h:952
static EIGEN_DEVICE_FUNC float run(const half &a)
Definition: Half.h:976
static EIGEN_DEVICE_FUNC half run(const int &a)
Definition: Half.h:964
Definition: MathFunctions.h:339
@ value
Definition: Meta.h:146
static EIGEN_DEVICE_FUNC half run(const half &x, const half &y)
Definition: Half.h:788
static EIGEN_DEVICE_FUNC half run()
Definition: Half.h:792
Definition: RandomImpl.h:28
void run(const string &dir_name, LinearSolver *linear_solver_pt, const unsigned nel_1d, bool mess_up_order)
Definition: two_d_poisson_compare_solvers.cc:317
float f
Definition: Half.h:527
unsigned int u
Definition: Half.h:526