Mapeando o valor N-dimensional para um ponto na curva de Hilbert

Eu tenho um conjunto enorme de pontos N-dimensionais (dezenas de milhões; N é próximo de 100).

Preciso mapear esses pontos para uma única dimensão, preservando a localidade espacial. Eu quero usarCurva de preenchimento de espaço de Hilbert para fazer isso.

Para cada ponto, quero escolher o ponto mais próximo da curva. O valor Hilbert do ponto (comprimento da curva desde o início da curva até o ponto escolhido) é o valor de dimensão única que eu procuro.

A computação não precisa ser instantânea, mas espero que não demore mais do que algumas horas no hardware moderno e decente do PC doméstico.

Alguma sugestão de implementação? Existem bibliotecas que me ajudariam? (O idioma não importa muito.)

questionAnswers(6)

yourAnswerToTheQuestion