5 inline uint32_t bernstein_init() {
return 5381; }
8 inline uint32_t bernstein_hash(uint32_t h, uint32_t d) {
9 h = (h * 33) ^ ( d & 0xFF);
10 h = (h * 33) ^ ((d >> 8) & 0xFF);
11 h = (h * 33) ^ ((d >> 16) & 0xFF);
12 h = (h * 33) ^ ((d >> 24) & 0xFF);
17 inline uint32_t fnv_init() {
return 0x811C9DC5; }
20 inline uint32_t fnv_hash(uint32_t h, uint32_t d) {
21 h = (h * 16777619) ^ ( d & 0xFF);
22 h = (h * 16777619) ^ ((d >> 8) & 0xFF);
23 h = (h * 16777619) ^ ((d >> 16) & 0xFF);
24 h = (h * 16777619) ^ ((d >> 24) & 0xFF);
29 inline uint32_t sampler_seed(uint32_t pixel, uint32_t iter) {
30 return fnv_hash(fnv_hash(fnv_init(), pixel), iter);