Mark Dickinson
e979ec8fbf
Issue #8986 : erfc was raising OverflowError on Linux for arguments in
...
the (approximate) range (-27.3, 30.0), as a result of an escaped errno
value.
2010-06-13 10:50:29 +00:00
Antoine Pitrou
c83ea137d7
Untabify C files. Will watch buildbots.
2010-05-09 14:46:46 +00:00
Mark Dickinson
f132c16199
Make use of PyLong_AsLongAndOverflow in math_ldexp.
2010-01-03 12:03:03 +00:00
Mark Dickinson
d3e323215c
Refactor some longobject internals: PyLong_AsDouble and _PyLong_AsScaledDouble
...
(the latter renamed to _PyLong_Frexp) now use the same core code. The
exponent produced by _PyLong_Frexp now has type Py_ssize_t instead of the
previously used int, and no longer needs scaling by PyLong_SHIFT. This
frees the math module from having to know anything about the PyLong
implementation. This closes issue #5576 .
2010-01-02 14:45:40 +00:00
Mark Dickinson
12748b003c
Issue #7518 : Move substitute definitions of C99 math functions from
...
pymath.c to Modules/_math.c.
2009-12-21 15:22:00 +00:00
Mark Dickinson
5698977186
math.factorial depends on PyLong_AsLong correctly converting floats; rewrite
...
it to do the conversion explicitly instead. See issue #7550 .
2009-12-20 13:58:18 +00:00
Mark Dickinson
5ff37ae14b
Issue #3366 : Add error function and complementary error function to
...
math module.
2009-12-19 11:07:23 +00:00
Mark Dickinson
9cae178f21
Issue #3366 : Add expm1 function to math module. Thanks Eric Smith for
...
testing on Windows.
2009-12-16 20:13:40 +00:00
Mark Dickinson
9be87bc992
Issue #3366 : Add lgamma function to math module.
2009-12-11 17:29:33 +00:00
Georg Brandl
a8f8bed203
Use a single style for all the docstrings in the math module.
2009-10-29 20:54:03 +00:00
Georg Brandl
40777e6606
Use the correct function name in docstring.
2009-10-29 20:38:32 +00:00
Mark Dickinson
b93fff0a57
Issue #3366 : Add gamma function to math module.
...
(lgamma, erf and erfc to follow).
2009-09-28 18:54:55 +00:00
Benjamin Peterson
9de7298102
remove redundant sentence
2008-12-20 22:49:24 +00:00
Benjamin Peterson
fed67fd41e
beef up docstring
2008-12-20 02:57:19 +00:00
Mark Dickinson
4c96fa5525
Issues #3167 , #3682 : tests for math.log and math.log10 were failing on
...
Solaris and OpenBSD. Fix this by handling special values and domain
errors directly in mathmodule.c, passing only positive nonspecial floats
to the system log/log10.
2008-12-11 19:28:08 +00:00
Mark Dickinson
ff3fdce0d2
Replace math.sum with math.fsum in a couple of comments
...
that were missed by r65308
2008-07-30 16:25:16 +00:00
Mark Dickinson
fef6b13c32
Rename math.sum to math.fsum
2008-07-30 16:20:10 +00:00
Mark Dickinson
abe0aee3cf
Fix special-value handling for math.sum.
...
Also minor cleanups to the code: fix tabbing, remove
trailing whitespace, and reformat to fit into 80
columns.
2008-07-30 12:01:41 +00:00
Mark Dickinson
2fcd8c9703
Fix another typo in math_sum comment
2008-06-20 15:26:19 +00:00
Andrew M. Kuchling
5f198bee4e
Fix comment typos
2008-06-20 02:11:42 +00:00
Raymond Hettinger
2281da42b0
Fix double decref.
2008-06-18 00:56:57 +00:00
Mark Dickinson
fb1c4b98e9
Issue 3118: make test_math pass on Ubuntu/ia64. exp(-745.0) was raising
...
OverflowError incorrectly on this platform, presumably as a result of
the libm setting errno = ERANGE for this call.
2008-06-17 21:16:55 +00:00
Raymond Hettinger
d623414141
Unhappy buildbots. Revert 64052. Long doubles have unexpected effects on some builds.
2008-06-09 11:24:47 +00:00
Raymond Hettinger
7b1ed66372
Address double-rounding scenarios by setting all variables to long doubles.
2008-06-09 09:29:17 +00:00
Raymond Hettinger
ecbdd2e9b0
Issue #2138 : Add math.factorial().
2008-06-09 06:54:45 +00:00
Raymond Hettinger
ef712d6fd3
* Mark intermedidate computes values (hi, lo, yr) as volatile.
...
* Expand comments.
* Swap variable names in the sum_exact code so that x and y
are consistently chosen as the larger and smaller magnitude
values respectively.
2008-05-30 18:20:50 +00:00
Raymond Hettinger
2a9179ac73
Fix two typos.
2008-05-29 08:38:23 +00:00
Raymond Hettinger
778d5cc4fb
Tweak the comments and formatting.
2008-05-23 04:32:43 +00:00
Mark Dickinson
99dfe92759
Issue #2819 : Add math.sum, a function that sums a sequence of floats
...
efficiently but with no intermediate loss of precision. Based on
Raymond Hettinger's ASPN recipe. Thanks Jean Brouwers for the patch.
2008-05-23 01:35:30 +00:00
Mark Dickinson
f8476c1573
Issue #2487 . math.ldexp(x, n) raised OverflowError when n was large and
...
negative; fix to return an (appropriately signed) zero instead.
2008-05-09 17:54:23 +00:00
Mark Dickinson
0da94c8a34
Silence 'r may be used uninitialized' compiler warning.
2008-04-21 01:55:50 +00:00
Mark Dickinson
92483cd8da
math.atan2 is misbehaving on Windows; this patch
...
should fix the problem in the same way that
the cmath.phase problems were fixed.
2008-04-20 21:39:04 +00:00
Mark Dickinson
cec3f138d8
Yet more explicit special case handling to make
...
math.pow behave on alpha Tru64. All IEEE 754
special values are now handled directly; only
the finite**finite case is handled by libm.
2008-04-20 04:13:13 +00:00
Mark Dickinson
b2f7090239
FreeBSD doesn't follow C99 for modf(inf); so add explicit
...
special-value handling to math.modf code.
2008-04-20 01:39:24 +00:00
Mark Dickinson
a1293eb65f
Additional special-case handling for math.pow.
...
Windows/VS2008 doesn't like (-1)**(+-inf).
2008-04-19 19:41:52 +00:00
Mark Dickinson
e941d97d12
Additional tests for math.pow, and extra special-case
...
handling code in math.pow, in the hope of making all
tests pass on the alpha Tru64 buildbot.
2008-04-19 18:51:48 +00:00
Christian Heimes
6f34109384
I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
...
The patch also adds acosh, asinh, atanh, log1p and copysign to all platforms. Finally it fixes differences between platforms like different results or exceptions for edge cases. Have fun :)
2008-04-18 23:13:07 +00:00
Raymond Hettinger
fe424f754f
Neaten-up a bit.
2008-02-02 05:24:44 +00:00
Jeffrey Yasskin
ca2b69f765
Move __builtins__.trunc() to math.trunc() per
...
http://mail.python.org/pipermail/python-dev/2008-January/076626.html and issue
1965.
2008-02-01 06:22:46 +00:00
Christian Heimes
543cabc842
setup.py doesn't pick up changes to a header file
2008-01-25 14:54:23 +00:00
Neal Norwitz
5f95a79b2b
Add prototypes to get the mathmodule.c to compile on OSF1 5.1 (Tru64)
...
and eliminate a compiler warning in floatobject.c. There might be
a better way to go about this, but it should be good enough for now.
2008-01-25 08:04:16 +00:00
Jeffrey Yasskin
9871d8fe22
Continue rolling back pep-3141 changes that changed behavior from 2.5. This
...
round included:
* Revert round to its 2.6 behavior (half away from 0).
* Because round, floor, and ceil always return float again, it's no
longer necessary to have them delegate to __xxx___, so I've ripped
that out of their implementations and the Real ABC. This also helps
in implementing types that work in both 2.6 and 3.0: you return int
from the __xxx__ methods, and let it get enabled by the version
upgrade.
* Make pow(-1, .5) raise a ValueError again.
2008-01-05 08:47:13 +00:00
Christian Heimes
66ecda4990
Fixed math.copysign() on Windows
2008-01-04 01:48:50 +00:00
Christian Heimes
eebb79cc69
Added copysign(x, y) function to the math module
2008-01-03 22:32:26 +00:00
Christian Heimes
e2ca4245c9
Added math.isinf() and math.isnan()
2008-01-03 20:23:15 +00:00
Jeffrey Yasskin
2f3c16be73
Backport PEP 3141 from the py3k branch to the trunk. This includes r50877 (just
...
the complex_pow part), r56649, r56652, r56715, r57296, r57302, r57359, r57361,
r57372, r57738, r57739, r58017, r58039, r58040, and r59390, and new
documentation. The only significant difference is that round(x) returns a float
to preserve backward-compatibility. See http://bugs.python.org/issue1689 .
2008-01-03 02:21:52 +00:00
Neal Norwitz
45e230a8e1
Speed up function calls into the math module by using METH_O.
...
There should be no functional changes. However, the error msgs are
slightly different. Also verified that the module dict is not NULL on init.
2006-11-19 21:26:53 +00:00
Georg Brandl
a355c14fa1
Whoops.
2006-05-29 22:00:30 +00:00
Georg Brandl
bf92f46572
Convert more modules to METH_VARARGS.
2006-05-29 21:58:42 +00:00
Neal Norwitz
1ac754fa10
Check return result from Py_InitModule*(). This API can fail.
...
Probably should be backported.
2006-01-19 06:09:39 +00:00