OpenQMC API
Loading...
Searching...
No Matches
permute.h File Reference
#include "gpu.h"
#include "reverse.h"
#include <cstdint>
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  oqmc
 

Functions

constexpr std::uint32_t oqmc::laineKarrasPermutation (std::uint32_t value, std::uint32_t seed)
 Laine and Karras style permutation.
 
constexpr std::uint32_t oqmc::reverseAndShuffle (std::uint32_t value, std::uint32_t seed)
 Reverse input bits and shuffle order.
 
constexpr std::uint32_t oqmc::shuffle (std::uint32_t value, std::uint32_t seed)
 Compute a hash based owen scramble.
 

Detailed Description

An implementation for hash based permutations. A requirement when constructing scrambling or randomisation of progressive sequences. This is a variant of the hash originally published by Samuli Laine and Tero Karras in 'Stratified Sampling for Stochastic Transparency'. But was then later improved upon by Nathan Vegdahl in an article at https://psychopath.io/post/2021_01_30_building_a_better_lk_hash.