29    template <
typename... Args>
 
 
   34template <
typename T, std::enable_if_t<std::is_
unsigned_v<T>, 
bool> = true>
 
   36    return bits >= std::numeric_limits<T>::digits ? 
static_cast<T
>(-1) : (
static_cast<T
>(1) << bits) - 1;
 
 
   40template <
typename T, std::enable_if_t<std::is_
floating_po
int_v<T>, 
bool> = true>
 
   42template <
typename T, std::enable_if_t<std::is_
floating_po
int_v<T>, 
bool> = true>
 
   46template <
typename T, std::enable_if_t<std::is_
floating_po
int_v<T>, 
bool> = true>
 
   48    if (!std::isfinite(t))
 
   51    std::memcpy(&
u, &t, 
sizeof(T));
 
   53    std::memcpy(&t, &
u, 
sizeof(T));
 
 
   58template <
typename T, std::enable_if_t<std::is_
floating_po
int_v<T>, 
bool> = true>
 
   60    return std::fabs(
x) <= std::numeric_limits<T>::epsilon()
 
   61        ? std::copysign(std::numeric_limits<T>::max(), 
x)
 
   62        : 
static_cast<T
>(1.) / 
x;
 
 
   68#if defined(_MSC_VER) && !defined(__clang__) 
   69#pragma float_control(push) 
   70#pragma float_control(precise, off) 
   71#pragma fp_contract(on) 
   73template <
typename T, std::enable_if_t<std::is_
floating_po
int_v<T>, 
bool> = true>
 
   76    return std::fma(
a, 
b, 
c);
 
   77#elif defined(__clang__) 
 
   82#if defined(_MSC_VER) && !defined(__clang__) 
   83#pragma float_control(pop) 
   87template <
size_t Begin, 
size_t End, 
typename F>
 
   89    if constexpr (Begin < End) {
 
 
   96template <
typename T, std::enable_if_t<std::is_
unsigned_v<T>, 
bool> = true>
 
  103template <
typename T, std::enable_if_t<std::is_
unsigned_v<T>, 
bool> = true>
 
  109    for (
size_t i = 
log_bits - 1, 
n = 
size_t{1} << i; i > 0; --i, 
n >>= 1) {
 
 
  117template <
typename T, std::enable_if_t<std::is_
unsigned_v<T>, 
bool> = true>
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t mask
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
 
BVH_ALWAYS_INLINE T split_bits(T x)
Split an unsigned integer such that its bits are spaced by 2 zeros.
 
constexpr T round_up_log2(T i, T p=0)
Computes the (rounded-up) compile-time log in base-2 of an unsigned integer.
 
BVH_ALWAYS_INLINE T safe_inverse(T x)
Computes the inverse of the given value, always returning a finite value.
 
BVH_ALWAYS_INLINE T morton_encode(T x, T y, T z)
Morton-encode three unsigned integers into one.
 
BVH_ALWAYS_INLINE T add_ulp_magnitude(T t, unsigned ulp)
Adds the given number of ULPs (Units in the Last Place) to the given floating-point number.
 
BVH_ALWAYS_INLINE T robust_max(T a, T b)
 
BVH_ALWAYS_INLINE T atomic_max(std::atomic< T > &atomic, const T &value)
Computes the maximum between an atomic variable and a value, and returns the value previously held by...
 
BVH_ALWAYS_INLINE T fast_mul_add(T a, T b, T c)
Fast multiply-add operation.
 
BVH_ALWAYS_INLINE void static_for(F &&f)
Executes the given function once for every integer in the range [Begin, End).
 
BVH_ALWAYS_INLINE T robust_min(T a, T b)
 
typename UnsignedInt< Bits >::Type UnsignedIntType
 
BVH_ALWAYS_INLINE constexpr T make_bitmask(size_t bits)
Generates a bitmask with the given number of bits.
 
Helper callable object that just ignores its arguments and returns nothing.
 
void operator()(Args &&...) const
 
Helper type that gives an unsigned integer type with the given number of bits.