40#ifndef LM_RNG_XORWOW_H_ 
   41#define LM_RNG_XORWOW_H_ 
   44#include <cuda_runtime.h> 
   45#include <curand_kernel.h> 
   72    #ifdef RNG_CUDA_DOUBLE_PRECISION 
 
   98#ifdef RNG_CUDA_DOUBLE_PRECISION 
   99__global__ 
void xorwow_generate_kernel(curandState *state, 
double * randomValues, 
double * expRandomValues, 
double * normRandomValues, 
uint iterations);
 
  101__global__ 
void xorwow_generate_kernel(curandState *state, 
float * randomValues, 
float * expRandomValues, 
float * normRandomValues, 
uint iterations);
 
unsigned int uint
Definition Types.h:52
Distributions availableDists
Definition RandomGenerator.h:100
Distributions
Types of random number generators that are allowed.
Definition RandomGenerator.h:56
RandomGenerator(uint32_t seedTop, uint32_t seedBottom, Distributions availableDists=(Distributions)(ALL))
Definition RandomGenerator.cpp:54
curandState * state
Definition XORWow.h:70
float * nextRandomValues
Definition XORWow.h:84
float * normRandomValuesDev
Definition XORWow.h:91
float * expRandomValuesDev
Definition XORWow.h:88
size_t nextValue
Definition XORWow.h:94
float * randomValues
Definition XORWow.h:83
XORWow(int cudaDevice, uint32_t seedTop, uint32_t seedBottom, Distributions availableDists)
float * expRandomValues
Definition XORWow.h:86
virtual void generateRandomValues()
float * randomValuesDev
Definition XORWow.h:85
virtual void getExpRandomDoubles(double *rngs, int numberRNGs)
Get a number of random exponentially distiributed doubles.
virtual uint32_t getRandom()
Get a random integer.
virtual void getNormRandomDoubles(double *rngs, int numberRNGs)
Get a number of random normally distributed doubles.
virtual double getNormRandomDouble()
Get a random normally distributed double.
virtual void getRandomDoubles(double *rngs, int numberRNGs)
Get a number of random doubles.
const size_t numberValues
Definition XORWow.h:93
float * normRandomValues
Definition XORWow.h:89
virtual double getRandomDouble()
Get a random double.
virtual double getExpRandomDouble()
Get a random exponentially distributed double.
virtual void launchGenerateKernel()
float * nextExpRandomValues
Definition XORWow.h:87
int cudaDevice
Definition XORWow.h:69
cudaStream_t stream
Definition XORWow.h:71
float * nextNormRandomValues
Definition XORWow.h:90
Definition RandomGenerator.cpp:52
__global__ void xorwow_init_kernel(const unsigned long long seed, curandState *rngState)
__global__ void xorwow_generate_kernel(curandState *state, float *randomValues, float *expRandomValues, float *normRandomValues, uint iterations)
Definition Capsule.cpp:46