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

Go to the source code of this file.

Classes

class  vsmc::BetaDistribution< RealType >
 beta distribution More...
 
class  vsmc::CauchyDistribution< RealType >
 Cauchy distribution. More...
 
class  vsmc::ChiSquaredDistribution< RealType >
 The \(\chi^2\) distribution. More...
 
class  vsmc::CounterEngine< Generator >
 Counter based RNG engine. More...
 
class  vsmc::DiscreteDistribution< IntType >
 Draw a single sample given weights. More...
 
class  vsmc::ExponentialDistribution< RealType >
 Exponential distribution. More...
 
class  vsmc::ExtremeValueDistribution< RealType >
 ExtremeValue distribution. More...
 
class  vsmc::FisherFDistribution< RealType >
 Fisher-F distribution. More...
 
class  vsmc::GammaDistribution< RealType >
 Gamma distribution. More...
 
class  vsmc::internal::internal::HasKeyType< T >
 
class  vsmc::internal::internal::HasKeyTypeImpl< T >
 
class  vsmc::internal::internal::KeyTypeDispatch< T, bool >
 
class  vsmc::internal::internal::KeyTypeDispatch< T, false >
 
class  vsmc::internal::internal::KeyTypeDispatch< T, true >
 
class  vsmc::internal::KeyTypeTrait< T >
 
class  vsmc::internal::KeyTypeTrait< T >
 
class  vsmc::internal::RNGMaxBitsImpl< UIntType, U, N >
 
class  vsmc::internal::RNGMaxBitsImpl< UIntType, U, 0 >
 
class  vsmc::internal::RNGMinBitsImpl< UIntType, U, N >
 
class  vsmc::internal::RNGMinBitsImpl< UIntType, U, 0 >
 
class  vsmc::LaplaceDistribution< RealType >
 Laplace distribution. More...
 
class  vsmc::LevyDistribution< RealType >
 Levy distribution. More...
 
class  vsmc::LogisticDistribution< RealType >
 Logistic distribution. More...
 
class  vsmc::LognormalDistribution< RealType >
 Lognormal distribution. More...
 
class  vsmc::MKLEngine< BRNG, Bits >
 MKL RNG C++11 engine. More...
 
class  vsmc::NormalDistribution< RealType >
 Normal distribution. More...
 
class  vsmc::NormalMVDistribution< RealType, Dim >
 Multivariate Normal distribution. More...
 
class  vsmc::NormalMVProposal< RealType, Dim >
 Multivariate Normal random walk proposal. More...
 
class  vsmc::NormalProposal< RealType >
 Normal random walk proposal. More...
 
class  vsmc::ParetoDistribution< RealType >
 Pareto distribution. More...
 
class  vsmc::RandomWalk< RealType, Dim >
 Random walk MCMC update. More...
 
class  vsmc::RandomWalkG< RealType, DimX, DimG >
 Random walk MCMC update with test function. More...
 
class  vsmc::RayleighDistribution< RealType >
 Rayleigh distribution. More...
 
class  vsmc::RNGBits< RNGType >
 The value of RNGMaxBits<RNGType>::value - RNGMinBits<RNGType>::value. More...
 
class  vsmc::RNGMaxBits< RNGType >
 Find the largest N such that RNGType::max() >= (M >> (W - N)) where M = std::numeric_limits<typename RNGType::result_type>::max() W = std::numeric_limits<typename RNGType::result_type>::digits. More...
 
class  vsmc::RNGMinBits< RNGType >
 Find the smallest N such that (RNGType::min() >> N) == 0 More...
 
class  vsmc::StudentTDistribution< RealType >
 Student-t distribution. More...
 
class  vsmc::U01Distribution< RealType >
 Standard uniform distribution. More...
 
class  vsmc::U01LRDistribution< typename, typename, typename >
 
class  vsmc::UniformBitsDistribution< UIntType >
 Uniform bits distribution. More...
 
class  vsmc::UniformRealDistribution< RealType >
 Uniform real distribution. More...
 
class  vsmc::WeibullDistribution< RealType >
 Weibull distribution. More...
 

Namespaces

 vsmc
 
 vsmc::internal
 
 vsmc::internal::internal
 

Macros

#define VSMC_DEFINE_RNG_DISTRIBUTION_0(Name, name, T, t, Type)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_1(Name, name, p1, v1)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_2(Name, name, p1, v1, p2, v2)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_CONSTRUCTOR_0(Name, T)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_CONSTRUCTOR_1(Name, p1, v1)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_CONSTRUCTOR_2(Name, p1, v1, p2, v2)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_OPERATOR(Name, name)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_PARAM_TYPE_0(Name, T, t, Type)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_PARAM_TYPE_1(Name, name, p1, v1)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_PARAM_TYPE_2(Name, name, p1, v1, p2, v2)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_RAND_0(Name, name, T)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_RAND_1(Name, name, p1)
 
#define VSMC_DEFINE_RNG_DISTRIBUTION_RAND_2(Name, name, p1, p2)
 
#define VSMC_RUNTIME_ASSERT_RNG_DISTRIBUTION_PARAM(flag, Name)
 

Typedefs

template<typename T >
using vsmc::internal::KeyType = typename KeyTypeTrait< T >::type
 

Functions

template<typename RealType , typename RNGType >
void vsmc::beta_distribution (RNGType &rng, std::size_t n, RealType *r, RealType alpha, RealType beta)
 Generating beta random variates. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::beta_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *, float, float)
 
template<MKL_INT BRNG, int Bits>
void vsmc::beta_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *, double, double)
 
template<typename RealType , typename RNGType >
void vsmc::cauchy_distribution (RNGType &rng, std::size_t n, RealType *r, RealType a, RealType b)
 Generating cauchy random variates. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::cauchy_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *, float, float)
 
template<MKL_INT BRNG, int Bits>
void vsmc::cauchy_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *, double, double)
 
template<typename RealType , typename RNGType >
void vsmc::chi_squared_distribution (RNGType &rng, std::size_t n, RealType *r, RealType df)
 Generating \(\chi^2\) random variates. More...
 
template<typename RealType , typename RNGType >
void vsmc::exponential_distribution (RNGType &rng, std::size_t n, RealType *r, RealType lambda)
 Generating exponential random variates. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::exponential_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *, float)
 
template<MKL_INT BRNG, int Bits>
void vsmc::exponential_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *, double)
 
template<typename RealType , typename RNGType >
void vsmc::extreme_value_distribution (RNGType &rng, std::size_t n, RealType *r, RealType a, RealType b)
 Generating extreme_value random variates. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::extreme_value_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *, float, float)
 
template<MKL_INT BRNG, int Bits>
void vsmc::extreme_value_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *, double, double)
 
template<typename RealType , typename RNGType >
void vsmc::fisher_f_distribution (RNGType &rng, std::size_t n, RealType *r, RealType df1, RealType df2)
 Generating Fisher-F random variates. More...
 
template<typename RealType , typename RNGType >
void vsmc::gamma_distribution (RNGType &rng, std::size_t n, RealType *r, RealType alpha, RealType beta)
 Generating gamma random variates. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::gamma_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *, float, float)
 
template<MKL_INT BRNG, int Bits>
void vsmc::gamma_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *, double, double)
 
template<typename RealType , typename RNGType >
void vsmc::laplace_distribution (RNGType &rng, std::size_t n, RealType *r, RealType a, RealType b)
 Generating laplace random variates. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::laplace_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *, float, float)
 
template<MKL_INT BRNG, int Bits>
void vsmc::laplace_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *, double, double)
 
template<typename RealType , typename RNGType >
void vsmc::levy_distribution (RNGType &rng, std::size_t n, RealType *r, RealType a, RealType b)
 Generating levy random variates. More...
 
template<typename RealType , typename RNGType >
void vsmc::logistic_distribution (RNGType &rng, std::size_t n, RealType *r, RealType a, RealType b)
 Generating logistic random variates. More...
 
template<typename RealType , typename RNGType >
void vsmc::lognormal_distribution (RNGType &rng, std::size_t n, RealType *r, RealType logmean, RealType logstddev)
 Generating lognormal random variates. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::lognormal_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *, float, float)
 
template<MKL_INT BRNG, int Bits>
void vsmc::lognormal_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *, double, double)
 
template<typename RealType , typename RNGType >
void vsmc::normal_distribution (RNGType &rng, std::size_t n, RealType *r, RealType mean, RealType stddev)
 Generating Normal random variates. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::normal_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *r, float, float)
 
template<MKL_INT BRNG, int Bits>
void vsmc::normal_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *r, double, double)
 
template<typename RealType , typename RNGType >
void vsmc::normal_mv_distribution (RNGType &rng, std::size_t n, RealType *r, std::size_t dim, const RealType *mean, const RealType *chol)
 Generating multivariate Normal random varaites. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::normal_mv_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *, std::size_t, const float *, const float *)
 
template<MKL_INT BRNG, int Bits>
void vsmc::normal_mv_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *, std::size_t, const double *, const double *)
 
template<typename RealType , typename RNGType >
void vsmc::pareto_distribution (RNGType &rng, std::size_t n, RealType *r, RealType a, RealType b)
 Generating pareto random variates. More...
 
template<typename RealType , typename RNGType >
void vsmc::rayleigh_distribution (RNGType &rng, std::size_t n, RealType *r, RealType sigma)
 Generating rayleigh random variates. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::rayleigh_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *, float)
 
template<MKL_INT BRNG, int Bits>
void vsmc::rayleigh_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *, double)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &rng, ChiSquaredDistribution< RealType > &dist, std::size_t n, RealType *r)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &rng, ExponentialDistribution< RealType > &dist, std::size_t n, RealType *r)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &rng, ExtremeValueDistribution< RealType > &dist, std::size_t n, RealType *r)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &rng, CauchyDistribution< RealType > &dist, std::size_t n, RealType *r)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &rng, FisherFDistribution< RealType > &dist, std::size_t n, RealType *r)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &rng, GammaDistribution< RealType > &dist, std::size_t n, RealType *r)
 
template<typename Generator >
void vsmc::rng_rand (CounterEngine< Generator > &rng, std::size_t n, typename CounterEngine< Generator >::result_type *r)
 
template<typename RNGType >
void vsmc::rng_rand (RNGType &rng, std::size_t n, typename RNGType::result_type *r)
 Generate random bits. More...
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &rng, BetaDistribution< RealType > &dist, std::size_t n, RealType *r)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, DiscreteDistribution< RealType > &, std::size_t, RealType *)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, LaplaceDistribution< RealType > &, std::size_t, RealType *)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, LevyDistribution< RealType > &, std::size_t, RealType *)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, LogisticDistribution< RealType > &, std::size_t, RealType *)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, LognormalDistribution< RealType > &, std::size_t, RealType *)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, NormalDistribution< RealType > &, std::size_t, RealType *)
 
template<typename RealType , std::size_t Dim, typename RNGType >
void vsmc::rng_rand (RNGType &, NormalMVDistribution< RealType, Dim > &, std::size_t, RealType *)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, ParetoDistribution< RealType > &, std::size_t, RealType *)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, RayleighDistribution< RealType > &, std::size_t, RealType *)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, StudentTDistribution< RealType > &, std::size_t, RealType *)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, U01Distribution< RealType > &, std::size_t, RealType *)
 
template<typename RealType , typename RNGType , typename Left , typename Right >
void vsmc::rng_rand (RNGType &, U01LRDistribution< RealType, Left, Right > &, std::size_t, RealType *)
 
template<typename UIntType , typename RNGType >
void vsmc::rng_rand (RNGType &, UniformBitsDistribution< UIntType > &, std::size_t, UIntType *)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, UniformRealDistribution< RealType > &, std::size_t, RealType *)
 
template<typename RealType , typename RNGType >
void vsmc::rng_rand (RNGType &, WeibullDistribution< RealType > &, std::size_t, RealType *)
 
template<MKL_INT BRNG, int Bits>
void vsmc::rng_rand (MKLEngine< BRNG, Bits > &, std::size_t, typename MKLEngine< BRNG, Bits >::result_type *)
 
template<typename RealType , typename RNGType >
void vsmc::student_t_distribution (RNGType &rng, std::size_t n, RealType *r, RealType df)
 Generating student-t random variates. More...
 
template<typename RealType , typename RNGType >
void vsmc::u01_distribution (RNGType &rng, std::size_t n, RealType *r)
 Generate standard uniform random variates. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::u01_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *)
 
template<MKL_INT BRNG, int Bits>
void vsmc::u01_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *)
 
template<typename , typename , typename RealType , typename RNGType >
void vsmc::u01_lr_distribution (RNGType &, std::size_t, RealType *)
 
template<typename UIntType , typename RNGType >
void vsmc::uniform_bits_distribution (RNGType &, std::size_t, UIntType *)
 
template<typename RealType , typename RNGType >
void vsmc::uniform_real_distribution (RNGType &rng, std::size_t n, RealType *r, RealType a, RealType b)
 Generate uniform real random variates with open/closed variants. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::uniform_real_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *, float, float)
 
template<MKL_INT BRNG, int Bits>
void vsmc::uniform_real_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *, double, double)
 
template<typename RealType , typename RNGType >
void vsmc::weibull_distribution (RNGType &rng, std::size_t n, RealType *r, RealType a, RealType b)
 Generating weibull random variates. More...
 
template<MKL_INT BRNG, int Bits>
void vsmc::weibull_distribution (MKLEngine< BRNG, Bits > &, std::size_t, float *, float, float)
 
template<MKL_INT BRNG, int Bits>
void vsmc::weibull_distribution (MKLEngine< BRNG, Bits > &, std::size_t, double *, double, double)
 

Macro Definition Documentation

#define VSMC_DEFINE_RNG_DISTRIBUTION_0 (   Name,
  name,
  T,
  t,
  Type 
)
Value:
VSMC_DEFINE_RNG_DISTRIBUTION_CONSTRUCTOR_0(Name, T) \
VSMC_DEFINE_RNG_DISTRIBUTION_OPERATOR(Name, name)
#define VSMC_DEFINE_RNG_DISTRIBUTION_PARAM_TYPE_0(Name, T, t, Type)
Definition: common.hpp:45

Definition at line 364 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_1 (   Name,
  name,
  p1,
  v1 
)
Value:
VSMC_DEFINE_RNG_DISTRIBUTION_CONSTRUCTOR_1(Name, p1, v1) \
VSMC_DEFINE_RNG_DISTRIBUTION_OPERATOR(Name, name)
#define VSMC_DEFINE_RNG_DISTRIBUTION_PARAM_TYPE_1(Name, name, p1, v1)
Definition: common.hpp:85

Definition at line 369 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_2 (   Name,
  name,
  p1,
  v1,
  p2,
  v2 
)
Value:
VSMC_DEFINE_RNG_DISTRIBUTION_PARAM_TYPE_2(Name, name, p1, v1, p2, v2) \
VSMC_DEFINE_RNG_DISTRIBUTION_CONSTRUCTOR_2(Name, p1, v1, p2, v2) \
VSMC_DEFINE_RNG_DISTRIBUTION_OPERATOR(Name, name)
#define VSMC_DEFINE_RNG_DISTRIBUTION_PARAM_TYPE_2(Name, name, p1, v1, p2, v2)
Definition: common.hpp:157

Definition at line 374 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_CONSTRUCTOR_0 (   Name,
 
)
Value:
public: \
using result_type = T; \
using distribution_type = Name##Distribution<T>; \
\
Name##Distribution() = default; \
explicit Name##Distribution(const param_type &) {}

Definition at line 239 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_CONSTRUCTOR_1 (   Name,
  p1,
  v1 
)
Value:
public: \
using result_type = RealType; \
using distribution_type = Name##Distribution<RealType>; \
\
explicit Name##Distribution(result_type p1 = v1) : param_(p1) \
{ \
reset(); \
} \
\
explicit Name##Distribution(const param_type &param) : param_(param) \
{ \
reset(); \
} \
\
result_type p1() const { return param_.p1(); }

Definition at line 247 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_CONSTRUCTOR_2 (   Name,
  p1,
  v1,
  p2,
  v2 
)
Value:
public: \
using result_type = RealType; \
using distribution_type = Name##Distribution<RealType>; \
\
explicit Name##Distribution(result_type p1 = v1, result_type p2 = v2) \
: param_(p1, p2) \
{ \
reset(); \
} \
\
explicit Name##Distribution(const param_type &param) : param_(param) \
{ \
reset(); \
} \
\
result_type p1() const { return param_.p1(); } \
result_type p2() const { return param_.p2(); }

Definition at line 264 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_OPERATOR (   Name,
  name 
)

Definition at line 283 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_PARAM_TYPE_0 (   Name,
  T,
  t,
  Type 
)

Definition at line 45 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_PARAM_TYPE_1 (   Name,
  name,
  p1,
  v1 
)

Definition at line 85 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_PARAM_TYPE_2 (   Name,
  name,
  p1,
  v1,
  p2,
  v2 
)

Definition at line 157 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_RAND_0 (   Name,
  name,
 
)
Value:
template <typename T, typename RNGType> \
inline void name##_distribution(RNGType &rng, std::size_t n, T *r, \
const typename Name##Distribution<T>::param_type &) \
{ \
name##_distribution(rng, n, r); \
} \
\
template <typename T, typename RNGType> \
inline void rng_rand( \
RNGType &rng, Name##Distribution<T> &dist, std::size_t n, T *r) \
{ \
dist(rng, n, r); \
}
void rng_rand(MKLEngine< BRNG, Bits > &, std::size_t, typename MKLEngine< BRNG, Bits >::result_type *)
Definition: mkl.hpp:477

Definition at line 379 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_RAND_1 (   Name,
  name,
  p1 
)
Value:
template <typename RealType, typename RNGType> \
inline void name##_distribution(RNGType &rng, std::size_t n, RealType *r, \
const typename Name##Distribution<RealType>::param_type &param) \
{ \
name##_distribution(rng, n, r, param.p1()); \
} \
\
template <typename RealType, typename RNGType> \
inline void rng_rand(RNGType &rng, Name##Distribution<RealType> &dist, \
std::size_t n, RealType *r) \
{ \
dist(rng, n, r); \
}
void rng_rand(MKLEngine< BRNG, Bits > &, std::size_t, typename MKLEngine< BRNG, Bits >::result_type *)
Definition: mkl.hpp:477

Definition at line 394 of file common.hpp.

#define VSMC_DEFINE_RNG_DISTRIBUTION_RAND_2 (   Name,
  name,
  p1,
  p2 
)
Value:
template <typename RealType, typename RNGType> \
inline void name##_distribution(RNGType &rng, std::size_t n, RealType *r, \
const typename Name##Distribution<RealType>::param_type &param) \
{ \
name##_distribution(rng, n, r, param.p1(), param.p2()); \
} \
\
template <typename RealType, typename RNGType> \
inline void rng_rand(RNGType &rng, Name##Distribution<RealType> &dist, \
std::size_t n, RealType *r) \
{ \
dist(rng, n, r); \
}
void rng_rand(MKLEngine< BRNG, Bits > &, std::size_t, typename MKLEngine< BRNG, Bits >::result_type *)
Definition: mkl.hpp:477

Definition at line 409 of file common.hpp.

#define VSMC_RUNTIME_ASSERT_RNG_DISTRIBUTION_PARAM (   flag,
  Name 
)
Value:
"**" #Name "Distribution** CONSTRUCTED WITH INVALID PARAMETERS")
#define VSMC_RUNTIME_ASSERT(cond, msg)
Definition: assert.hpp:53

Definition at line 41 of file common.hpp.