mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:07:47 +00:00
AK: Add AK::ceil(float) and AK::ceil_log2(integer)
Co-authored-by: Leon Albrecht <leon2002.la@gmail.com>
This commit is contained in:
parent
1e36224321
commit
072a78b958
2 changed files with 25 additions and 0 deletions
|
@ -24,6 +24,17 @@ constexpr T log2(T x)
|
|||
return x ? (8 * sizeof(T) - 1) - count_leading_zeroes(static_cast<MakeUnsigned<T>>(x)) : 0;
|
||||
}
|
||||
|
||||
template<Integral T>
|
||||
constexpr T ceil_log2(T x)
|
||||
{
|
||||
if (!x)
|
||||
return 0;
|
||||
|
||||
T log = AK::log2(x);
|
||||
log += (x & ((1 << (log - 1)) - 1)) != 0;
|
||||
return log;
|
||||
}
|
||||
|
||||
template<Integral I>
|
||||
constexpr I pow(I base, I exponent)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue