I've implemented several small improvements for floats and
the math
module. You can find a description and the patches in our
bug tracker:
http://bugs.python.o
rg/issue1635
http://bugs.python.o
rg/issue1640
Summary:
* Full and platform independent round trip for +/-inf and
nan. Before
the patch the round trip didn't work on Windows and Windows
returned
different repr() for nan and inf (1.#INF and -1.#IND).
>>> 1e500
inf
>>> -1e500
-inf
>>> 1e500 * 0.
nan
>>> float("nan")
nan
>>> float("inf")
inf
>>> float("-inf")
-inf
* math.isnan() and math.isinf() functions. The Py_IS_NAN
and
Py_IS_INFINITY macros now use isinf and isnan on platforms
that support
the functions. Although they are C99 functions they are also
available
on GNU89 (C89 + GNU extensions) and other platforms. We
already use them
on Windows.
* math.sign() function
>>> math.sign(42)
1
>>> math.sign(-42)
-1
>>> math.sign(0)
0
On platforms with full IEEE 754 semantics and copysign()
support:
>>> math.sign(0.0)
1
>>> math.sign(-0.0)
-1
* Py_MATH_PI and Py_MATH_E macros with long double precision
for future use.
* 1st and 2nd kind Bessel functions (j0, j1. jn, y0, y1,
yn), error
functions (erf, erfc) and gamma function (lgamma with sign).
They are
available in most libm libraries.
Please review the patches and comment on them.
Christian
_______________________________________________
Python-Dev mailing list
Python-Dev python.org
ht
tp://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: http://mail.python.org/mailman/options/p
ython-dev/nessto%40sharedlog.com
|