29 std::uint32_t samples[State64Bit::maxIndexSize][4];
32 static constexpr std::size_t cacheSize =
sizeof(
CacheType);
33 static void initialiseCache(
void*
cache);
54inline void PmjImpl::initialiseCache(
void*
cache)
69inline PmjImpl::PmjImpl(
int x,
int y,
int frame,
int index,
const void* cache)
70 : state(x, y, frame, index), cache(static_cast<const CacheType*>(cache))
74 state = state.pixelDecorrelate();
77inline PmjImpl PmjImpl::newDomain(
int key)
const
79 return {state.newDomain(key), cache};
82inline PmjImpl PmjImpl::newDomainSplit(
int key,
int size,
int index)
const
84 return {state.newDomainSplit(key, size, index), cache};
87inline PmjImpl PmjImpl::newDomainDistrib(
int key,
int index)
const
89 return {state.newDomainDistrib(key, index), cache};
93void PmjImpl::drawSample(std::uint32_t sample[Size])
const
95 shuffledScrambledLookup<4, Size>(
96 state.sampleId, pcg::output(state.patternId), cache->samples, sample);
100void PmjImpl::drawRnd(std::uint32_t rnd[Size])
const
102 state.drawRnd<Size>(rnd);
#define OQMC_HOST_DEVICE
Definition gpu.h:13
Public sampler API.
Definition sampler.h:111
EncodeKey decodeBits16(std::uint16_t value)
Decode a value back into a key.
Definition encode.h:81
void stochasticPmjInit(int nsamples, std::uint32_t table[][4])
Initialise a table with a progressive mult-jittered (0,2) sequence.
Definition stochastic.h:33
static constexpr auto maxIndexSize
2^16 index upper limit.
Definition state.h:30