Toolbox
snapshot
The Reactive C++ Toolbox
Loading...
Searching...
No Matches
toolbox
util
Random.hpp
Go to the documentation of this file.
1
// The Reactive C++ Toolbox.
2
// Copyright (C) 2013-2019 Swirly Cloud Limited
3
// Copyright (C) 2024 Reactive Markets Limited
4
//
5
// Licensed under the Apache License, Version 2.0 (the "License");
6
// you may not use this file except in compliance with the License.
7
// You may obtain a copy of the License at
8
//
9
// http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing, software
12
// distributed under the License is distributed on an "AS IS" BASIS,
13
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
// See the License for the specific language governing permissions and
15
// limitations under the License.
16
17
#ifndef TOOLBOX_UTIL_RANDOM_HPP
18
#define TOOLBOX_UTIL_RANDOM_HPP
19
20
#include <
toolbox/Config.h
>
21
22
#include <random>
23
24
namespace
toolbox
{
25
inline
namespace
util {
26
27
TOOLBOX_API
std::mt19937_64&
mt19937_64_rng
()
noexcept
;
28
29
template
<
class
IntT
>
30
IntT
randint
(
IntT
a
,
IntT
b
) {
31
std::mt19937_64&
rng_engine
=
mt19937_64_rng
();
32
std::uniform_int_distribution<IntT>
dist
(
a
,
b
);
33
return
dist
(
rng_engine
);
34
}
35
36
}
// namespace util
37
}
// namespace toolbox
38
39
#endif
// TOOLBOX_UTIL_RANDOM_HPP
Config.h
TOOLBOX_API
#define TOOLBOX_API
Definition
Config.h:39
toolbox::util::mt19937_64_rng
std::mt19937_64 & mt19937_64_rng() noexcept
Definition
Random.cpp:28
toolbox::util::randint
IntT randint(IntT a, IntT b)
Definition
Random.hpp:30
toolbox::util::bind
constexpr auto bind() noexcept
Definition
Slot.hpp:92
toolbox
Definition
Benchmark.cpp:26
Generated by
1.9.8