mirror of
https://github.com/bkaradzic/bx.git
synced 2026-02-17 20:52:37 +01:00
Cleanup.
This commit is contained in:
@@ -544,32 +544,6 @@ namespace bx
|
||||
return result;
|
||||
}
|
||||
|
||||
inline BX_CONSTEXPR_FUNC uint32_t uint64_cntbits(uint64_t _val)
|
||||
{
|
||||
const uint32_t lo = uint32_t(_val&UINT32_MAX);
|
||||
const uint32_t hi = uint32_t(_val>>32);
|
||||
|
||||
const uint32_t total = bx::uint32_cntbits(lo)
|
||||
+ bx::uint32_cntbits(hi);
|
||||
return total;
|
||||
}
|
||||
|
||||
inline BX_CONSTEXPR_FUNC uint32_t uint64_cntlz(uint64_t _val)
|
||||
{
|
||||
return _val & UINT64_C(0xffffffff00000000)
|
||||
? uint32_cntlz(uint32_t(_val>>32) )
|
||||
: uint32_cntlz(uint32_t(_val) ) + 32
|
||||
;
|
||||
}
|
||||
|
||||
inline BX_CONSTEXPR_FUNC uint32_t uint64_cnttz(uint64_t _val)
|
||||
{
|
||||
return _val & UINT64_C(0xffffffff)
|
||||
? uint32_cnttz(uint32_t(_val) )
|
||||
: uint32_cnttz(uint32_t(_val>>32) ) + 32
|
||||
;
|
||||
}
|
||||
|
||||
inline BX_CONSTEXPR_FUNC uint64_t uint64_li(uint64_t _a)
|
||||
{
|
||||
return _a;
|
||||
@@ -670,6 +644,21 @@ namespace bx
|
||||
return _a * _b;
|
||||
}
|
||||
|
||||
inline BX_CONSTEXPR_FUNC uint32_t uint64_cntbits(uint64_t _val)
|
||||
{
|
||||
return uint32_cntbits(_val);
|
||||
}
|
||||
|
||||
inline BX_CONSTEXPR_FUNC uint32_t uint64_cntlz(uint64_t _val)
|
||||
{
|
||||
return uint32_cntlz(_val);
|
||||
}
|
||||
|
||||
inline BX_CONSTEXPR_FUNC uint32_t uint64_cnttz(uint64_t _val)
|
||||
{
|
||||
return uint32_cnttz(_val);
|
||||
}
|
||||
|
||||
inline BX_CONSTEXPR_FUNC uint32_t uint32_gcd(uint32_t _a, uint32_t _b)
|
||||
{
|
||||
do
|
||||
|
||||
@@ -239,6 +239,15 @@ namespace bx
|
||||
///
|
||||
BX_CONSTEXPR_FUNC uint64_t uint64_mul(uint64_t _a, uint64_t _b);
|
||||
|
||||
///
|
||||
BX_CONSTEXPR_FUNC uint32_t uint64_cntbits(uint64_t _val);
|
||||
|
||||
///
|
||||
BX_CONSTEXPR_FUNC uint32_t uint64_cntlz(uint64_t _val);
|
||||
|
||||
///
|
||||
BX_CONSTEXPR_FUNC uint32_t uint64_cnttz(uint64_t _val);
|
||||
|
||||
/// Greatest common divisor.
|
||||
///
|
||||
BX_CONSTEXPR_FUNC uint32_t uint32_gcd(uint32_t _a, uint32_t _b);
|
||||
|
||||
@@ -124,16 +124,22 @@ TEST_CASE("halfTo/FromFloat", "[uint32_t]")
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("uint32_testpow2")
|
||||
TEST_CASE("uint32_testpow2", "[uint32_t]")
|
||||
{
|
||||
uint32_t shift = 0;
|
||||
uint32_t nextpow2 = bx::uint32_nextpow2(1);
|
||||
|
||||
for (uint32_t ii = 0; ii < UINT32_MAX; ++ii)
|
||||
for (uint32_t ii = 1; ii < 1<<24; ++ii)
|
||||
{
|
||||
REQUIRE(nextpow2 == bx::uint32_nextpow2(ii) );
|
||||
|
||||
if (bx::uint32_testpow2(ii) )
|
||||
{
|
||||
REQUIRE(ii == 1u << shift);
|
||||
++shift;
|
||||
|
||||
REQUIRE(ii == nextpow2);
|
||||
nextpow2 = bx::uint32_nextpow2(ii+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user