32 #ifndef VSMC_RNG_RNG_H 33 #define VSMC_RNG_RNG_H 155 vsmc_rng rng,
size_t n,
long long *r,
long long t,
double p);
159 const double *weight,
int normalized);
163 const double *weight,
int normalized);
173 vsmc_rng rng,
size_t n,
int *r,
int k,
double p);
177 vsmc_rng rng,
size_t n,
long long *r,
long long k,
double p);
190 vsmc_rng rng,
size_t n,
long long *r,
long long a,
long long b);
194 vsmc_rng rng,
size_t n,
double *r,
double alpha,
double beta);
198 vsmc_rng rng,
size_t n,
double *r,
double alpha,
double beta);
211 vsmc_rng rng,
size_t n,
double *r,
double a,
double b);
215 vsmc_rng rng,
size_t n,
double *r,
double df1,
double df2);
219 vsmc_rng rng,
size_t n,
double *r,
double alpha,
double beta);
232 vsmc_rng rng,
size_t n,
double *r,
double m,
double s);
236 vsmc_rng rng,
size_t n,
double *r,
double mean,
double stddev);
240 const double *mean,
const double *chol);
268 vsmc_rng rng,
size_t n,
double *r,
double a,
double b);
287 #endif // VSMC_RNG_RNG_H void vsmc_seed_modulo(unsigned div, unsigned rem)
vsmc::Seed::modulo
unsigned vsmc_seed_get(void)
vsmc::Seed::get
void vsmc_rand_beta(vsmc_rng rng, size_t n, double *r, double alpha, double beta)
vsmc::beta_distribution<double>
void vsmc_rand_gamma(vsmc_rng rng, size_t n, double *r, double alpha, double beta)
vsmc::gamma_distribution<double>
void vsmc_rand_discrete(vsmc_rng rng, size_t n, int *r, size_t m, const double *weight, int normalized)
vsmc::DiscreteDistribution<int>
void vsmc_rand_pareto(vsmc_rng rng, size_t n, double *r, double a, double b)
vsmc::pareto_distribution<double>
void vsmc_rng_seed(vsmc_rng rng, unsigned seed)
RNGType::seed
void vsmc_rng_load_f(vsmc_rng rng, const char *filename)
RNGType::operator>> directly from an external file*/
void vsmc_rand_discrete_64(vsmc_rng rng, size_t n, long long *r, size_t m, const double *weight, int normalized)
vsmc::DiscreteDistribution<long long>
void vsmc_u01_trans_systematic(size_t n, const double *u01, double *r)
vsmc::u01_trans_systematic
void vsmc_rand_geometric_64(vsmc_rng rng, size_t n, long long *r, double p)
std::geometric_distribution<long long>
int vsmc_mkl_brng(vSMCRNGType type)
vsmc::mkl_brng
void vsmc_rand_u01_cc(vsmc_rng rng, size_t n, double *r)
vsmc::u01_cc_distribution<double>
void vsmc_rand_negative_binomial(vsmc_rng rng, size_t n, int *r, int k, double p)
std::negative_binomial_distribution<int>
void vsmc_rand_uniform_int(vsmc_rng rng, size_t n, int *r, int a, int b)
std::uniform_int_distribution<long long>
void vsmc_seed(vsmc_rng rng)
vsmc::Seed::operator()
void vsmc_rand_binomial_64(vsmc_rng rng, size_t n, long long *r, long long t, double p)
std::binomial_distribution<long long>
void vsmc_seed_set(unsigned seed)
vsmc::Seed::set
int vsmc_rng_is_neq(vsmc_rng rng1, vsmc_rng rng2)
RNGType::operator!=
vsmc_rng vsmc_rng_new(unsigned seed, vSMCRNGType type)
RNGType::RNGType
void vsmc_rand_student_t(vsmc_rng rng, size_t n, double *r, double df)
vsmc::student_t_distribution<double>
int vsmc_rng_type_check(vSMCRNGType type)
Check if a given RNGType is defined within the library.
void vsmc_rng_assign(vsmc_rng rng, vsmc_rng other)
RNGType::operator=
int vsmc_rng_is_eq(vsmc_rng rng1, vsmc_rng rng2)
RNGType::operator==
void vsmc_rand_normal_mv(vsmc_rng rng, size_t n, double *r, size_t dim, const double *mean, const double *chol)
vsmc::normal_mv_distribution<double>
void vsmc_rand_uniform_real(vsmc_rng rng, size_t n, double *r, double a, double b)
vsmc::uniform_real_distribution<double>
void vsmc_u01_trans_sorted(size_t n, const double *u01, double *r)
vsmc::u01_trans_sorted
void vsmc_seed_load_f(const char *filename)
vsmc::Seed::operator>> directly from an external file
void vsmc_u01_trans_stratified(size_t n, const double *u01, double *r)
vsmc::u01_trans_stratifed
void vsmc_rand_geometric(vsmc_rng rng, size_t n, int *r, double p)
std::geometric_distribution<int>
void vsmc_rand_weibull(vsmc_rng rng, size_t n, double *r, double a, double b)
vsmc::weibull_distribution<double>
void vsmc_u01_rand_sorted(vsmc_rng rng, size_t n, double *r)
vsmc::u01_rand_sorted
RealType u01(UIntType u) noexcept
Convert uniform unsigned integers to floating points within [0, 1].
void vsmc_rng_save_f(vsmc_rng rng, const char *filename)
RNGType::operator<< directly to an external file
size_t vsmc_rng_save(vsmc_rng rng, void *mem)
RNGType::operator<<
void vsmc_rand_64(vsmc_rng rng, size_t n, unsigned long long *r)
vsmc::uniform_bits_distribution
void vsmc_rand_u01(vsmc_rng rng, size_t n, double *r)
vsmc::u01_distribution<double>
size_t vsmc_seed_save(void *mem)
vsmc::Seed::operator<<
void vsmc_rng_discard(vsmc_rng rng, unsigned nskip)
RNGType::discard
void vsmc_rand_negative_binomial_64(vsmc_rng rng, size_t n, long long *r, long long k, double p)
std::negative_binomial_distribution<long long>
void vsmc_rand_rayleigh(vsmc_rng rng, size_t n, double *r, double b)
vsmc::rayleigh_distribution<double>
void vsmc_rand_poisson_64(vsmc_rng rng, size_t n, long long *r, double mean)
std::poisson_distribution<long long>
void vsmc_rng_delete(vsmc_rng *rng_ptr)
RNGType::~RNGType
void div(std::size_t n, const float *a, const float *b, float *y)
void vsmc_seed_save_f(const char *filename)
vsmc::Seed::operator<< directly to an external file
void vsmc_rand_u01_oo(vsmc_rng rng, size_t n, double *r)
vsmc::u01_oo_distribution<double>
void vsmc_rand(vsmc_rng rng, size_t n, unsigned *r)
vsmc::uniform_bits_distribution
void vsmc_u01_rand_systematic(vsmc_rng rng, size_t n, double *r)
vsmc::u01_rand_systematic
void vsmc_rand_extreme_value(vsmc_rng rng, size_t n, double *r, double a, double b)
vsmc::extreme_value_distribution<double>
void vsmc_rand_bernoulli(vsmc_rng rng, size_t n, int *r, double p)
std::bernoulli_distribution
void vsmc_rand_normal(vsmc_rng rng, size_t n, double *r, double mean, double stddev)
vsmc::normal_distribution<double>
void vsmc_rand_uniform_int_64(vsmc_rng rng, size_t n, long long *r, long long a, long long b)
std::uniform_int_distribution<long long>
void vsmc_rand_poisson(vsmc_rng rng, size_t n, int *r, double mean)
std::poisson_distribution<int>
void vsmc_rand_logistic(vsmc_rng rng, size_t n, double *r, double a, double b)
vsmc::logistic_distribution<double>
void vsmc_rand_binomial(vsmc_rng rng, size_t n, int *r, int t, double p)
std::binomial_distribution<int>
void vsmc_rand_exponential(vsmc_rng rng, size_t n, double *r, double lambda)
vsmc::exponential_distribution<double>
void vsmc_rand_laplace(vsmc_rng rng, size_t n, double *r, double a, double b)
vsmc::laplace_distribution<double>
void vsmc_seed_load(const void *mem)
vsmc::Seed::operator>>
void vsmc_rand_chi_squared(vsmc_rng rng, size_t n, double *r, double df)
vsmc::chi_squared_distribution<double>
void vsmc_rand_u01_oc(vsmc_rng rng, size_t n, double *r)
vsmc::u01_oc_distribution<double>
void vsmc_rand_lognormal(vsmc_rng rng, size_t n, double *r, double m, double s)
vsmc::lognormal_distribution<double>
int vsmc_rng_type_max()
The maximum of an integer that can be passed to where vSMCRNGType value is expected.
void vsmc_u01_rand_stratified(vsmc_rng rng, size_t n, double *r)
vsmc::u01_rand_stratifed
void vsmc_rand_cauchy(vsmc_rng rng, size_t n, double *r, double a, double b)
vsmc::cauchy_distribution<double>
void vsmc_rand_arcsine(vsmc_rng rng, size_t n, double *r, double alpha, double beta)
vsmc::arcsine_distribution<double>
void vsmc_rng_load(vsmc_rng rng, void *mem)
RNGType::operator>>
void vsmc_rand_u01_co(vsmc_rng rng, size_t n, double *r)
vsmc::u01_co_distribution<double>
void vsmc_rand_fisher_f(vsmc_rng rng, size_t n, double *r, double df1, double df2)
vsmc::fisher_f_distribution<double>
void vsmc_rand_levy(vsmc_rng rng, size_t n, double *r, double a, double b)
vsmc::levy_distribution<double>