Pergunta muito interessante!
Estou tentando descobrir isso enquanto digito a resposta :) Primeiro, uma maneira fácil de brincar com isso: http://www.wolframalpha.com/input/?i=plot%28+mod%28+sin%28x*12.9898 +% 2B + y * 78,233% 29 + * + 43758,5453% 2C1% 29x% 3D0..2% 2C + y% 3D0..2% 29
Então, vamos pensar sobre o que estamos tentando fazer aqui: para duas coordenadas de entrada x, y, retornamos um "número aleatório". Agora, este não é um número aleatório. É o mesmo sempre que inserimos o mesmo x, y. É uma função hash!
A primeira coisa que a função faz é ir de 2d para 1d. Isso não é interessante em si, mas os números são escolhidos de forma que não se repitam normalmente. Também temos uma adição de ponto flutuante lá. Haverá mais alguns bits de y ou x, mas os números podem ser escolhidos da maneira certa para que haja uma mistura.
Em seguida, experimentamos uma função sin () de caixa preta. Isso vai depender muito da implementação!
Por último, ele amplifica o erro na implementação de sin () multiplicando e obtendo a fração.
Não acho que seja uma boa função hash no caso geral. O sin () é uma caixa preta, na GPU, numericamente. Deve ser possível construir um muito melhor pegando quase qualquer função hash e convertendo-a. A parte difícil é transformar a operação típica de inteiro usada no hash da CPU em float (metade ou 32 bits) ou operações de ponto fixo, mas deve ser possível.
Novamente, o verdadeiro problema com isso como uma função hash é que sin () é uma caixa preta.