9#include "Random/Utility.h"
25 template <
typename T,
unsigned Dim>
29 using GeneratorPool =
typename Kokkos::Random_XorShift64_Pool<>;
35 GeneratorPool rand_pool;
48 KOKKOS_INLINE_FUNCTION
randu(view_type v_, GeneratorPool rand_pool_, T* rmin_p,
51 , rand_pool(rand_pool_) {
52 for (
unsigned int i = 0; i < Dim; i++) {
58 KOKKOS_INLINE_FUNCTION
randu(view_type v_, GeneratorPool rand_pool_)
60 , rand_pool(rand_pool_) {
61 for (
unsigned int i = 0; i < Dim; i++) {
72 KOKKOS_INLINE_FUNCTION
void operator()(
const size_t i)
const {
74 typename GeneratorPool::generator_type rand_gen = rand_pool.get_state();
76 for (
unsigned d = 0; d < Dim; ++d) {
77 v(i)[d] = rand_gen.drand(rmin[d], rmax[d]);
81 rand_pool.free_state(rand_gen);
Definition ViewTypes.h:44
Functor to generate random numbers from a uniform distribution.
Definition Randu.h:26
KOKKOS_INLINE_FUNCTION randu(view_type v_, GeneratorPool rand_pool_, T *rmin_p, T *rmax_p)
Constructor for the randu functor.
Definition Randu.h:48
KOKKOS_INLINE_FUNCTION void operator()(const size_t i) const
Operator to generate random numbers.
Definition Randu.h:72