Реализация пространственных индексов в Haskell?

Есть ли какие-либо хорошие реализации пространственных индексов в Haskell, такие как R-tree, kd-tree и т.д.

Ответы

Ответ 1

Единственными реализациями, о которых я знаю, являются пакет spacepart, который кажется неполным и оставленным, и пакет KdTree, который, как вы могли догадаться, не имеет амбиций за пределами предоставления типа kd-дерева.

Это то, что было в моем списке TODO некоторое время, так как было несколько случаев, когда я хотел создать структуру данных пространственного индекса, но не хотел, чтобы один был достаточно плохим, чтобы остановить все и написать достойную реализацию на месте.

Ответ 2

The Glome Raytracer использует иерархию ограничивающих интервалов.

Он также хорошо модулируется, поэтому вы, вероятно, захотите начать с GlomeTrace и GlomeVec.

Я тестирую столкновение с помощью точечных/объемных запросов и пересечений лучей. Кажется, он работает очень хорошо.

Ответ 3

есть пакет RTree в Hackage. Он протестирован, но не настолько сложный, как пакет контейнеров.