![]() |
MySQL 9.6.0
Source Code Documentation
|
Code documentation: Math.
This is a header-only library, containing mathematical functions. Currently it has the following headers:
int_pow(a, b) computes a to the power b. For constexpr arguments, reduces to a compile-time constant. Otherwise, logarithmic in the exponent. The exact number of multiplications is equal to the 2-logarithm of the exponent, plus the number of 1-bits in the exponent.int_log<N>(a) computes the base-N logarithm of a. For constexpr arguments, reduces to a constant. Otherwise, logarithmic in the base logarithm of std::numeric_limits<Value_t>::max(). The exact number of divisions is the floor of log2(int_log_max<Value_t, base>()) and in each division, the denominator is a compile-time constant which is a power of base, so that the compiler may use denominator-specific optimizations such as shift-right instead of division operations.int_log_max<T>() reduces to a compile-time constant, which is the floor of the logarithm of the maximum value representable in type T.kahan_sum uses the Kahan summation algorithm to compute the sum of floating-point numbers with very low numeric error. sequence_sum_difference computes the difference of the sums of two sequences of nonnegative integers, guaranteeing exact results when the sums are close to each other, even if each sum is huge.