MySQL 8.0.40
Source Code Documentation
ut0math.h File Reference

Math functions. More...

#include <atomic>
#include <cstdint>
#include "ut0class_life_cycle.h"
#include "ut0dbg.h"
#include "ut0seq_lock.h"

Go to the source code of this file.

Classes

class  ut::fast_modulo_t
 Allows to execute x % mod for a specified mod in a fast way, without using a slow operation of division. More...
 
class  ut::mt_fast_modulo_t
 A class that allows to atomically set new modulo value for fast modulo computations. More...
 
struct  ut::mt_fast_modulo_t::data_t
 

Namespaces

namespace  ut
 This file contains a set of libraries providing overloads for regular dynamic allocation routines which allow for opt-in memory instrumentation through performance schema memory engine (PFS).
 
namespace  ut::detail
 

Functions

static int ut::countr_zero (uint64_t x)
 Portable replacement for std::countr_zero(uint64_t) from C++20. More...
 
template<typename T >
constexpr T ut::div_ceil (T numerator, T denominator)
 Computes the result of division rounded towards positive infinity. More...
 
static uint64_t ut::multiply_uint64 (uint64_t x, uint64_t y, uint64_t &hi)
 Calculates the 128bit result of multiplication of the two specified 64bit integers. More...
 
static uint64_t ut::divide_128 (uint64_t high, uint64_t low, uint64_t div)
 
uint64_t ut::find_prime (uint64_t n)
 Looks for a prime number slightly greater than the given argument. More...
 
constexpr uint64_t ut::detail::multiply_uint64_portable (uint64_t x, uint64_t y, uint64_t &hi)
 Calculates the 128bit result of multiplication of the two specified 64bit integers. More...
 
static uint64_t operator% (uint64_t x, const ut::fast_modulo_t &fm)
 

Detailed Description

Math functions.

Function Documentation

◆ operator%()

static uint64_t operator% ( uint64_t  x,
const ut::fast_modulo_t fm 
)
inlinestatic