16 const uint sample_count =
kernel_data.integrator.tabulated_sobol_sequence_size;
25 const uint sample_mask = sample_count - 1;
28 sample = (
sample & ~sample_mask) | (sample_shuffled & sample_mask);
42 if (
kernel_data.integrator.scrambling_distance < 1.0f) {
51 if (
kernel_data.integrator.scrambling_distance < 1.0f) {
70 if (
kernel_data.integrator.scrambling_distance < 1.0f) {
80 if (
kernel_data.integrator.scrambling_distance < 1.0f) {
103 if (
kernel_data.integrator.scrambling_distance < 1.0f) {
114 if (
kernel_data.integrator.scrambling_distance < 1.0f) {
135 const uint dimension)
141 if (
kernel_data.integrator.scrambling_distance < 1.0f) {
153 if (
kernel_data.integrator.scrambling_distance < 1.0f) {
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
static unsigned long seed
ccl_device_inline uint nested_uniform_scramble(uint i, uint seed)
const KernelGlobalsCPU *ccl_restrict KernelGlobals
#define kernel_data_fetch(name, index)
#define CCL_NAMESPACE_END
ccl_device_inline float hash_wang_seeded_float(uint i, uint seed)
ccl_device_inline uint hash_wang_seeded_uint(uint i, uint seed)
ccl_device_inline uint hash_shuffle_uint(uint i, uint length, uint seed)
ccl_device float3 tabulated_sobol_sample_3D(KernelGlobals kg, uint sample, const uint rng_hash, const uint dimension)
CCL_NAMESPACE_BEGIN ccl_device uint tabulated_sobol_shuffled_sample_index(KernelGlobals kg, uint sample, uint dimension, uint seed)
ccl_device float2 tabulated_sobol_sample_2D(KernelGlobals kg, uint sample, const uint rng_hash, const uint dimension)
ccl_device float4 tabulated_sobol_sample_4D(KernelGlobals kg, uint sample, const uint rng_hash, const uint dimension)
ccl_device float tabulated_sobol_sample_1D(KernelGlobals kg, uint sample, const uint rng_hash, const uint dimension)
#define NUM_TAB_SOBOL_DIMENSIONS
#define NUM_TAB_SOBOL_PATTERNS