mirror of
https://github.com/python/cpython.git
synced 2025-10-10 00:43:41 +00:00
bpo-45917: Add math.exp2() method - return 2 raised to the power of x (GH-29829)
Co-authored-by: Mark Dickinson <dickinsm@gmail.com>
This commit is contained in:
parent
c1f93f0d37
commit
6266e4af87
6 changed files with 26 additions and 0 deletions
|
@ -356,6 +356,13 @@ Power and logarithmic functions
|
||||||
or ``pow(math.e, x)``.
|
or ``pow(math.e, x)``.
|
||||||
|
|
||||||
|
|
||||||
|
.. function:: exp2(x)
|
||||||
|
|
||||||
|
Return *2* raised to the power *x*.
|
||||||
|
|
||||||
|
.. versionadded:: 3.11
|
||||||
|
|
||||||
|
|
||||||
.. function:: expm1(x)
|
.. function:: expm1(x)
|
||||||
|
|
||||||
Return *e* raised to the power *x*, minus 1. Here *e* is the base of natural
|
Return *e* raised to the power *x*, minus 1. Here *e* is the base of natural
|
||||||
|
|
|
@ -203,6 +203,8 @@ fractions
|
||||||
|
|
||||||
math
|
math
|
||||||
----
|
----
|
||||||
|
* Add :func:`math.exp2`: return 2 raised to the power of x.
|
||||||
|
(Contributed by Gideon Mitchell in :issue:`45917`.)
|
||||||
|
|
||||||
* Add :func:`math.cbrt`: return the cube root of x.
|
* Add :func:`math.cbrt`: return the cube root of x.
|
||||||
(Contributed by Ajith Ramachandran in :issue:`44357`.)
|
(Contributed by Ajith Ramachandran in :issue:`44357`.)
|
||||||
|
|
|
@ -501,6 +501,17 @@ class MathTests(unittest.TestCase):
|
||||||
self.assertTrue(math.isnan(math.exp(NAN)))
|
self.assertTrue(math.isnan(math.exp(NAN)))
|
||||||
self.assertRaises(OverflowError, math.exp, 1000000)
|
self.assertRaises(OverflowError, math.exp, 1000000)
|
||||||
|
|
||||||
|
def testExp2(self):
|
||||||
|
self.assertRaises(TypeError, math.exp2)
|
||||||
|
self.ftest('exp2(-1)', math.exp2(-1), 0.5)
|
||||||
|
self.ftest('exp2(0)', math.exp2(0), 1)
|
||||||
|
self.ftest('exp2(1)', math.exp2(1), 2)
|
||||||
|
self.ftest('exp2(2.3)', math.exp2(2.3), 4.924577653379665)
|
||||||
|
self.assertEqual(math.exp2(INF), INF)
|
||||||
|
self.assertEqual(math.exp2(NINF), 0.)
|
||||||
|
self.assertTrue(math.isnan(math.exp2(NAN)))
|
||||||
|
self.assertRaises(OverflowError, math.exp2, 1000000)
|
||||||
|
|
||||||
def testFabs(self):
|
def testFabs(self):
|
||||||
self.assertRaises(TypeError, math.fabs)
|
self.assertRaises(TypeError, math.fabs)
|
||||||
self.ftest('fabs(-1)', math.fabs(-1), 1)
|
self.ftest('fabs(-1)', math.fabs(-1), 1)
|
||||||
|
|
|
@ -1191,6 +1191,7 @@ Julien Miotte
|
||||||
Andrii V. Mishkovskyi
|
Andrii V. Mishkovskyi
|
||||||
Dom Mitchell
|
Dom Mitchell
|
||||||
Dustin J. Mitchell
|
Dustin J. Mitchell
|
||||||
|
Gideon Mitchell
|
||||||
Tim Mitchell
|
Tim Mitchell
|
||||||
Zubin Mithra
|
Zubin Mithra
|
||||||
Florian Mladitsch
|
Florian Mladitsch
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Added :func:`math.exp2`:, which returns 2 raised to the power of x.
|
|
@ -1248,6 +1248,9 @@ FUNC1A(erfc, m_erfc,
|
||||||
FUNC1(exp, exp, 1,
|
FUNC1(exp, exp, 1,
|
||||||
"exp($module, x, /)\n--\n\n"
|
"exp($module, x, /)\n--\n\n"
|
||||||
"Return e raised to the power of x.")
|
"Return e raised to the power of x.")
|
||||||
|
FUNC1(exp2, exp2, 1,
|
||||||
|
"exp2($module, x, /)\n--\n\n"
|
||||||
|
"Return 2 raised to the power of x.")
|
||||||
FUNC1(expm1, expm1, 1,
|
FUNC1(expm1, expm1, 1,
|
||||||
"expm1($module, x, /)\n--\n\n"
|
"expm1($module, x, /)\n--\n\n"
|
||||||
"Return exp(x)-1.\n\n"
|
"Return exp(x)-1.\n\n"
|
||||||
|
@ -3564,6 +3567,7 @@ static PyMethodDef math_methods[] = {
|
||||||
{"erf", math_erf, METH_O, math_erf_doc},
|
{"erf", math_erf, METH_O, math_erf_doc},
|
||||||
{"erfc", math_erfc, METH_O, math_erfc_doc},
|
{"erfc", math_erfc, METH_O, math_erfc_doc},
|
||||||
{"exp", math_exp, METH_O, math_exp_doc},
|
{"exp", math_exp, METH_O, math_exp_doc},
|
||||||
|
{"exp2", math_exp2, METH_O, math_exp2_doc},
|
||||||
{"expm1", math_expm1, METH_O, math_expm1_doc},
|
{"expm1", math_expm1, METH_O, math_expm1_doc},
|
||||||
{"fabs", math_fabs, METH_O, math_fabs_doc},
|
{"fabs", math_fabs, METH_O, math_fabs_doc},
|
||||||
MATH_FACTORIAL_METHODDEF
|
MATH_FACTORIAL_METHODDEF
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue