Мне хорошо знакомы все проблемы, связанные с сравнением поплавков. Это и есть причина этого вопроса.
Я ищу для создания быстрой хэш-таблицы для значений, представляющих собой 3D-векторы (3 поплавка - x, y, z). Можно предположить, что длина вектора всегда равна 1,0 (sqrt(x*x+y*y+z*z)
1,0)
По сути, это означает, что я ищу хеш-функцию, которая принимает значения, которые почти равны одному и тому же значению без знака int и соответствующему оператору равенства, который является истинным, если значения хэша равны (не обязательно, только если они равный)
Изменить -
Ложные срабатывания (то есть векторы, которые отличаются друг от друга, но сопоставляются с одним и тем же ведром) являются заданными, поскольку это хэш-таблица.
Ложные негативы (т.е. Векторы, близкие, но отображающие разные ведра) нежелательны, но, похоже, нет способа избежать их. В моем случае они не будут вызывать общий полом, просто дублирование данных, с которым мне придется жить.