Re: exp() versus the POSIX standard

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: exp() versus the POSIX standard
Дата
Msg-id 583847.1591919809@sss.pgh.pa.us
обсуждение исходный текст
Ответ на exp() versus the POSIX standard  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: exp() versus the POSIX standard  (Darafei "Komяpa" Praliaskouski <me@komzpa.net>)
Список pgsql-hackers
I wrote:
> The POSIX standard says this about the exp(3) function:
>     If x is -Inf, +0 shall be returned.
> At least on my Linux box, our version does no such thing:
> regression=# select exp('-inf'::float8);
> ERROR:  value out of range: underflow

Now that I look, power() has similar issues:

regression=# select power('1.1'::float8, '-inf');
ERROR:  value out of range: underflow
regression=# select power('0.1'::float8, 'inf');
ERROR:  value out of range: underflow
regression=# select power('-inf'::float8, '-3');
ERROR:  value out of range: underflow
regression=# select power('-inf'::float8, '-4');
ERROR:  value out of range: underflow

contradicting POSIX which says

For |x| > 1, if y is -Inf, +0 shall be returned.

For |x| < 1, if y is +Inf, +0 shall be returned.

For y an odd integer < 0, if x is -Inf, -0 shall be returned.

For y < 0 and not an odd integer, if x is -Inf, +0 shall be returned.

            regards, tom lane



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: exp() versus the POSIX standard
Следующее
От: Darafei "Komяpa" Praliaskouski
Дата:
Сообщение: Re: exp() versus the POSIX standard