====== Namespace std::bit ====== This namespace contains bit-manipulation functions that can make the ACT description more legible. export template function repeat(int x) : int; This concatenates ''N'' copies of the ''W''-bit input ''x'' to create an output of width ''N*W''. export template function sign_extend(int x) : int; This sign-extends the integer ''x'' (bitwidth ''W'') to bitwidth ''W2''. ''W2'' must be strictly larger than ''W''. export template function rol(int x) : int; Left rotate the ''W'' bit integer by 1. The MSB of ''x'' becomes the LSB of the result (rotating shift). export template function ror(int x) : int; Right rotate ''x'' by one, with the LSB of ''x'' becoming the MSB of the result. export template function find_msb_pos(int x) : int; This function assumes that ''x'' is non-zero, and returns the bit position of the most significant one in ''x''. export template function popcount(int x) : int; This function returns a count of the number of bits of ''x'' that are set to 1.