engineering lib2 places rand scientific shift trunc