MCKL
Monte Carlo Kernel Library
Classes | Namespaces | Typedefs | Functions
mkl.hpp File Reference
#include <mckl/random/internal/common.hpp>
#include <mckl/random/uniform_real_distribution.hpp>
#include <mkl_vsl.h>

Go to the source code of this file.

Classes

class  mckl::internal::MKLMaxOffset< BRNG >
 
class  mckl::internal::MKLMaxOffset< VSL_BRNG_MT2203 >
 
class  mckl::internal::MKLMaxOffset< VSL_BRNG_WH >
 
class  mckl::internal::MKLOffset< BRNG, MaxOffset >
 
class  mckl::internal::MKLOffset< BRNG, 0 >
 
class  mckl::internal::MKLStreamState< RNGType >
 
class  mckl::internal::MKLUniformBits< MKL_INT, int >
 
class  mckl::internal::MKLUniformBits< BRNG, 32 >
 
class  mckl::internal::MKLUniformBits< BRNG, 64 >
 
class  mckl::MKLEngine< BRNG, Bits >
 Use MKL BRNG as RNG engine. More...
 
class  mckl::MKLStream
 MKL VSLStreamStatePtr wrapper. More...
 

Namespaces

 mckl
 
 mckl::internal
 

Typedefs

using mckl::MKL_ARS5 = MKLEngine< VSL_BRNG_ARS5, 32 >
 A counter-based random number generator. More...
 
using mckl::MKL_ARS5_64 = MKLEngine< VSL_BRNG_ARS5, 64 >
 A counter-based random number generator (64-bit) More...
 
using mckl::MKL_MCG59 = MKLEngine< VSL_BRNG_MCG59, 32 >
 A 59-bit multiplicative congruential generator. More...
 
using mckl::MKL_MCG59_64 = MKLEngine< VSL_BRNG_MCG59, 64 >
 A 59-bit multiplicative congruential generator (64-bit) More...
 
using mckl::MKL_MT19937 = MKLEngine< VSL_BRNG_MT19937, 32 >
 A Mersenne-Twister pseudoranom number genertor. More...
 
using mckl::MKL_MT19937_64 = MKLEngine< VSL_BRNG_MT19937, 64 >
 A Mersenne-Twister pseudoranom number genertor (64-bit) More...
 
using mckl::MKL_MT2203 = MKLEngine< VSL_BRNG_MT2203, 32 >
 A set of 6024 Mersenne-Twister pseudoranom number genertor. More...
 
using mckl::MKL_MT2203_64 = MKLEngine< VSL_BRNG_MT2203, 64 >
 A set of 6024 Mersenne-Twister pseudoranom number genertor (64-bit) More...
 
using mckl::MKL_NONDETERM = MKLEngine< VSL_BRNG_NONDETERM, 32 >
 A non-determinstic random number generator. More...
 
using mckl::MKL_NONDETERM_64 = MKLEngine< VSL_BRNG_NONDETERM, 64 >
 A non-determinstic random number generator (64-bit) More...
 
using mckl::MKL_PHILOX4X32X10 = MKLEngine< VSL_BRNG_PHILOX4X32X10, 32 >
 A counter-based random number generator. More...
 
using mckl::MKL_PHILOX4X32X10_64 = MKLEngine< VSL_BRNG_PHILOX4X32X10, 64 >
 A counter-based random number generator (64-bit) More...
 
using mckl::MKL_SFMT19937 = MKLEngine< VSL_BRNG_SFMT19937, 32 >
 A SIMD-oriented fast Mersenne-Twister pseudoranom number genertor. More...
 
using mckl::MKL_SFMT19937_64 = MKLEngine< VSL_BRNG_SFMT19937, 64 >
 A SIMD-oriented fast Mersenne-Twister pseudoranom number genertor (64-bit) More...
 

Functions

template<MKL_INT BRNG, int Bits>
void mckl::bernoulli_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, int *r, double p)
 
template<MKL_INT BRNG, int Bits>
void mckl::beta_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, float alpha, float beta)
 
template<MKL_INT BRNG, int Bits>
void mckl::beta_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, double alpha, double beta)
 
template<MKL_INT BRNG, int Bits>
void mckl::cauchy_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, float a, float b)
 
template<MKL_INT BRNG, int Bits>
void mckl::cauchy_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, double a, double b)
 
template<MKL_INT BRNG, int Bits>
void mckl::exponential_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, float lambda)
 
template<MKL_INT BRNG, int Bits>
void mckl::exponential_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, double lambda)
 
template<MKL_INT BRNG, int Bits>
void mckl::extreme_value_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, float a, float b)
 
template<MKL_INT BRNG, int Bits>
void mckl::extreme_value_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, double a, double b)
 
template<MKL_INT BRNG, int Bits>
void mckl::gamma_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, float alpha, float beta)
 
template<MKL_INT BRNG, int Bits>
void mckl::gamma_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, double alpha, double beta)
 
template<MKL_INT BRNG, int Bits>
void mckl::geometric_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, int *r, double p)
 
template<MKL_INT BRNG, int Bits>
void mckl::laplace_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, float location, float scale)
 
template<MKL_INT BRNG, int Bits>
void mckl::laplace_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, double location, double scale)
 
template<MKL_INT BRNG, int Bits>
void mckl::lognormal_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, float m, float s)
 
template<MKL_INT BRNG, int Bits>
void mckl::lognormal_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, double m, double s)
 
template<typename RNGType >
int mckl::mkl_brng ()
 Register an RNG as MKL BRNG. More...
 
int mckl::internal::mkl_error_check (int status, const char *cpp, const char *c)
 
template<typename RNGType >
int mckl::internal::mkl_init (RNGType &rng, int n, const unsigned *param, std::true_type)
 
template<typename RNGType >
int mckl::internal::mkl_init (int method, ::VSLStreamStatePtr stream, int n, const unsigned *param)
 
template<typename RNGType >
constexpr int mckl::internal::mkl_nseeds ()
 
template<typename RNGType >
int mckl::internal::mkl_uniform_int (::VSLStreamStatePtr stream, int n, unsigned *r)
 
template<typename RNGType , typename RealType >
int mckl::internal::mkl_uniform_real (::VSLStreamStatePtr stream, int n, RealType *r, RealType a, RealType b)
 
template<MKL_INT BRNG, int Bits>
void mckl::normal_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, float mean, float stddev)
 
template<MKL_INT BRNG, int Bits>
void mckl::normal_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, double mean, double stddev)
 
template<MKL_INT BRNG, int Bits>
void mckl::normal_mv_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, std::size_t m, const float *mean, const float *chol)
 
template<MKL_INT BRNG, int Bits>
void mckl::normal_mv_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, std::size_t m, const double *mean, const double *chol)
 
bool mckl::operator!= (const MKLStream &stream1, const MKLStream &stream2)
 Inequality comparison of MKLStream. More...
 
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & mckl::operator<< (std::basic_ostream< CharT, Traits > &os, const MKLStream &stream)
 Output of MKLStream. More...
 
bool mckl::operator== (const MKLStream &stream1, const MKLStream &stream2)
 Equality comparison of MKLStream. More...
 
template<typename CharT , typename Traits >
std::basic_istream< CharT, Traits > & mckl::operator>> (std::basic_istream< CharT, Traits > &is, MKLStream &stream)
 Input of MKLStream. More...
 
template<MKL_INT BRNG, int Bits>
void mckl::rand (MKLEngine< BRNG, Bits > &rng, std::size_t n, typename MKLEngine< BRNG, Bits >::result_type *r)
 
template<MKL_INT BRNG, int Bits>
void mckl::rayleigh_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, float sigma)
 
template<MKL_INT BRNG, int Bits>
void mckl::rayleigh_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, double sigma)
 
template<MKL_INT BRNG, int Bits>
void mckl::uniform_int_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, int *r, int a, int b)
 
template<MKL_INT BRNG, int Bits>
void mckl::uniform_real_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, float a, float b)
 
template<MKL_INT BRNG, int Bits>
void mckl::uniform_real_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, double a, double b)
 
template<MKL_INT BRNG, int Bits>
void mckl::weibull_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, float *r, float a, float b)
 
template<MKL_INT BRNG, int Bits>
void mckl::weibull_distribution (MKLEngine< BRNG, Bits > &rng, std::size_t n, double *r, double a, double b)