Eigen::internal::DividerHelper< 64, T > Struct Template Reference

#include <TensorIntDiv.h>

Static Public Member Functions

static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE uint64_t computeMultiplier (const int log_div, const T divider)
 

Member Function Documentation

◆ computeMultiplier()

template<typename T >
static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE uint64_t Eigen::internal::DividerHelper< 64, T >::computeMultiplier ( const int  log_div,
const T  divider 
)
inlinestatic
125  {
126 #if EIGEN_HAS_BUILTIN_INT128 && !defined(EIGEN_GPU_COMPILE_PHASE) && !defined(SYCL_DEVICE_ONLY)
127  return static_cast<uint64_t>((static_cast<__uint128_t>(1) << (64 + log_div)) / static_cast<__uint128_t>(divider) -
128  (static_cast<__uint128_t>(1) << 64) + 1);
129 #else
130  const uint64_t shift = 1ULL << log_div;
131  TensorUInt128<uint64_t, uint64_t> result =
132  TensorUInt128<uint64_t, static_val<0> >(shift, 0) / TensorUInt128<static_val<0>, uint64_t>(divider) -
133  TensorUInt128<static_val<1>, static_val<0> >(1, 0) + TensorUInt128<static_val<0>, static_val<1> >(1);
134  return static_cast<uint64_t>(result);
135 #endif
136  }
std::uint64_t uint64_t
Definition: Meta.h:42

The documentation for this struct was generated from the following file: