pgsql: Adjust degree-based trig functions for more portability.
От | Tom Lane |
---|---|
Тема | pgsql: Adjust degree-based trig functions for more portability. |
Дата | |
Msg-id | E1aN11Q-0000UP-5q@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Adjust degree-based trig functions for more portability. The buildfarm isn't very happy with the results of commit e1bd684a34c11139. To try to get the expected exact results everywhere: * Replace M_PI / 180 subexpressions with a precomputed constant, so that the compiler can't decide to rearrange that division with an adjacent operation. Hopefully this will fix failures to get exactly 0.5 from sind(30) and cosd(60). * Add scaling to ensure that tand(45) and cotd(45) give exactly 1; there was nothing particularly guaranteeing that before. * Replace minus zero by zero when tand() or cotd() would output that; many machines did so for tand(180) and cotd(270), but not all. We could alternatively deem both results valid, but that doesn't seem likely to be what users will want. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/73193d82d7c8d849774bf6952dfb4287e213c572 Modified Files -------------- src/backend/utils/adt/float.c | 59 +++++++++++++++++--- .../expected/float8-exp-three-digits-win32.out | 4 +- src/test/regress/expected/float8-small-is-zero.out | 4 +- .../regress/expected/float8-small-is-zero_1.out | 4 +- src/test/regress/expected/float8.out | 4 +- 5 files changed, 60 insertions(+), 15 deletions(-)
В списке pgsql-committers по дате отправления: