mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
bpo-44357:Add math.cbrt()
function: Cube Root (GH-26622)
* Add math.cbrt() function: Cube Root Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Mark Dickinson <dickinsm@gmail.com>
This commit is contained in:
parent
90cd433032
commit
ac867f10b4
6 changed files with 36 additions and 0 deletions
|
@ -342,6 +342,13 @@ necessarily has no fractional bits.
|
|||
Power and logarithmic functions
|
||||
-------------------------------
|
||||
|
||||
.. function:: cbrt(x)
|
||||
|
||||
Return the cube root of *x*.
|
||||
|
||||
.. versionadded:: 3.11
|
||||
|
||||
|
||||
.. function:: exp(x)
|
||||
|
||||
Return *e* raised to the power *x*, where *e* = 2.718281... is the base
|
||||
|
|
|
@ -93,6 +93,13 @@ Support :PEP:`515`-style initialization of :class:`~fractions.Fraction` from
|
|||
string. (Contributed by Sergey B Kirpichev in :issue:`44258`.)
|
||||
|
||||
|
||||
math
|
||||
----
|
||||
|
||||
Add :func:`math.cbrt()`: return the cube root of x.
|
||||
(Contributed by Ajith Ramachandran in :issue:`44357`.)
|
||||
|
||||
|
||||
Removed
|
||||
=======
|
||||
* :class:`smtpd.MailmanProxy` is now removed as it is unusable without
|
||||
|
|
|
@ -377,6 +377,22 @@ class MathTests(unittest.TestCase):
|
|||
self.assertTrue(math.isnan(math.atan2(NAN, INF)))
|
||||
self.assertTrue(math.isnan(math.atan2(NAN, NAN)))
|
||||
|
||||
def testCbrt(self):
|
||||
self.assertRaises(TypeError, math.cbrt)
|
||||
self.ftest('cbrt(0)', math.cbrt(0), 0)
|
||||
self.ftest('cbrt(1)', math.cbrt(1), 1)
|
||||
self.ftest('cbrt(8)', math.cbrt(8), 2)
|
||||
self.ftest('cbrt(0.0)', math.cbrt(0.0), 0.0)
|
||||
self.ftest('cbrt(-0.0)', math.cbrt(-0.0), -0.0)
|
||||
self.ftest('cbrt(1.2)', math.cbrt(1.2), 1.062658569182611)
|
||||
self.ftest('cbrt(-2.6)', math.cbrt(-2.6), -1.375068867074141)
|
||||
self.ftest('cbrt(27)', math.cbrt(27), 3)
|
||||
self.ftest('cbrt(-1)', math.cbrt(-1), -1)
|
||||
self.ftest('cbrt(-27)', math.cbrt(-27), -3)
|
||||
self.assertEqual(math.cbrt(INF), INF)
|
||||
self.assertEqual(math.cbrt(NINF), NINF)
|
||||
self.assertTrue(math.isnan(math.cbrt(NAN)))
|
||||
|
||||
def testCeil(self):
|
||||
self.assertRaises(TypeError, math.ceil)
|
||||
self.assertEqual(int, type(math.ceil(0.5)))
|
||||
|
|
|
@ -1415,6 +1415,7 @@ Jérôme Radix
|
|||
Burton Radons
|
||||
Abhilash Raj
|
||||
Shorya Raj
|
||||
Ajith Ramachandran
|
||||
Dhushyanth Ramasamy
|
||||
Ashwin Ramaswami
|
||||
Jeff Ramnani
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Added a function that returns cube root of the given number :func:`math.cbrt`
|
|
@ -1182,6 +1182,9 @@ FUNC2(atan2, m_atan2,
|
|||
FUNC1(atanh, m_atanh, 0,
|
||||
"atanh($module, x, /)\n--\n\n"
|
||||
"Return the inverse hyperbolic tangent of x.")
|
||||
FUNC1(cbrt, cbrt, 0,
|
||||
"cbrt($module, x, /)\n--\n\n"
|
||||
"Return the cube root of x.")
|
||||
|
||||
/*[clinic input]
|
||||
math.ceil
|
||||
|
@ -3550,6 +3553,7 @@ static PyMethodDef math_methods[] = {
|
|||
{"atan", math_atan, METH_O, math_atan_doc},
|
||||
{"atan2", (PyCFunction)(void(*)(void))math_atan2, METH_FASTCALL, math_atan2_doc},
|
||||
{"atanh", math_atanh, METH_O, math_atanh_doc},
|
||||
{"cbrt", math_cbrt, METH_O, math_cbrt_doc},
|
||||
MATH_CEIL_METHODDEF
|
||||
{"copysign", (PyCFunction)(void(*)(void))math_copysign, METH_FASTCALL, math_copysign_doc},
|
||||
{"cos", math_cos, METH_O, math_cos_doc},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue