LINUX.ORG.RU

История изменений

Исправление cvs-255, (текущая версия) :

Это не УГ, это грамотная функция поиска квадратного корня положительного числа. В качестве аргумента принимает положительное число типа double.

А вот что она сделает при отрицательном аргумента - чистейшее UB. И никакого «более-менее» корректного поведения тут не сделать.

И никаких технических причин сохранять my_sqrt(-16) = -3.859442 в ходе дальнейших улучшений нет.

Например, если я решил, что нет смысла ограничивать 100 шагами цикла, а можно 1000, то получаю my_sqrt(-16) = -15.842310

Или перепишу условие цикла

while (abs(x/res-res) > 0.2 && i < 100)

Но при этом всякие Адобаси Долбаковы оказываются в пролете

Исправление cvs-255, :

Это не УГ, это грамотная функция поиска квадратного корня положительного числа. В качестве аргумента принимает положительное число типа double.

А вот что она сделает при отрицательном аргумента - чистейшее UB. И никакого «более-менее» корректного поведения тут не сделать.

И никаких технических причин сохранять my_sqrt(-16) = -3.859442 в ходе дальнейших улучшений нет.

Например, если я решил, что нет смысла ограничивать 100 шагами цикла, а можно 1000, то получаю my_sqrt(-16) = -15.842310

Но при этом всякие Адобаси Долбаковы оказываются в пролете

Исправление cvs-255, :

Это не УГ, это грамотная функция поиска квадратного корня положительного числа. В качестве аргумента принимает положительное число типа double.

А вот что она сделает при отрицательном аргумента - чистейшее UB. И никакого «более-менее» корректного поведения тут не сделать.

И никаких технических причин сохранять my_sqrt(-16) = -3.859442 в ходе дальнейших улучшений нет.

Исходная версия cvs-255, :

Это не УГ, это грамотная функция поиска квадратного корня положительного числа. В качестве аргумента принимает положительное число типа double.

А вот что она сделает при отрицательном аргумента - чистейшее UB.

И никаких технических причин сохранять my_sqrt(-16) = -3.859442 в ходе дальнейших улучшений нет.