vSMC
vSMC: Scalable Monte Carlo
Classes | Namespaces | Macros | Typedefs | Functions
mkl.hpp File Reference
#include <vsmc/rng/internal/common.hpp>
#include <mkl.h>

Go to the source code of this file.

Classes

struct  vsmc::internal::MKLOffset< MKL_INT >
 
struct  vsmc::internal::MKLOffset< VSL_BRNG_MT2203 >
 
struct  vsmc::internal::MKLOffset< VSL_BRNG_WH >
 
struct  vsmc::internal::MKLOffsetDynamic< MaxOffset >
 
struct  vsmc::internal::MKLOffsetZero
 
struct  vsmc::internal::MKLSkipAhead< BRNG, ResultType >
 
struct  vsmc::internal::MKLSkipAhead< VSL_BRNG_MCG31, ResultType >
 
struct  vsmc::internal::MKLSkipAhead< VSL_BRNG_MCG59, ResultType >
 
struct  vsmc::internal::MKLSkipAhead< VSL_BRNG_MRG32K3A, ResultType >
 
struct  vsmc::internal::MKLSkipAhead< VSL_BRNG_NIEDERR, ResultType >
 
struct  vsmc::internal::MKLSkipAhead< VSL_BRNG_SOBOL, ResultType >
 
struct  vsmc::internal::MKLSkipAheadForce< BRNG, ResultType >
 
struct  vsmc::internal::MKLSkipAheadVSL
 
class  vsmc::MKLBernoulliDistribution< Method >
 MKL Bernoulli distribution. More...
 
class  vsmc::MKLBernoulliDistribution< Method >
 MKL Bernoulli distribution. More...
 
class  vsmc::MKLBetaDistribution< FPType, Method >
 MKL Beta distribution. More...
 
class  vsmc::MKLBetaDistribution< FPType, Method >
 MKL Beta distribution. More...
 
class  vsmc::MKLBinomialDistribution< Method >
 MKL Binomial distribution. More...
 
class  vsmc::MKLBinomialDistribution< Method >
 MKL Binomial distribution. More...
 
class  vsmc::MKLCauchyDistribution< FPType, Method >
 MKL Cauchy distribution. More...
 
class  vsmc::MKLCauchyDistribution< FPType, Method >
 MKL Cauchy distribution. More...
 
class  vsmc::MKLDistribution< ResultType, Derived >
 Base class of MKL distribution. More...
 
class  vsmc::MKLDistribution< ResultType, Derived >
 Base class of MKL distribution. More...
 
class  vsmc::MKLEngine< BRNG, ResultType >
 MKL RNG C++11 engine. More...
 
class  vsmc::MKLEngine< BRNG, ResultType >
 MKL RNG C++11 engine. More...
 
class  vsmc::MKLExponentialDistribution< FPType, Method >
 MKL Exponential distribution. More...
 
class  vsmc::MKLExponentialDistribution< FPType, Method >
 MKL Exponential distribution. More...
 
class  vsmc::MKLGammaDistribution< FPType, Method >
 MKL Gamma distribution. More...
 
class  vsmc::MKLGammaDistribution< FPType, Method >
 MKL Gamma distribution. More...
 
class  vsmc::MKLGaussianDistribution< FPType, Method >
 MKL Gaussian distribution. More...
 
class  vsmc::MKLGaussianDistribution< FPType, Method >
 MKL Gaussian distribution. More...
 
class  vsmc::MKLGeometricDistribution< Method >
 MKL Geometric distribution. More...
 
class  vsmc::MKLGeometricDistribution< Method >
 MKL Geometric distribution. More...
 
class  vsmc::MKLGumbelDistribution< FPType, Method >
 MKL Gumbel distribution. More...
 
class  vsmc::MKLGumbelDistribution< FPType, Method >
 MKL Gumbel distribution. More...
 
class  vsmc::MKLHypergeometricDistribution< Method >
 MKL Hypergeometric distribution. More...
 
class  vsmc::MKLHypergeometricDistribution< Method >
 MKL Hypergeometric distribution. More...
 
class  vsmc::MKLLaplaceDistribution< FPType, Method >
 MKL Laplace distribution. More...
 
class  vsmc::MKLLaplaceDistribution< FPType, Method >
 MKL Laplace distribution. More...
 
class  vsmc::MKLLognormalDistribution< FPType, Method >
 MKL Lognormal distribution. More...
 
class  vsmc::MKLLognormalDistribution< FPType, Method >
 MKL Lognormal distribution. More...
 
class  vsmc::MKLNegBinomialDistribution< Method >
 MKL NegBinomial distribution. More...
 
class  vsmc::MKLNegBinomialDistribution< Method >
 MKL NegBinomial distribution. More...
 
class  vsmc::MKLPoissonDistribution< Method >
 MKL Poisson distribution. More...
 
class  vsmc::MKLPoissonDistribution< Method >
 MKL Poisson distribution. More...
 
class  vsmc::MKLRayleighDistribution< FPType, Method >
 MKL Rayleigh distribution. More...
 
class  vsmc::MKLRayleighDistribution< FPType, Method >
 MKL Rayleigh distribution. More...
 
class  vsmc::MKLStream< BRNG >
 MKL RNG C++11 engine stream. More...
 
class  vsmc::MKLStream< BRNG >
 MKL RNG C++11 engine stream. More...
 
class  vsmc::MKLUniformBits32Distribution
 MKL uniform bits distribution (32-bits) More...
 
class  vsmc::MKLUniformBits64Distribution
 MKL uniform bits distribution (64-bits) More...
 
class  vsmc::MKLUniformDistribution< ResultType, Method >
 MKL Uniform distribution. More...
 
class  vsmc::MKLUniformDistribution< ResultType, Method >
 MKL Uniform distribution. More...
 
class  vsmc::MKLWeibullDistribution< FPType, Method >
 MKL Weibull distribution. More...
 
class  vsmc::MKLWeibullDistribution< FPType, Method >
 MKL Weibull distribution. More...
 
struct  vsmc::traits::MKLSeedTrait< MKL_INT >
 Default seed for MKL RNG. More...
 
struct  vsmc::traits::MKLSeedTrait< VSL_BRNG_NIEDERR >
 Default seed for MKL Niederr quasi-RNG. More...
 
struct  vsmc::traits::MKLSeedTrait< VSL_BRNG_SOBOL >
 Default seed for MKL Sobol quasi-RNG. More...
 
struct  vsmc::traits::MKLUniformBitsTrait< MKL_INT, typename >
 MKLEngine uniform bits trait. More...
 
struct  vsmc::traits::MKLUniformBitsTrait< BRNG, unsigned >
 Default uniform bits generator for MKLEngine with unsigned output. More...
 
struct  vsmc::traits::MKLUniformBitsTrait< BRNG, unsigned MKL_INT64 >
 Default uniform bits generator for MKLEngine with unsigned MKL_INT64 output. More...
 

Namespaces

 vsmc
 
 vsmc::internal
 
 vsmc::traits
 

Macros

#define VSMC_DEFINE_RNG_MKL_VSL_BRNG(BRNG)   case BRNG : return #BRNG
 
#define VSMC_DEFINE_RNG_MKL_VSL_ERR(STATUS)   case STATUS : return #STATUS
 
#define VSMC_RNG_MKL_VSL_BUFFER_SIZE   1024
 
#define VSMC_RUNTIME_ASSERT_RNG_MKL_VSL_OFFSET(offset)
 
#define VSMC_STATIC_ASSERT_RNG_MKL_VSL_DISTRIBUTION_FP_TYPE(FPType, Dist)
 

Typedefs

typedef MKLEngine< VSL_BRNG_MCG59, unsigned > vsmc::MKL_MCG59
 A 59-bits multiplicative congruential generator. More...
 
typedef MKLEngine< VSL_BRNG_MT19937, unsigned > vsmc::MKL_MT19937
 A Mersenne-Twister pseudoranom number genertor. More...
 
typedef MKLEngine< VSL_BRNG_MT19937, unsigned MKL_INT64 > vsmc::MKL_MT19937_64
 A Mersenne-Twister pseudoranom number genertor (64-bits) More...
 
typedef MKLEngine< VSL_BRNG_MT2203, unsigned > vsmc::MKL_MT2203
 A set of 6024 Mersenne-Twister pseudoranom number genertor. More...
 
typedef MKLEngine< VSL_BRNG_MT2203, unsigned MKL_INT64 > vsmc::MKL_MT2203_64
 A set of 6024 Mersenne-Twister pseudoranom number genertor (64-bits) More...
 
typedef MKLEngine< VSL_BRNG_NONDETERM, unsigned > vsmc::MKL_NONDETERM
 A non-determinstic random number generator. More...
 
typedef MKLEngine< VSL_BRNG_NONDETERM, unsigned MKL_INT64 > vsmc::MKL_NONDETERM_64
 A non-determinstic random number generator (64-bits) More...
 
typedef MKLEngine< VSL_BRNG_SFMT19937, unsigned > vsmc::MKL_SFMT19937
 A SIMD-oriented fast Mersenne-Twister pseudoranom number genertor. More...
 
typedef MKLEngine< VSL_BRNG_SFMT19937, unsigned MKL_INT64 > vsmc::MKL_SFMT19937_64
 A SIMD-oriented fast Mersenne-Twister pseudoranom number genertor (64-bits) More...
 

Functions

std::string vsmc::internal::mkl_vsl_brng_str (MKL_INT BRNG)
 
void vsmc::internal::mkl_vsl_error_check (MKL_INT BRNG, int status, const char *func, const char *mklf)
 
std::string vsmc::internal::mkl_vsl_error_str (int status)
 

Macro Definition Documentation

#define VSMC_DEFINE_RNG_MKL_VSL_BRNG (   BRNG)    case BRNG : return #BRNG

Definition at line 53 of file mkl.hpp.

#define VSMC_DEFINE_RNG_MKL_VSL_ERR (   STATUS)    case STATUS : return #STATUS

Definition at line 55 of file mkl.hpp.

#define VSMC_RNG_MKL_VSL_BUFFER_SIZE   1024

Definition at line 50 of file mkl.hpp.

#define VSMC_RUNTIME_ASSERT_RNG_MKL_VSL_OFFSET (   offset)
Value:
VSMC_RUNTIME_ASSERT((offset < max VSMC_MNE ()), \
("**MKLOffsetDynamic** " \
"EXCESS MAXIMUM NUMBER OF INDEPDENT RNG STREAMS"))
#define VSMC_RUNTIME_ASSERT(cond, msg)
Definition: assert.hpp:64
#define VSMC_MNE
Avoid MSVC stupid behavior: MNE = Macro No Expansion.
Definition: defines.hpp:38

Definition at line 44 of file mkl.hpp.

#define VSMC_STATIC_ASSERT_RNG_MKL_VSL_DISTRIBUTION_FP_TYPE (   FPType,
  Dist 
)
Value:
(cxx11::is_same<FPType, float>::value || \
cxx11::is_same<FPType, double>::value), \
USE_MKL##Dist##Distribution_##WITH_A_RESULT_TYPE_OTHER_THAN_float_OR_double)
#define VSMC_STATIC_ASSERT(cond, msg)
Definition: assert.hpp:46

Definition at line 38 of file mkl.hpp.