31 for (
int i = 0; i < N; ++i) { res_arr[i] = mu + sigma *
rand_nd(
rand_rng); }
37 for (
int i = 0; i < N; ++i) {
39 res_arr[i] = -std::log(1.0 - randu);
54 std::qsort(res_arr, N,
sizeof(*res_arr), [](
const void* a,
const void* b) {
58 if (arg1 < arg2)
return -1;
59 if (arg1 > arg2)
return 1;
62 for (
int i = 0; i < N - 1; ++i) { res_arr[i] = res_arr[i + 1] - res_arr[i]; }
63 res_arr[N - 1] = 1.0f - res_arr[N - 1];
66 for (
int i = 1; i < N; ++i) res_arr[i] *= constr;
72 for (
int i = 0; i < N; ++i) {
74 norm += res_arr[i] * res_arr[i];
76 norm = std::sqrt(norm);
77 for (
int i = 0; i < N; ++i) { res_arr[i] /= norm; }
80 for (
int i = 0; i < N; ++i) res_arr[i] *= constr;
85 seed = DS->def_int(
"random.seed", rng_t::state_size);
90 std::random_device source;
93 for (
int i = 0; i < rng_t::state_size; ++i)
seed[i] = source();
95 std::seed_seq sseq(
seed,
seed + rng_t::state_size);
static int rand_simplex(kids_real *res_arr, int N=1, kids_real constr=1.0f)
static std::normal_distribution< kids_real > rand_nd
normal distribution
static int rand_uniform(kids_real *res_arr, int N=1, kids_real sigma=1.0)
static int rand_gaussian(kids_real *res_arr, int N=1, kids_real sigma=1.0, kids_real mu=0.0)
static int rand_catalog(int *res_arr, int N=1, bool reset=false, int begin=0, int end=1)
std::poisson_distribution< int >::param_type pd_range
static std::poisson_distribution< int > rand_pd
possion distribution
static std::uniform_int_distribution< int > rand_uid
catalog distribution
static int rand_exponent(kids_real *res_arr, int N=1)
virtual void setInputDataSet_impl(std::shared_ptr< DataSet > &DS)
Virtual function to set input data set for the kernel implementation.
virtual int getType() const
Get the type of the kernel.
static std::uniform_real_distribution< kids_real > rand_udd
uniform distribution
virtual const std::string getName()
Get the name of the kernel.
std::uniform_int_distribution< int >::param_type uid_range
virtual Status & initializeKernel_impl(Status &stat)
Virtual function to initialize the kernel implementation.
std::mt19937 rng_t
random number generator type
static int rand_poisson(int *res_arr, int N=1, kids_real lambda=1.0f)
static int rand_sphere(kids_real *res_arr, int N=1, kids_real constr=1.0f)
< http://warp.povusers.org/FunctionParser/fparser.html
double kids_real
Alias for real number type.
constexpr uint32_t hash(const char *str)