【发布时间】:2018-01-24 22:23:46
【问题描述】:
对于相干噪声的实现(类似于Perlin noise),我正在寻找适合图形的hash function。
我不需要它以任何方式加密,实际上,我什至不需要它是一个超级出色的哈希。
我只想组合两个 16 位数字并输出一个 8 位哈希。尽可能随机是好的,但在 AVR 处理器(8 位,Arduino 使用)上快速也是好的。
目前我正在使用一个实现here:
const uint32_t hash(uint32_t a)
{
a -= (a<<6);
a ^= (a>>17);
a -= (a<<9);
a ^= (a<<4);
a -= (a<<3);
a ^= (a<<10);
a ^= (a>>15);
return a;
}
但考虑到我只截断了 8 位,而且我不需要任何壮观的东西,我可以使用更少的指令来完成一些事情吗?
…我在这次搜索中受到lib8tion 库的启发,该库与FastLED 打包在一起。它具有特定的功能,例如,将两个 uint8_t 数字相乘以在尽可能少的时钟周期内得到一个 uint16_t 数字。
【问题讨论】: