Distance from point to box

Поиск
Список
Период
Сортировка
От Alexander Korotkov
Тема Distance from point to box
Дата
Msg-id CAPpHfduML3BPFA5wib=gakmGJzzai0FTXLakJHny8prFW+jpoA@mail.gmail.com
обсуждение исходный текст
Ответы Re: Distance from point to box  (Fabien COELHO <coelho@cri.ensmp.fr>)
Список pgsql-hackers
Hackers,

while reading code written by my GSoC student for knn-spgist I faced many questions about calculation distance from point to box.

1) dist_pb calls close_pb which calls on_pb, dist_ps_internal, close_ps and so on. So, it's very complex way to calculate very simple value. I see this way has some mathematical beauty, but is it acceptable in practice?

2) computeDistance in knn-gist uses it's own quite simplified implementation of this calculation. But why has it own implementation instead on simplifying dist_pb?

3) computeDistance implementation looks still very complex for me. Right way (simple and fast) to calculate point to box distance seems for me to be so:

double dx = 0.0, dy = 0.0;

if (point->x < box->low.x)
    dx = box->low.x - point->x;
if (point->x > box->high.x)
    dx = point->x - box->high.x;
if (point->y < box->low.y)
    dy = box->low.y - point->y;
if (point->y > box->high.y)
    dy = point->y - box->high.y;
return HYPOT(dx, dy);

I feel myself quite tangled.
Could anybody clarify it for me? Did I miss something? Thanks.

------
With best regards,
Alexander Korotkov. 

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: Re: Optimization for updating foreign tables in Postgres FDW
Следующее
От: Fabien COELHO
Дата:
Сообщение: Re: Distance from point to box