diff options
author | Antonio Sanchez <cantonios@google.com> | 2021-03-15 10:50:37 -0700 |
---|---|---|
committer | Antonio Sanchez <cantonios@google.com> | 2021-03-15 10:52:23 -0700 |
commit | 14487ed14e7e04cf1d84681274ae9d36fda23a39 (patch) | |
tree | c9765707d72551be2835ad06e8157ecbb1cc24c8 /Eigen/src/Core/arch/Default | |
parent | b271110788827f77192d38acac536eb6fb617a0d (diff) |
Add increment/decrement operators to Eigen::half.
This is for consistency with bfloat16, and to support initialization
with `std::iota`.
Diffstat (limited to 'Eigen/src/Core/arch/Default')
-rw-r--r-- | Eigen/src/Core/arch/Default/Half.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Eigen/src/Core/arch/Default/Half.h b/Eigen/src/Core/arch/Default/Half.h index eb3030aa7..6529f14ec 100644 --- a/Eigen/src/Core/arch/Default/Half.h +++ b/Eigen/src/Core/arch/Default/Half.h @@ -465,6 +465,28 @@ EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator / (const half& a, Index b) { return half(static_cast<float>(a) / static_cast<float>(b)); } +EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator++(half& a) { + a += half(1); + return a; +} + +EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator--(half& a) { + a -= half(1); + return a; +} + +EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator++(half& a, int) { + half original_value = a; + ++a; + return original_value; +} + +EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator--(half& a, int) { + half original_value = a; + --a; + return original_value; +} + // Conversion routines, including fallbacks for the host or older CUDA. // Note that newer Intel CPUs (Haswell or newer) have vectorized versions of // these in hardware. If we need more performance on older/other CPUs, they are |