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:
Gideon 2021-11-29 12:55:43 -06:00 committed by GitHub
parent c1f93f0d37
commit 6266e4af87
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 26 additions and 0 deletions

View file

@ -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

View file

@ -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`.)

View file

@ -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)

View file

@ -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

View file

@ -0,0 +1 @@
Added :func:`math.exp2`:, which returns 2 raised to the power of x.

View file

@ -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