#pragma once #include using ulong_t = unsigned long; namespace util { namespace { //make a random generator and seed it with a p random number static std::random_device rd; static std::mt19937 gen( rd( ) ); } template < typename t > __forceinline t random_number( t min, t max ) { if constexpr( !std::is_integral_v< t > ) { std::uniform_real_distribution< t > dist( min, max ); return dist( gen ); } else { std::uniform_int_distribution< t > dist( min, max ); return dist( gen ); } } }