62#ifndef _r123_BOXMULLER_HPP__
63#define _r123_BOXMULLER_HPP__
65#include <Random123/features/compilerfeatures.h>
66#include <Random123/uniform.hpp>
71#if !defined(__CUDACC__)
83#if !defined(R123_NO_SINCOS) && defined(__APPLE__)
85#define R123_NO_SINCOS 1
100#if !defined(CUDART_VERSION) || CUDART_VERSION < 5000
103 float const PIf = 3.1415926535897932f;
104 sincosf(PIf * x, s, c);
108 double const PI = 3.1415926535897932;
109 sincos(PI * x, s, c);
121 r = sqrtf(-2.f * logf(u01<float>(u1)));
136 r = sqrt(-2. * log(u01<double>(u1)));
#define R123_STATIC_INLINE
R123_CUDA_DEVICE R123_STATIC_INLINE void sincospif(float x, float *s, float *c)
R123_CUDA_DEVICE R123_STATIC_INLINE void sincospi(double x, double *s, double *c)
R123_CUDA_DEVICE R123_STATIC_INLINE float2 boxmuller(uint32_t u0, uint32_t u1)