Re: get rid of Abs()
Zhang Mingli <zmlpostgres@gmail.com>
From: Zhang Mingli <zmlpostgres@gmail.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>, Peter Eisentraut
<peter.eisentraut@enterprisedb.com>
Date: 2022-10-04T09:04:08Z
Lists: pgsql-hackers
Attachments
- v2-0005-replace-fabs-with-fabsf-if-possible.patch (application/octet-stream) patch v2-0005
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
Commits
-
Remove Abs()
- a699b7a7aa9f 16.0 landed
-
Use C library functions instead of Abs() for int64
- 357cfefb0911 16.0 landed
-
Use fabsf() instead of Abs() or fabs() where appropriate
- e4c61bedcb79 16.0 landed
-
Remove unnecessary uses of Abs()
- f14aad5169ba 16.0 landed