mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
Merged revisions 76861 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r76861 | mark.dickinson | 2009-12-16 20:13:40 +0000 (Wed, 16 Dec 2009) | 3 lines Issue #3366: Add expm1 function to math module. Thanks Eric Smith for testing on Windows. ........
This commit is contained in:
parent
ef1992b9fb
commit
664b511c0a
13 changed files with 162 additions and 10 deletions
|
@ -249,3 +249,73 @@ gam0132 gamma -4503599627370495.5 -> 0.0
|
|||
-- thanks to loss of accuracy in 1-x
|
||||
gam0140 gamma -63.349078729022985 -> 4.1777971677761880e-88
|
||||
gam0141 gamma -127.45117632943295 -> 1.1831110896236810e-214
|
||||
|
||||
-----------------------------------------------------------
|
||||
-- expm1: exp(x) - 1, without precision loss for small x --
|
||||
-----------------------------------------------------------
|
||||
|
||||
-- special values
|
||||
expm10000 expm1 0.0 -> 0.0
|
||||
expm10001 expm1 -0.0 -> -0.0
|
||||
expm10002 expm1 inf -> inf
|
||||
expm10003 expm1 -inf -> -1.0
|
||||
expm10004 expm1 nan -> nan
|
||||
|
||||
-- expm1(x) ~ x for tiny x
|
||||
expm10010 expm1 5e-324 -> 5e-324
|
||||
expm10011 expm1 1e-320 -> 1e-320
|
||||
expm10012 expm1 1e-300 -> 1e-300
|
||||
expm10013 expm1 1e-150 -> 1e-150
|
||||
expm10014 expm1 1e-20 -> 1e-20
|
||||
|
||||
expm10020 expm1 -5e-324 -> -5e-324
|
||||
expm10021 expm1 -1e-320 -> -1e-320
|
||||
expm10022 expm1 -1e-300 -> -1e-300
|
||||
expm10023 expm1 -1e-150 -> -1e-150
|
||||
expm10024 expm1 -1e-20 -> -1e-20
|
||||
|
||||
-- moderate sized values, where direct evaluation runs into trouble
|
||||
expm10100 expm1 1e-10 -> 1.0000000000500000e-10
|
||||
expm10101 expm1 -9.9999999999999995e-08 -> -9.9999995000000163e-8
|
||||
expm10102 expm1 3.0000000000000001e-05 -> 3.0000450004500034e-5
|
||||
expm10103 expm1 -0.0070000000000000001 -> -0.0069755570667648951
|
||||
expm10104 expm1 -0.071499208740094633 -> -0.069002985744820250
|
||||
expm10105 expm1 -0.063296004180116799 -> -0.061334416373633009
|
||||
expm10106 expm1 0.02390954035597756 -> 0.024197665143819942
|
||||
expm10107 expm1 0.085637352649044901 -> 0.089411184580357767
|
||||
expm10108 expm1 0.5966174947411006 -> 0.81596588596501485
|
||||
expm10109 expm1 0.30247206212075139 -> 0.35319987035848677
|
||||
expm10110 expm1 0.74574727375889516 -> 1.1080161116737459
|
||||
expm10111 expm1 0.97767512926555711 -> 1.6582689207372185
|
||||
expm10112 expm1 0.8450154566787712 -> 1.3280137976535897
|
||||
expm10113 expm1 -0.13979260323125264 -> -0.13046144381396060
|
||||
expm10114 expm1 -0.52899322039643271 -> -0.41080213643695923
|
||||
expm10115 expm1 -0.74083261478900631 -> -0.52328317124797097
|
||||
expm10116 expm1 -0.93847766984546055 -> -0.60877704724085946
|
||||
expm10117 expm1 10.0 -> 22025.465794806718
|
||||
expm10118 expm1 27.0 -> 532048240600.79865
|
||||
expm10119 expm1 123 -> 2.6195173187490626e+53
|
||||
expm10120 expm1 -12.0 -> -0.99999385578764666
|
||||
expm10121 expm1 -35.100000000000001 -> -0.99999999999999944
|
||||
|
||||
-- extreme negative values
|
||||
expm10201 expm1 -37.0 -> -0.99999999999999989
|
||||
expm10200 expm1 -38.0 -> -1.0
|
||||
expm10210 expm1 -710.0 -> -1.0
|
||||
-- the formula expm1(x) = 2 * sinh(x/2) * exp(x/2) doesn't work so
|
||||
-- well when exp(x/2) is subnormal or underflows to zero; check we're
|
||||
-- not using it!
|
||||
expm10211 expm1 -1420.0 -> -1.0
|
||||
expm10212 expm1 -1450.0 -> -1.0
|
||||
expm10213 expm1 -1500.0 -> -1.0
|
||||
expm10214 expm1 -1e50 -> -1.0
|
||||
expm10215 expm1 -1.79e308 -> -1.0
|
||||
|
||||
-- extreme positive values
|
||||
expm10300 expm1 300 -> 1.9424263952412558e+130
|
||||
expm10301 expm1 700 -> 1.0142320547350045e+304
|
||||
expm10302 expm1 709.78271289328393 -> 1.7976931346824240e+308
|
||||
expm10303 expm1 709.78271289348402 -> inf overflow
|
||||
expm10304 expm1 1000 -> inf overflow
|
||||
expm10305 expm1 1e50 -> inf overflow
|
||||
expm10306 expm1 1.79e308 -> inf overflow
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue