engineering lib2 places rand scientific shift trunc bitfuncs leadingzero