Skip to content

std.bits

bit twiddling on u32/u64

pub count_ones_u32 :: fn(value: u32) -> u32

count set bits; kernighan’s loop, one pass per 1-bit

pub count_ones_u64 :: fn(value: u64) -> u32
pub leading_zeros_u32 :: fn(value: u32) -> u32
pub leading_zeros_u64 :: fn(value: u64) -> u32
pub trailing_zeros_u32 :: fn(value: u32) -> u32
pub trailing_zeros_u64 :: fn(value: u64) -> u32
pub rotate_left_u32 :: fn(value: u32, amount: u32) -> u32
pub rotate_right_u32 :: fn(value: u32, amount: u32) -> u32
pub rotate_left_u64 :: fn(value: u64, amount: u32) -> u64
pub rotate_right_u64 :: fn(value: u64, amount: u32) -> u64
pub is_power_of_two_u32 :: fn(value: u32) -> bool
pub is_power_of_two_u64 :: fn(value: u64) -> bool
pub bit_u32 :: fn(value: u32, index: u32) -> bool
pub set_bit_u32 :: fn(value: u32, index: u32) -> u32
pub clear_bit_u32 :: fn(value: u32, index: u32) -> u32
pub toggle_bit_u32 :: fn(value: u32, index: u32) -> u32