Re: get rid of Abs()

Поиск
Список
Период
Сортировка
От Zhang Mingli
Тема Re: get rid of Abs()
Дата
Msg-id ea20c748-8d7b-4f43-a46a-0db873cddee1@Spark
обсуждение исходный текст
Ответ на get rid of Abs()  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Список pgsql-hackers
Hi,

On Oct 4, 2022, 15:07 +0800, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, wrote:
I was wondering why we have a definition of Abs() in c.h when there are
more standard functions such as abs() and fabs() in widespread use. I
think this one is left over from pre-ANSI-C days. The attached patches
replace all uses of Abs() with more standard functions.

The first patch installs uses of abs() and fabs(). These are already in
use in the tree and should be straightforward.

The next two patches install uses of llabs() and fabsf(), which are not
in use yet. But they are in C99.

The last patch removes the definition of Abs().


Fun fact: The current definition

#define Abs(x) ((x) >= 0 ? (x) : -(x))

is slightly wrong for floating-point values. Abs(-0.0) returns -0.0,
but fabs(-0.0) returns +0.0.
+1, 

Like patch3, also found some places where could use fabsf instead of fabs if possible, add a patch to replace them.

Regards,
Zhang Mingli
Вложения

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

Предыдущее
От: bt22nakamorit
Дата:
Сообщение: JUMBLE_SIZE macro in two files
Следующее
От: Bharath Rupireddy
Дата:
Сообщение: Re: Add LSN along with offset to error messages reported for WAL file read/write/validate header failures