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

Go to the source code of this file.

Classes

class  vsmc::GSLEngine< RngType >
 GSL RNG Engine. More...
 
class  vsmc::GSLGenerator< RngType >
 GSL RNG generator for use with GeneratorWrapper. More...
 
struct  vsmc::internal::GSLRngMinMax< RngType >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_CMRG >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_GFSR4 >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_MRG >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_MT19937 >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_RANLUX >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_RANLUX389 >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_RANLXD1 >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_RANLXD2 >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_RANLXS0 >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_RANLXS1 >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_RANLXS2 >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_TAUS >
 
struct  vsmc::internal::GSLRngMinMax< GSL_RNG_TYPE_TAUS2 >
 
struct  vsmc::internal::GSLRngTypePointer< GSLRngType >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_CMRG >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_GFSR4 >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_MRG >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_MT19937 >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_RANLUX >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_RANLUX389 >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_RANLXD1 >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_RANLXD2 >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_RANLXS0 >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_RANLXS1 >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_RANLXS2 >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_TAUS >
 
struct  vsmc::internal::GSLRngTypePointer< GSL_RNG_TYPE_TAUS2 >
 

Namespaces

 vsmc
 
 vsmc::internal
 

Macros

#define VSMC_DEFINE_RNG_GSL_RNG_MIN_MAX(Generator, Min, Max)
 
#define VSMC_DEFINE_RNG_GSL_RNG_TYPE_POINTER(Generator, pointer)
 

Typedefs

typedef GSLEngine< GSL_RNG_TYPE_CMRG > vsmc::GSL_CMRG
 A combined multiple recursive generator. More...
 
typedef GSLEngine< GSL_RNG_TYPE_GFSR4 > vsmc::GSL_GFSR4
 A a lagged-fibonacci alike generator. More...
 
typedef GSLEngine< GSL_RNG_TYPE_MRG > vsmc::GSL_MRG
 A fifth-order multiple recursive generator. More...
 
typedef GSLEngine< GSL_RNG_TYPE_MT19937 > vsmc::GSL_MT19937
 A Mersenne-Twister pseudoranom number genertor. More...
 
typedef GSLEngine< GSL_RNG_TYPE_RANLUX > vsmc::GSL_RANLUX
 A RANLUX generator. More...
 
typedef GSLEngine< GSL_RNG_TYPE_RANLUX389 > vsmc::GSL_RANLUX389
 A RANLUX generator with the highest level of randomness. More...
 
typedef GSLEngine< GSL_RNG_TYPE_RANLXD1 > vsmc::GSL_RANLXD1
 A RANLXS generator with luxury level 1. More...
 
typedef GSLEngine< GSL_RNG_TYPE_RANLXD2 > vsmc::GSL_RANLXD2
 A RANLXS generator with luxury level 2. More...
 
typedef GSLEngine< GSL_RNG_TYPE_RANLXS0 > vsmc::GSL_RANLXS0
 A RANLUX generator with luxury level 0. More...
 
typedef GSLEngine< GSL_RNG_TYPE_RANLXS1 > vsmc::GSL_RANLXS1
 A RANLUX generator with luxury level 0. More...
 
typedef GSLEngine< GSL_RNG_TYPE_RANLXS2 > vsmc::GSL_RANLXS2
 A RANLUX generator with luxury level 0. More...
 
typedef GSLEngine< GSL_RNG_TYPE_TAUS > vsmc::GSL_TAUS
 A maximally equidistributed combined Tausworthe generator. More...
 
typedef GSLEngine< GSL_RNG_TYPE_TAUS2 > vsmc::GSL_TAUS2
 A maximally equidistributed combined Tausworthe generator with improved seeding procedure. More...
 

Enumerations

enum  vsmc::GSLRngType {
  vsmc::GSL_RNG_TYPE_MT19937,
  vsmc::GSL_RNG_TYPE_RANLXS0,
  vsmc::GSL_RNG_TYPE_RANLXS1,
  vsmc::GSL_RNG_TYPE_RANLXS2,
  vsmc::GSL_RNG_TYPE_RANLXD1,
  vsmc::GSL_RNG_TYPE_RANLXD2,
  vsmc::GSL_RNG_TYPE_RANLUX,
  vsmc::GSL_RNG_TYPE_RANLUX389,
  vsmc::GSL_RNG_TYPE_CMRG,
  vsmc::GSL_RNG_TYPE_MRG,
  vsmc::GSL_RNG_TYPE_TAUS,
  vsmc::GSL_RNG_TYPE_TAUS2,
  vsmc::GSL_RNG_TYPE_GFSR4
}
 GSL RNG algorithms. More...
 

Macro Definition Documentation

#define VSMC_DEFINE_RNG_GSL_RNG_MIN_MAX (   Generator,
  Min,
  Max 
)
Value:
template <> struct GSLRngMinMax< GSL_RNG_TYPE_##Generator > \
{ \
static VSMC_CONSTEXPR const uint32_t _Min = \
static_cast<uint32_t>(Min##UL); \
static VSMC_CONSTEXPR const uint32_t _Max = \
static_cast<uint32_t>(Max##UL); \
static VSMC_CONSTEXPR uint32_t min VSMC_MNE () {return _Min;} \
static VSMC_CONSTEXPR uint32_t max VSMC_MNE () {return _Max;} \
};
#define VSMC_CONSTEXPR
constexpr
Definition: defines.hpp:55
#define VSMC_MNE
Avoid MSVC stupid behavior: MNE = Macro No Expansion.
Definition: defines.hpp:38

Definition at line 43 of file gsl.hpp.

#define VSMC_DEFINE_RNG_GSL_RNG_TYPE_POINTER (   Generator,
  pointer 
)
Value:
template <> struct GSLRngTypePointer< GSL_RNG_TYPE_##Generator > \
{static const ::gsl_rng_type *get () {return ::gsl_rng_##pointer ;}};

Definition at line 39 of file gsl.hpp.