From 8b8cf836f3db86d445b0e0a948d2f86dfd3a9814 Mon Sep 17 00:00:00 2001 From: szdytom Date: Tue, 18 Jul 2023 20:10:39 +0800 Subject: [PATCH] add ranged uniform real sequence --- libvmake/examples/random_numbers.cpp | 4 +++- libvmake/vmake.hpp | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libvmake/examples/random_numbers.cpp b/libvmake/examples/random_numbers.cpp index 71fd802..a37a3f6 100644 --- a/libvmake/examples/random_numbers.cpp +++ b/libvmake/examples/random_numbers.cpp @@ -3,6 +3,8 @@ using namespace std; int main() { - vmake::output(cout, " ", vmake::take(vmake::rng::uniform_ints(1, 10), 10)); + vmake::output(cout, " ", vmake::take(vmake::rng::uniform_ints(1, 10), 15)); + cout << endl; + vmake::output(cout, " ", vmake::take(vmake::rng::uniform_reals(1., 10.), 5)); return 0; } diff --git a/libvmake/vmake.hpp b/libvmake/vmake.hpp index e6da714..c7a6a2a 100644 --- a/libvmake/vmake.hpp +++ b/libvmake/vmake.hpp @@ -411,6 +411,13 @@ inline auto uniform_ints(Tval l, Tval r) { }); } +template +inline auto uniform_reals(Tval l, Tval r) { + return generate([rng = Engine(), dis = std::uniform_real_distribution(l, r)]() mutable { + return dis(rng); + }); +} + } template