diff --git a/randomgen.cpp b/randomgen.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4219ccec4193573721825fcf1bca881a9e043c0d --- /dev/null +++ b/randomgen.cpp @@ -0,0 +1,25 @@ +#include "randomgen.h" +#include <assert.h> +#include <cstddef> +#include <cstdint> +#include <random> + +static std::default_random_engine randomEngine; +static std::uniform_real_distribution<double> dist(0, 1); +static std::uniform_int_distribution<size_t> distSt(0, SIZE_MAX); + +double rd::rand(double max) +{ + return dist(randomEngine)*max; +} + +size_t rd::uid() +{ + return distSt(randomEngine); +} + +void rd::init() +{ + std::random_device randomDevice; + randomEngine.seed(randomDevice()); +} diff --git a/randomgen.h b/randomgen.h new file mode 100644 index 0000000000000000000000000000000000000000..014bf98eabc8b1da9ade57ae6167b559d4ecb582 --- /dev/null +++ b/randomgen.h @@ -0,0 +1,12 @@ +#pragma once + +#include <cstddef> + +namespace rd +{ + +double rand(double max = 1); +void init(); +size_t uid(); + +}