Как правильно рассчитать bigmin и litmax при поиске по диапазону az? - PullRequest
0 голосов
/ 19 января 2020

В этой статье объясняется, как вычислять bigmin и litmax (большой минимум и маленький максимум).

Мне трудно понять формулировку шага 4, чтобы увидеть, как он будет переводиться псевдокод, C или python.

Шаг 4

Горизонтальное деление, которое мы знаем, нам нужно вычислить значение широты, ближайшее к линии деления yn. Возьмем старшие и минимальные биты, начиная с того места, где они впервые отличаются, yn, и назовем его y [1..m]. Мы знаем, что значение широты чуть выше линии деления будет иметь двоичный код y [1..m ] 0111 ... и y [1..m] 1000 ..., что соответствует нашему значению Latitude для LitMax и BigMin.

Поскольку в нашем примере старшим значащим битом был y4, наш Значения LitMax и BigMin Latitude равны 0111 и 1000.

В вертикальном делении мы просто обращаем это к битам x и долготе.

У меня нет проблем с переводом индекса z порядка из координат и наоборот.

Мне просто интересно вычислить bigmin и litmax, поскольку они позволяют увеличить большую скорость. Я искал и не могу найти подробные сведения об этих конкретных операциях с битовой маской (ответ здесь Как использовать порядок Мортона (кривая z порядка) при поиске диапазона? на самом деле не охватывает его, и ни делает связанную статью DynamodB).

...