hashed-permutation 2.0.0

A fast, instant-access way to permute a range of numbers
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# hashed-permutation

[![Build Status](https://dev.azure.com/afnanenayet/hashed-permutation/_apis/build/status/afnanenayet.hashed-permutation?branchName=master)](https://dev.azure.com/afnanenayet/hashed-permutation/_build/latest?definitionId=7&branchName=master)

## Synopsis

This is an implementation of Andrew Kensler's hashed permutation, which allows
you to take an array of the elements [0 ... n) and shuffle it with no memory
overhead and very little computational overhead. This works by using a clever
hash function to effectively permute all of the elements in the array.

Basically, you get a nearly free method to shuffle a bunch of numbers. This
allows you to sample with no replacement, without needing to save all of the
numbers in the range (0...n).

You can find the paper here: https://graphics.pixar.com/library/MultiJitteredSampling/paper.pdf