1344 lines
114 KiB
HTML
1344 lines
114 KiB
HTML
<!DOCTYPE html>
|
||
|
||
<html lang="en" data-content_root="../">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<meta property="og:title" content="math — Mathematical functions" />
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:url" content="https://docs.python.org/3/library/math.html" />
|
||
<meta property="og:site_name" content="Python documentation" />
|
||
<meta property="og:description" content="This module provides access to the mathematical functions defined by the C standard. These functions cannot be used with complex numbers; use the functions of the same name from the cmath module if..." />
|
||
<meta property="og:image" content="https://docs.python.org/3/_static/og-image.png" />
|
||
<meta property="og:image:alt" content="Python documentation" />
|
||
<meta name="description" content="This module provides access to the mathematical functions defined by the C standard. These functions cannot be used with complex numbers; use the functions of the same name from the cmath module if..." />
|
||
<meta property="og:image:width" content="200">
|
||
<meta property="og:image:height" content="200">
|
||
<meta name="theme-color" content="#3776ab">
|
||
|
||
<title>math — Mathematical functions — Python 3.13.3 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
||
<link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=23252803" />
|
||
<link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=5349f25f" />
|
||
|
||
<script src="../_static/documentation_options.js?v=5d57ca2d"></script>
|
||
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
|
||
<script src="../_static/sidebar.js"></script>
|
||
|
||
<link rel="search" type="application/opensearchdescription+xml"
|
||
title="Search within Python 3.13.3 documentation"
|
||
href="../_static/opensearch.xml"/>
|
||
<link rel="author" title="About these documents" href="../about.html" />
|
||
<link rel="index" title="Index" href="../genindex.html" />
|
||
<link rel="search" title="Search" href="../search.html" />
|
||
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
||
<link rel="next" title="cmath — Mathematical functions for complex numbers" href="cmath.html" />
|
||
<link rel="prev" title="numbers — Numeric abstract base classes" href="numbers.html" />
|
||
|
||
<link rel="canonical" href="https://docs.python.org/3/library/math.html">
|
||
|
||
|
||
|
||
|
||
|
||
<style>
|
||
@media only screen {
|
||
table.full-width-table {
|
||
width: 100%;
|
||
}
|
||
}
|
||
</style>
|
||
<link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">
|
||
<link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
|
||
<script type="text/javascript" src="../_static/copybutton.js"></script>
|
||
<script type="text/javascript" src="../_static/menu.js"></script>
|
||
<script type="text/javascript" src="../_static/search-focus.js"></script>
|
||
<script type="text/javascript" src="../_static/themetoggle.js"></script>
|
||
<script type="text/javascript" src="../_static/rtd_switcher.js"></script>
|
||
<meta name="readthedocs-addons-api-version" content="1">
|
||
|
||
</head>
|
||
<body>
|
||
<div class="mobile-nav">
|
||
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
|
||
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
|
||
<nav class="nav-content" role="navigation">
|
||
<label for="menuToggler" class="toggler__label">
|
||
<span></span>
|
||
</label>
|
||
<span class="nav-items-wrapper">
|
||
<a href="https://www.python.org/" class="nav-logo">
|
||
<img src="../_static/py.svg" alt="Python logo"/>
|
||
</a>
|
||
<span class="version_switcher_placeholder"></span>
|
||
<form role="search" class="search" action="../search.html" method="get">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
|
||
<path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
|
||
</svg>
|
||
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" />
|
||
<input type="submit" value="Go"/>
|
||
</form>
|
||
</span>
|
||
</nav>
|
||
<div class="menu-wrapper">
|
||
<nav class="menu" role="navigation" aria-label="main navigation">
|
||
<div class="language_switcher_placeholder"></div>
|
||
|
||
<label class="theme-selector-label">
|
||
Theme
|
||
<select class="theme-selector" oninput="activateTheme(this.value)">
|
||
<option value="auto" selected>Auto</option>
|
||
<option value="light">Light</option>
|
||
<option value="dark">Dark</option>
|
||
</select>
|
||
</label>
|
||
<div>
|
||
<h3><a href="../contents.html">Table of Contents</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code> — Mathematical functions</a><ul>
|
||
<li><a class="reference internal" href="#number-theoretic-functions">Number-theoretic functions</a></li>
|
||
<li><a class="reference internal" href="#floating-point-arithmetic">Floating point arithmetic</a></li>
|
||
<li><a class="reference internal" href="#floating-point-manipulation-functions">Floating point manipulation functions</a></li>
|
||
<li><a class="reference internal" href="#power-exponential-and-logarithmic-functions">Power, exponential and logarithmic functions</a></li>
|
||
<li><a class="reference internal" href="#summation-and-product-functions">Summation and product functions</a></li>
|
||
<li><a class="reference internal" href="#angular-conversion">Angular conversion</a></li>
|
||
<li><a class="reference internal" href="#trigonometric-functions">Trigonometric functions</a></li>
|
||
<li><a class="reference internal" href="#hyperbolic-functions">Hyperbolic functions</a></li>
|
||
<li><a class="reference internal" href="#special-functions">Special functions</a></li>
|
||
<li><a class="reference internal" href="#constants">Constants</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
<div>
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="numbers.html"
|
||
title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">numbers</span></code> — Numeric abstract base classes</a></p>
|
||
</div>
|
||
<div>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="cmath.html"
|
||
title="next chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cmath</span></code> — Mathematical functions for complex numbers</a></p>
|
||
</div>
|
||
<div role="note" aria-label="source link">
|
||
<h3>This Page</h3>
|
||
<ul class="this-page-menu">
|
||
<li><a href="../bugs.html">Report a Bug</a></li>
|
||
<li>
|
||
<a href="https://github.com/python/cpython/blob/main/Doc/library/math.rst"
|
||
rel="nofollow">Show Source
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="related" role="navigation" aria-label="Related">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
accesskey="I">index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="cmath.html" title="cmath — Mathematical functions for complex numbers"
|
||
accesskey="N">next</a> |</li>
|
||
<li class="right" >
|
||
<a href="numbers.html" title="numbers — Numeric abstract base classes"
|
||
accesskey="P">previous</a> |</li>
|
||
|
||
<li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"/></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li class="switchers">
|
||
<div class="language_switcher_placeholder"></div>
|
||
<div class="version_switcher_placeholder"></div>
|
||
</li>
|
||
<li>
|
||
|
||
</li>
|
||
<li id="cpython-language-and-version">
|
||
<a href="../index.html">3.13.3 Documentation</a> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="numeric.html" accesskey="U">Numeric and Mathematical Modules</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href=""><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code> — Mathematical functions</a></li>
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" />
|
||
<input type="submit" value="Go" />
|
||
</form>
|
||
</div>
|
||
|
|
||
</li>
|
||
<li class="right">
|
||
<label class="theme-selector-label">
|
||
Theme
|
||
<select class="theme-selector" oninput="activateTheme(this.value)">
|
||
<option value="auto" selected>Auto</option>
|
||
<option value="light">Light</option>
|
||
<option value="dark">Dark</option>
|
||
</select>
|
||
</label> |</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<section id="module-math">
|
||
<span id="math-mathematical-functions"></span><h1><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code> — Mathematical functions<a class="headerlink" href="#module-math" title="Link to this heading">¶</a></h1>
|
||
<hr class="docutils" />
|
||
<p>This module provides access to the mathematical functions defined by the C
|
||
standard.</p>
|
||
<p>These functions cannot be used with complex numbers; use the functions of the
|
||
same name from the <a class="reference internal" href="cmath.html#module-cmath" title="cmath: Mathematical functions for complex numbers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">cmath</span></code></a> module if you require support for complex
|
||
numbers. The distinction between functions which support complex numbers and
|
||
those which don’t is made since most users do not want to learn quite as much
|
||
mathematics as required to understand complex numbers. Receiving an exception
|
||
instead of a complex result allows earlier detection of the unexpected complex
|
||
number used as a parameter, so that the programmer can determine how and why it
|
||
was generated in the first place.</p>
|
||
<p>The following functions are provided by this module. Except when explicitly
|
||
noted otherwise, all return values are floats.</p>
|
||
<table class="docutils align-default">
|
||
<tbody>
|
||
<tr class="row-odd"><td colspan="2"><p><strong>Number-theoretic functions</strong></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.comb" title="math.comb"><code class="xref py py-func docutils literal notranslate"><span class="pre">comb(n,</span> <span class="pre">k)</span></code></a></p></td>
|
||
<td><p>Number of ways to choose <em>k</em> items from <em>n</em> items without repetition and without order</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.factorial" title="math.factorial"><code class="xref py py-func docutils literal notranslate"><span class="pre">factorial(n)</span></code></a></p></td>
|
||
<td><p><em>n</em> factorial</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.gcd" title="math.gcd"><code class="xref py py-func docutils literal notranslate"><span class="pre">gcd(*integers)</span></code></a></p></td>
|
||
<td><p>Greatest common divisor of the integer arguments</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.isqrt" title="math.isqrt"><code class="xref py py-func docutils literal notranslate"><span class="pre">isqrt(n)</span></code></a></p></td>
|
||
<td><p>Integer square root of a nonnegative integer <em>n</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.lcm" title="math.lcm"><code class="xref py py-func docutils literal notranslate"><span class="pre">lcm(*integers)</span></code></a></p></td>
|
||
<td><p>Least common multiple of the integer arguments</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.perm" title="math.perm"><code class="xref py py-func docutils literal notranslate"><span class="pre">perm(n,</span> <span class="pre">k)</span></code></a></p></td>
|
||
<td><p>Number of ways to choose <em>k</em> items from <em>n</em> items without repetition and with order</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2"><p><strong>Floating point arithmetic</strong></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.ceil" title="math.ceil"><code class="xref py py-func docutils literal notranslate"><span class="pre">ceil(x)</span></code></a></p></td>
|
||
<td><p>Ceiling of <em>x</em>, the smallest integer greater than or equal to <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.fabs" title="math.fabs"><code class="xref py py-func docutils literal notranslate"><span class="pre">fabs(x)</span></code></a></p></td>
|
||
<td><p>Absolute value of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.floor" title="math.floor"><code class="xref py py-func docutils literal notranslate"><span class="pre">floor(x)</span></code></a></p></td>
|
||
<td><p>Floor of <em>x</em>, the largest integer less than or equal to <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.fma" title="math.fma"><code class="xref py py-func docutils literal notranslate"><span class="pre">fma(x,</span> <span class="pre">y,</span> <span class="pre">z)</span></code></a></p></td>
|
||
<td><p>Fused multiply-add operation: <code class="docutils literal notranslate"><span class="pre">(x</span> <span class="pre">*</span> <span class="pre">y)</span> <span class="pre">+</span> <span class="pre">z</span></code></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.fmod" title="math.fmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">fmod(x,</span> <span class="pre">y)</span></code></a></p></td>
|
||
<td><p>Remainder of division <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">/</span> <span class="pre">y</span></code></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.modf" title="math.modf"><code class="xref py py-func docutils literal notranslate"><span class="pre">modf(x)</span></code></a></p></td>
|
||
<td><p>Fractional and integer parts of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.remainder" title="math.remainder"><code class="xref py py-func docutils literal notranslate"><span class="pre">remainder(x,</span> <span class="pre">y)</span></code></a></p></td>
|
||
<td><p>Remainder of <em>x</em> with respect to <em>y</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.trunc" title="math.trunc"><code class="xref py py-func docutils literal notranslate"><span class="pre">trunc(x)</span></code></a></p></td>
|
||
<td><p>Integer part of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td colspan="2"><p><strong>Floating point manipulation functions</strong></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.copysign" title="math.copysign"><code class="xref py py-func docutils literal notranslate"><span class="pre">copysign(x,</span> <span class="pre">y)</span></code></a></p></td>
|
||
<td><p>Magnitude (absolute value) of <em>x</em> with the sign of <em>y</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.frexp" title="math.frexp"><code class="xref py py-func docutils literal notranslate"><span class="pre">frexp(x)</span></code></a></p></td>
|
||
<td><p>Mantissa and exponent of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.isclose" title="math.isclose"><code class="xref py py-func docutils literal notranslate"><span class="pre">isclose(a,</span> <span class="pre">b,</span> <span class="pre">rel_tol,</span> <span class="pre">abs_tol)</span></code></a></p></td>
|
||
<td><p>Check if the values <em>a</em> and <em>b</em> are close to each other</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.isfinite" title="math.isfinite"><code class="xref py py-func docutils literal notranslate"><span class="pre">isfinite(x)</span></code></a></p></td>
|
||
<td><p>Check if <em>x</em> is neither an infinity nor a NaN</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.isinf" title="math.isinf"><code class="xref py py-func docutils literal notranslate"><span class="pre">isinf(x)</span></code></a></p></td>
|
||
<td><p>Check if <em>x</em> is a positive or negative infinity</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.isnan" title="math.isnan"><code class="xref py py-func docutils literal notranslate"><span class="pre">isnan(x)</span></code></a></p></td>
|
||
<td><p>Check if <em>x</em> is a NaN (not a number)</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.ldexp" title="math.ldexp"><code class="xref py py-func docutils literal notranslate"><span class="pre">ldexp(x,</span> <span class="pre">i)</span></code></a></p></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">*</span> <span class="pre">(2**i)</span></code>, inverse of function <a class="reference internal" href="#math.frexp" title="math.frexp"><code class="xref py py-func docutils literal notranslate"><span class="pre">frexp()</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.nextafter" title="math.nextafter"><code class="xref py py-func docutils literal notranslate"><span class="pre">nextafter(x,</span> <span class="pre">y,</span> <span class="pre">steps)</span></code></a></p></td>
|
||
<td><p>Floating-point value <em>steps</em> steps after <em>x</em> towards <em>y</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.ulp" title="math.ulp"><code class="xref py py-func docutils literal notranslate"><span class="pre">ulp(x)</span></code></a></p></td>
|
||
<td><p>Value of the least significant bit of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td colspan="2"><p><strong>Power, exponential and logarithmic functions</strong></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.cbrt" title="math.cbrt"><code class="xref py py-func docutils literal notranslate"><span class="pre">cbrt(x)</span></code></a></p></td>
|
||
<td><p>Cube root of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.exp" title="math.exp"><code class="xref py py-func docutils literal notranslate"><span class="pre">exp(x)</span></code></a></p></td>
|
||
<td><p><em>e</em> raised to the power <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.exp2" title="math.exp2"><code class="xref py py-func docutils literal notranslate"><span class="pre">exp2(x)</span></code></a></p></td>
|
||
<td><p><em>2</em> raised to the power <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.expm1" title="math.expm1"><code class="xref py py-func docutils literal notranslate"><span class="pre">expm1(x)</span></code></a></p></td>
|
||
<td><p><em>e</em> raised to the power <em>x</em>, minus 1</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.log" title="math.log"><code class="xref py py-func docutils literal notranslate"><span class="pre">log(x,</span> <span class="pre">base)</span></code></a></p></td>
|
||
<td><p>Logarithm of <em>x</em> to the given base (<em>e</em> by default)</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.log1p" title="math.log1p"><code class="xref py py-func docutils literal notranslate"><span class="pre">log1p(x)</span></code></a></p></td>
|
||
<td><p>Natural logarithm of <em>1+x</em> (base <em>e</em>)</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.log2" title="math.log2"><code class="xref py py-func docutils literal notranslate"><span class="pre">log2(x)</span></code></a></p></td>
|
||
<td><p>Base-2 logarithm of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.log10" title="math.log10"><code class="xref py py-func docutils literal notranslate"><span class="pre">log10(x)</span></code></a></p></td>
|
||
<td><p>Base-10 logarithm of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.pow" title="math.pow"><code class="xref py py-func docutils literal notranslate"><span class="pre">pow(x,</span> <span class="pre">y)</span></code></a></p></td>
|
||
<td><p><em>x</em> raised to the power <em>y</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.sqrt" title="math.sqrt"><code class="xref py py-func docutils literal notranslate"><span class="pre">sqrt(x)</span></code></a></p></td>
|
||
<td><p>Square root of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2"><p><strong>Summation and product functions</strong></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.dist" title="math.dist"><code class="xref py py-func docutils literal notranslate"><span class="pre">dist(p,</span> <span class="pre">q)</span></code></a></p></td>
|
||
<td><p>Euclidean distance between two points <em>p</em> and <em>q</em> given as an iterable of coordinates</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.fsum" title="math.fsum"><code class="xref py py-func docutils literal notranslate"><span class="pre">fsum(iterable)</span></code></a></p></td>
|
||
<td><p>Sum of values in the input <em>iterable</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.hypot" title="math.hypot"><code class="xref py py-func docutils literal notranslate"><span class="pre">hypot(*coordinates)</span></code></a></p></td>
|
||
<td><p>Euclidean norm of an iterable of coordinates</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.prod" title="math.prod"><code class="xref py py-func docutils literal notranslate"><span class="pre">prod(iterable,</span> <span class="pre">start)</span></code></a></p></td>
|
||
<td><p>Product of elements in the input <em>iterable</em> with a <em>start</em> value</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.sumprod" title="math.sumprod"><code class="xref py py-func docutils literal notranslate"><span class="pre">sumprod(p,</span> <span class="pre">q)</span></code></a></p></td>
|
||
<td><p>Sum of products from two iterables <em>p</em> and <em>q</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2"><p><strong>Angular conversion</strong></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.degrees" title="math.degrees"><code class="xref py py-func docutils literal notranslate"><span class="pre">degrees(x)</span></code></a></p></td>
|
||
<td><p>Convert angle <em>x</em> from radians to degrees</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.radians" title="math.radians"><code class="xref py py-func docutils literal notranslate"><span class="pre">radians(x)</span></code></a></p></td>
|
||
<td><p>Convert angle <em>x</em> from degrees to radians</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td colspan="2"><p><strong>Trigonometric functions</strong></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.acos" title="math.acos"><code class="xref py py-func docutils literal notranslate"><span class="pre">acos(x)</span></code></a></p></td>
|
||
<td><p>Arc cosine of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.asin" title="math.asin"><code class="xref py py-func docutils literal notranslate"><span class="pre">asin(x)</span></code></a></p></td>
|
||
<td><p>Arc sine of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.atan" title="math.atan"><code class="xref py py-func docutils literal notranslate"><span class="pre">atan(x)</span></code></a></p></td>
|
||
<td><p>Arc tangent of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.atan2" title="math.atan2"><code class="xref py py-func docutils literal notranslate"><span class="pre">atan2(y,</span> <span class="pre">x)</span></code></a></p></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">atan(y</span> <span class="pre">/</span> <span class="pre">x)</span></code></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.cos" title="math.cos"><code class="xref py py-func docutils literal notranslate"><span class="pre">cos(x)</span></code></a></p></td>
|
||
<td><p>Cosine of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.sin" title="math.sin"><code class="xref py py-func docutils literal notranslate"><span class="pre">sin(x)</span></code></a></p></td>
|
||
<td><p>Sine of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.tan" title="math.tan"><code class="xref py py-func docutils literal notranslate"><span class="pre">tan(x)</span></code></a></p></td>
|
||
<td><p>Tangent of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td colspan="2"><p><strong>Hyperbolic functions</strong></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.acosh" title="math.acosh"><code class="xref py py-func docutils literal notranslate"><span class="pre">acosh(x)</span></code></a></p></td>
|
||
<td><p>Inverse hyperbolic cosine of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.asinh" title="math.asinh"><code class="xref py py-func docutils literal notranslate"><span class="pre">asinh(x)</span></code></a></p></td>
|
||
<td><p>Inverse hyperbolic sine of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.atanh" title="math.atanh"><code class="xref py py-func docutils literal notranslate"><span class="pre">atanh(x)</span></code></a></p></td>
|
||
<td><p>Inverse hyperbolic tangent of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.cosh" title="math.cosh"><code class="xref py py-func docutils literal notranslate"><span class="pre">cosh(x)</span></code></a></p></td>
|
||
<td><p>Hyperbolic cosine of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.sinh" title="math.sinh"><code class="xref py py-func docutils literal notranslate"><span class="pre">sinh(x)</span></code></a></p></td>
|
||
<td><p>Hyperbolic sine of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.tanh" title="math.tanh"><code class="xref py py-func docutils literal notranslate"><span class="pre">tanh(x)</span></code></a></p></td>
|
||
<td><p>Hyperbolic tangent of <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2"><p><strong>Special functions</strong></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.erf" title="math.erf"><code class="xref py py-func docutils literal notranslate"><span class="pre">erf(x)</span></code></a></p></td>
|
||
<td><p><a class="reference external" href="https://en.wikipedia.org/wiki/Error_function">Error function</a> at <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.erfc" title="math.erfc"><code class="xref py py-func docutils literal notranslate"><span class="pre">erfc(x)</span></code></a></p></td>
|
||
<td><p><a class="reference external" href="https://en.wikipedia.org/wiki/Error_function">Complementary error function</a> at <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.gamma" title="math.gamma"><code class="xref py py-func docutils literal notranslate"><span class="pre">gamma(x)</span></code></a></p></td>
|
||
<td><p><a class="reference external" href="https://en.wikipedia.org/wiki/Gamma_function">Gamma function</a> at <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.lgamma" title="math.lgamma"><code class="xref py py-func docutils literal notranslate"><span class="pre">lgamma(x)</span></code></a></p></td>
|
||
<td><p>Natural logarithm of the absolute value of the <a class="reference external" href="https://en.wikipedia.org/wiki/Gamma_function">Gamma function</a> at <em>x</em></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td colspan="2"><p><strong>Constants</strong></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.pi" title="math.pi"><code class="xref py py-data docutils literal notranslate"><span class="pre">pi</span></code></a></p></td>
|
||
<td><p><em>π</em> = 3.141592…</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.e" title="math.e"><code class="xref py py-data docutils literal notranslate"><span class="pre">e</span></code></a></p></td>
|
||
<td><p><em>e</em> = 2.718281…</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.tau" title="math.tau"><code class="xref py py-data docutils literal notranslate"><span class="pre">tau</span></code></a></p></td>
|
||
<td><p><em>τ</em> = 2<em>π</em> = 6.283185…</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#math.inf" title="math.inf"><code class="xref py py-data docutils literal notranslate"><span class="pre">inf</span></code></a></p></td>
|
||
<td><p>Positive infinity</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#math.nan" title="math.nan"><code class="xref py py-data docutils literal notranslate"><span class="pre">nan</span></code></a></p></td>
|
||
<td><p>“Not a number” (NaN)</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<section id="number-theoretic-functions">
|
||
<h2>Number-theoretic functions<a class="headerlink" href="#number-theoretic-functions" title="Link to this heading">¶</a></h2>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.comb">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">comb</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">n</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">k</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.comb" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the number of ways to choose <em>k</em> items from <em>n</em> items without repetition
|
||
and without order.</p>
|
||
<p>Evaluates to <code class="docutils literal notranslate"><span class="pre">n!</span> <span class="pre">/</span> <span class="pre">(k!</span> <span class="pre">*</span> <span class="pre">(n</span> <span class="pre">-</span> <span class="pre">k)!)</span></code> when <code class="docutils literal notranslate"><span class="pre">k</span> <span class="pre"><=</span> <span class="pre">n</span></code> and evaluates
|
||
to zero when <code class="docutils literal notranslate"><span class="pre">k</span> <span class="pre">></span> <span class="pre">n</span></code>.</p>
|
||
<p>Also called the binomial coefficient because it is equivalent
|
||
to the coefficient of k-th term in polynomial expansion of
|
||
<code class="docutils literal notranslate"><span class="pre">(1</span> <span class="pre">+</span> <span class="pre">x)ⁿ</span></code>.</p>
|
||
<p>Raises <a class="reference internal" href="exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> if either of the arguments are not integers.
|
||
Raises <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> if either of the arguments are negative.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.factorial">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">factorial</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">n</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.factorial" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <em>n</em> factorial as an integer. Raises <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> if <em>n</em> is not integral or
|
||
is negative.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.10: </span>Floats with integral values (like <code class="docutils literal notranslate"><span class="pre">5.0</span></code>) are no longer accepted.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.gcd">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">gcd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">integers</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.gcd" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the greatest common divisor of the specified integer arguments.
|
||
If any of the arguments is nonzero, then the returned value is the largest
|
||
positive integer that is a divisor of all arguments. If all arguments
|
||
are zero, then the returned value is <code class="docutils literal notranslate"><span class="pre">0</span></code>. <code class="docutils literal notranslate"><span class="pre">gcd()</span></code> without arguments
|
||
returns <code class="docutils literal notranslate"><span class="pre">0</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.5.</span></p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.9: </span>Added support for an arbitrary number of arguments. Formerly, only two
|
||
arguments were supported.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.isqrt">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">isqrt</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">n</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.isqrt" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the integer square root of the nonnegative integer <em>n</em>. This is the
|
||
floor of the exact square root of <em>n</em>, or equivalently the greatest integer
|
||
<em>a</em> such that <em>a</em>² ≤ <em>n</em>.</p>
|
||
<p>For some applications, it may be more convenient to have the least integer
|
||
<em>a</em> such that <em>n</em> ≤ <em>a</em>², or in other words the ceiling of
|
||
the exact square root of <em>n</em>. For positive <em>n</em>, this can be computed using
|
||
<code class="docutils literal notranslate"><span class="pre">a</span> <span class="pre">=</span> <span class="pre">1</span> <span class="pre">+</span> <span class="pre">isqrt(n</span> <span class="pre">-</span> <span class="pre">1)</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.lcm">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">lcm</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">integers</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.lcm" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the least common multiple of the specified integer arguments.
|
||
If all arguments are nonzero, then the returned value is the smallest
|
||
positive integer that is a multiple of all arguments. If any of the arguments
|
||
is zero, then the returned value is <code class="docutils literal notranslate"><span class="pre">0</span></code>. <code class="docutils literal notranslate"><span class="pre">lcm()</span></code> without arguments
|
||
returns <code class="docutils literal notranslate"><span class="pre">1</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.perm">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">perm</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">n</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">k</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.perm" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the number of ways to choose <em>k</em> items from <em>n</em> items
|
||
without repetition and with order.</p>
|
||
<p>Evaluates to <code class="docutils literal notranslate"><span class="pre">n!</span> <span class="pre">/</span> <span class="pre">(n</span> <span class="pre">-</span> <span class="pre">k)!</span></code> when <code class="docutils literal notranslate"><span class="pre">k</span> <span class="pre"><=</span> <span class="pre">n</span></code> and evaluates
|
||
to zero when <code class="docutils literal notranslate"><span class="pre">k</span> <span class="pre">></span> <span class="pre">n</span></code>.</p>
|
||
<p>If <em>k</em> is not specified or is <code class="docutils literal notranslate"><span class="pre">None</span></code>, then <em>k</em> defaults to <em>n</em>
|
||
and the function returns <code class="docutils literal notranslate"><span class="pre">n!</span></code>.</p>
|
||
<p>Raises <a class="reference internal" href="exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> if either of the arguments are not integers.
|
||
Raises <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> if either of the arguments are negative.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="floating-point-arithmetic">
|
||
<h2>Floating point arithmetic<a class="headerlink" href="#floating-point-arithmetic" title="Link to this heading">¶</a></h2>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.ceil">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">ceil</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.ceil" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the ceiling of <em>x</em>, the smallest integer greater than or equal to <em>x</em>.
|
||
If <em>x</em> is not a float, delegates to <a class="reference internal" href="../reference/datamodel.html#object.__ceil__" title="object.__ceil__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">x.__ceil__</span></code></a>,
|
||
which should return an <a class="reference internal" href="numbers.html#numbers.Integral" title="numbers.Integral"><code class="xref py py-class docutils literal notranslate"><span class="pre">Integral</span></code></a> value.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.fabs">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">fabs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.fabs" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the absolute value of <em>x</em>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.floor">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">floor</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.floor" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the floor of <em>x</em>, the largest integer less than or equal to <em>x</em>. If
|
||
<em>x</em> is not a float, delegates to <a class="reference internal" href="../reference/datamodel.html#object.__floor__" title="object.__floor__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">x.__floor__</span></code></a>, which
|
||
should return an <a class="reference internal" href="numbers.html#numbers.Integral" title="numbers.Integral"><code class="xref py py-class docutils literal notranslate"><span class="pre">Integral</span></code></a> value.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.fma">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">fma</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">z</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.fma" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Fused multiply-add operation. Return <code class="docutils literal notranslate"><span class="pre">(x</span> <span class="pre">*</span> <span class="pre">y)</span> <span class="pre">+</span> <span class="pre">z</span></code>, computed as though with
|
||
infinite precision and range followed by a single round to the <code class="docutils literal notranslate"><span class="pre">float</span></code>
|
||
format. This operation often provides better accuracy than the direct
|
||
expression <code class="docutils literal notranslate"><span class="pre">(x</span> <span class="pre">*</span> <span class="pre">y)</span> <span class="pre">+</span> <span class="pre">z</span></code>.</p>
|
||
<p>This function follows the specification of the fusedMultiplyAdd operation
|
||
described in the IEEE 754 standard. The standard leaves one case
|
||
implementation-defined, namely the result of <code class="docutils literal notranslate"><span class="pre">fma(0,</span> <span class="pre">inf,</span> <span class="pre">nan)</span></code>
|
||
and <code class="docutils literal notranslate"><span class="pre">fma(inf,</span> <span class="pre">0,</span> <span class="pre">nan)</span></code>. In these cases, <code class="docutils literal notranslate"><span class="pre">math.fma</span></code> returns a NaN,
|
||
and does not raise any exception.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.13.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.fmod">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">fmod</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.fmod" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the floating-point remainder of <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">/</span> <span class="pre">y</span></code>,
|
||
as defined by the platform C library function <code class="docutils literal notranslate"><span class="pre">fmod(x,</span> <span class="pre">y)</span></code>. Note that the
|
||
Python expression <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">%</span> <span class="pre">y</span></code> may not return the same result. The intent of the C
|
||
standard is that <code class="docutils literal notranslate"><span class="pre">fmod(x,</span> <span class="pre">y)</span></code> be exactly (mathematically; to infinite
|
||
precision) equal to <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">-</span> <span class="pre">n*y</span></code> for some integer <em>n</em> such that the result has
|
||
the same sign as <em>x</em> and magnitude less than <code class="docutils literal notranslate"><span class="pre">abs(y)</span></code>. Python’s <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">%</span> <span class="pre">y</span></code>
|
||
returns a result with the sign of <em>y</em> instead, and may not be exactly computable
|
||
for float arguments. For example, <code class="docutils literal notranslate"><span class="pre">fmod(-1e-100,</span> <span class="pre">1e100)</span></code> is <code class="docutils literal notranslate"><span class="pre">-1e-100</span></code>, but
|
||
the result of Python’s <code class="docutils literal notranslate"><span class="pre">-1e-100</span> <span class="pre">%</span> <span class="pre">1e100</span></code> is <code class="docutils literal notranslate"><span class="pre">1e100-1e-100</span></code>, which cannot be
|
||
represented exactly as a float, and rounds to the surprising <code class="docutils literal notranslate"><span class="pre">1e100</span></code>. For
|
||
this reason, function <a class="reference internal" href="#math.fmod" title="math.fmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">fmod()</span></code></a> is generally preferred when working with
|
||
floats, while Python’s <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">%</span> <span class="pre">y</span></code> is preferred when working with integers.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.modf">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">modf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.modf" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the fractional and integer parts of <em>x</em>. Both results carry the sign
|
||
of <em>x</em> and are floats.</p>
|
||
<p>Note that <a class="reference internal" href="#math.modf" title="math.modf"><code class="xref py py-func docutils literal notranslate"><span class="pre">modf()</span></code></a> has a different call/return pattern
|
||
than its C equivalents: it takes a single argument and return a pair of
|
||
values, rather than returning its second return value through an ‘output
|
||
parameter’ (there is no such thing in Python).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.remainder">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">remainder</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.remainder" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the IEEE 754-style remainder of <em>x</em> with respect to <em>y</em>. For
|
||
finite <em>x</em> and finite nonzero <em>y</em>, this is the difference <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">-</span> <span class="pre">n*y</span></code>,
|
||
where <code class="docutils literal notranslate"><span class="pre">n</span></code> is the closest integer to the exact value of the quotient <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">/</span>
|
||
<span class="pre">y</span></code>. If <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">/</span> <span class="pre">y</span></code> is exactly halfway between two consecutive integers, the
|
||
nearest <em>even</em> integer is used for <code class="docutils literal notranslate"><span class="pre">n</span></code>. The remainder <code class="docutils literal notranslate"><span class="pre">r</span> <span class="pre">=</span> <span class="pre">remainder(x,</span>
|
||
<span class="pre">y)</span></code> thus always satisfies <code class="docutils literal notranslate"><span class="pre">abs(r)</span> <span class="pre"><=</span> <span class="pre">0.5</span> <span class="pre">*</span> <span class="pre">abs(y)</span></code>.</p>
|
||
<p>Special cases follow IEEE 754: in particular, <code class="docutils literal notranslate"><span class="pre">remainder(x,</span> <span class="pre">math.inf)</span></code> is
|
||
<em>x</em> for any finite <em>x</em>, and <code class="docutils literal notranslate"><span class="pre">remainder(x,</span> <span class="pre">0)</span></code> and
|
||
<code class="docutils literal notranslate"><span class="pre">remainder(math.inf,</span> <span class="pre">x)</span></code> raise <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> for any non-NaN <em>x</em>.
|
||
If the result of the remainder operation is zero, that zero will have
|
||
the same sign as <em>x</em>.</p>
|
||
<p>On platforms using IEEE 754 binary floating point, the result of this
|
||
operation is always exactly representable: no rounding error is introduced.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.7.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.trunc">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">trunc</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.trunc" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <em>x</em> with the fractional part
|
||
removed, leaving the integer part. This rounds toward 0: <code class="docutils literal notranslate"><span class="pre">trunc()</span></code> is
|
||
equivalent to <a class="reference internal" href="#math.floor" title="math.floor"><code class="xref py py-func docutils literal notranslate"><span class="pre">floor()</span></code></a> for positive <em>x</em>, and equivalent to <a class="reference internal" href="#math.ceil" title="math.ceil"><code class="xref py py-func docutils literal notranslate"><span class="pre">ceil()</span></code></a>
|
||
for negative <em>x</em>. If <em>x</em> is not a float, delegates to <a class="reference internal" href="../reference/datamodel.html#object.__trunc__" title="object.__trunc__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">x.__trunc__</span></code></a>, which should return an <a class="reference internal" href="numbers.html#numbers.Integral" title="numbers.Integral"><code class="xref py py-class docutils literal notranslate"><span class="pre">Integral</span></code></a> value.</p>
|
||
</dd></dl>
|
||
|
||
<p>For the <a class="reference internal" href="#math.ceil" title="math.ceil"><code class="xref py py-func docutils literal notranslate"><span class="pre">ceil()</span></code></a>, <a class="reference internal" href="#math.floor" title="math.floor"><code class="xref py py-func docutils literal notranslate"><span class="pre">floor()</span></code></a>, and <a class="reference internal" href="#math.modf" title="math.modf"><code class="xref py py-func docutils literal notranslate"><span class="pre">modf()</span></code></a> functions, note that <em>all</em>
|
||
floating-point numbers of sufficiently large magnitude are exact integers.
|
||
Python floats typically carry no more than 53 bits of precision (the same as the
|
||
platform C double type), in which case any float <em>x</em> with <code class="docutils literal notranslate"><span class="pre">abs(x)</span> <span class="pre">>=</span> <span class="pre">2**52</span></code>
|
||
necessarily has no fractional bits.</p>
|
||
</section>
|
||
<section id="floating-point-manipulation-functions">
|
||
<h2>Floating point manipulation functions<a class="headerlink" href="#floating-point-manipulation-functions" title="Link to this heading">¶</a></h2>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.copysign">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">copysign</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.copysign" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return a float with the magnitude (absolute value) of <em>x</em> but the sign of
|
||
<em>y</em>. On platforms that support signed zeros, <code class="docutils literal notranslate"><span class="pre">copysign(1.0,</span> <span class="pre">-0.0)</span></code>
|
||
returns <em>-1.0</em>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.frexp">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">frexp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.frexp" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the mantissa and exponent of <em>x</em> as the pair <code class="docutils literal notranslate"><span class="pre">(m,</span> <span class="pre">e)</span></code>. <em>m</em> is a float
|
||
and <em>e</em> is an integer such that <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">==</span> <span class="pre">m</span> <span class="pre">*</span> <span class="pre">2**e</span></code> exactly. If <em>x</em> is zero,
|
||
returns <code class="docutils literal notranslate"><span class="pre">(0.0,</span> <span class="pre">0)</span></code>, otherwise <code class="docutils literal notranslate"><span class="pre">0.5</span> <span class="pre"><=</span> <span class="pre">abs(m)</span> <span class="pre"><</span> <span class="pre">1</span></code>. This is used to “pick
|
||
apart” the internal representation of a float in a portable way.</p>
|
||
<p>Note that <a class="reference internal" href="#math.frexp" title="math.frexp"><code class="xref py py-func docutils literal notranslate"><span class="pre">frexp()</span></code></a> has a different call/return pattern
|
||
than its C equivalents: it takes a single argument and return a pair of
|
||
values, rather than returning its second return value through an ‘output
|
||
parameter’ (there is no such thing in Python).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.isclose">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">isclose</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">a</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">b</span></span></em>, <em class="sig-param"><span class="keyword-only-separator o"><abbr title="Keyword-only parameters separator (PEP 3102)"><span class="pre">*</span></abbr></span></em>, <em class="sig-param"><span class="n"><span class="pre">rel_tol</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1e-09</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">abs_tol</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.isclose" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the values <em>a</em> and <em>b</em> are close to each other and
|
||
<code class="docutils literal notranslate"><span class="pre">False</span></code> otherwise.</p>
|
||
<p>Whether or not two values are considered close is determined according to
|
||
given absolute and relative tolerances. If no errors occur, the result will
|
||
be: <code class="docutils literal notranslate"><span class="pre">abs(a-b)</span> <span class="pre"><=</span> <span class="pre">max(rel_tol</span> <span class="pre">*</span> <span class="pre">max(abs(a),</span> <span class="pre">abs(b)),</span> <span class="pre">abs_tol)</span></code>.</p>
|
||
<p><em>rel_tol</em> is the relative tolerance – it is the maximum allowed difference
|
||
between <em>a</em> and <em>b</em>, relative to the larger absolute value of <em>a</em> or <em>b</em>.
|
||
For example, to set a tolerance of 5%, pass <code class="docutils literal notranslate"><span class="pre">rel_tol=0.05</span></code>. The default
|
||
tolerance is <code class="docutils literal notranslate"><span class="pre">1e-09</span></code>, which assures that the two values are the same
|
||
within about 9 decimal digits. <em>rel_tol</em> must be nonnegative and less
|
||
than <code class="docutils literal notranslate"><span class="pre">1.0</span></code>.</p>
|
||
<p><em>abs_tol</em> is the absolute tolerance; it defaults to <code class="docutils literal notranslate"><span class="pre">0.0</span></code> and it must be
|
||
nonnegative. When comparing <code class="docutils literal notranslate"><span class="pre">x</span></code> to <code class="docutils literal notranslate"><span class="pre">0.0</span></code>, <code class="docutils literal notranslate"><span class="pre">isclose(x,</span> <span class="pre">0)</span></code> is computed
|
||
as <code class="docutils literal notranslate"><span class="pre">abs(x)</span> <span class="pre"><=</span> <span class="pre">rel_tol</span>  <span class="pre">*</span> <span class="pre">abs(x)</span></code>, which is <code class="docutils literal notranslate"><span class="pre">False</span></code> for any nonzero <code class="docutils literal notranslate"><span class="pre">x</span></code> and
|
||
<em>rel_tol</em> less than <code class="docutils literal notranslate"><span class="pre">1.0</span></code>. So add an appropriate positive <em>abs_tol</em> argument
|
||
to the call.</p>
|
||
<p>The IEEE 754 special values of <code class="docutils literal notranslate"><span class="pre">NaN</span></code>, <code class="docutils literal notranslate"><span class="pre">inf</span></code>, and <code class="docutils literal notranslate"><span class="pre">-inf</span></code> will be
|
||
handled according to IEEE rules. Specifically, <code class="docutils literal notranslate"><span class="pre">NaN</span></code> is not considered
|
||
close to any other value, including <code class="docutils literal notranslate"><span class="pre">NaN</span></code>. <code class="docutils literal notranslate"><span class="pre">inf</span></code> and <code class="docutils literal notranslate"><span class="pre">-inf</span></code> are only
|
||
considered close to themselves.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.5.</span></p>
|
||
</div>
|
||
<div class="admonition seealso">
|
||
<p class="admonition-title">See also</p>
|
||
<p><span class="target" id="index-0"></span><a class="pep reference external" href="https://peps.python.org/pep-0485/"><strong>PEP 485</strong></a> – A function for testing approximate equality</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.isfinite">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">isfinite</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.isfinite" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if <em>x</em> is neither an infinity nor a NaN, and
|
||
<code class="docutils literal notranslate"><span class="pre">False</span></code> otherwise. (Note that <code class="docutils literal notranslate"><span class="pre">0.0</span></code> <em>is</em> considered finite.)</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.isinf">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">isinf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.isinf" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if <em>x</em> is a positive or negative infinity, and
|
||
<code class="docutils literal notranslate"><span class="pre">False</span></code> otherwise.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.isnan">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">isnan</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.isnan" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if <em>x</em> is a NaN (not a number), and <code class="docutils literal notranslate"><span class="pre">False</span></code> otherwise.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.ldexp">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">ldexp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">i</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.ldexp" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">*</span> <span class="pre">(2**i)</span></code>. This is essentially the inverse of function
|
||
<a class="reference internal" href="#math.frexp" title="math.frexp"><code class="xref py py-func docutils literal notranslate"><span class="pre">frexp()</span></code></a>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.nextafter">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">nextafter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">steps</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.nextafter" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the floating-point value <em>steps</em> steps after <em>x</em> towards <em>y</em>.</p>
|
||
<p>If <em>x</em> is equal to <em>y</em>, return <em>y</em>, unless <em>steps</em> is zero.</p>
|
||
<p>Examples:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">math.nextafter(x,</span> <span class="pre">math.inf)</span></code> goes up: towards positive infinity.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">math.nextafter(x,</span> <span class="pre">-math.inf)</span></code> goes down: towards minus infinity.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">math.nextafter(x,</span> <span class="pre">0.0)</span></code> goes towards zero.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">math.nextafter(x,</span> <span class="pre">math.copysign(math.inf,</span> <span class="pre">x))</span></code> goes away from zero.</p></li>
|
||
</ul>
|
||
<p>See also <a class="reference internal" href="#math.ulp" title="math.ulp"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.ulp()</span></code></a>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.9.</span></p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.12: </span>Added the <em>steps</em> argument.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.ulp">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">ulp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.ulp" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the value of the least significant bit of the float <em>x</em>:</p>
|
||
<ul class="simple">
|
||
<li><p>If <em>x</em> is a NaN (not a number), return <em>x</em>.</p></li>
|
||
<li><p>If <em>x</em> is negative, return <code class="docutils literal notranslate"><span class="pre">ulp(-x)</span></code>.</p></li>
|
||
<li><p>If <em>x</em> is a positive infinity, return <em>x</em>.</p></li>
|
||
<li><p>If <em>x</em> is equal to zero, return the smallest positive
|
||
<em>denormalized</em> representable float (smaller than the minimum positive
|
||
<em>normalized</em> float, <a class="reference internal" href="sys.html#sys.float_info" title="sys.float_info"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.float_info.min</span></code></a>).</p></li>
|
||
<li><p>If <em>x</em> is equal to the largest positive representable float,
|
||
return the value of the least significant bit of <em>x</em>, such that the first
|
||
float smaller than <em>x</em> is <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">-</span> <span class="pre">ulp(x)</span></code>.</p></li>
|
||
<li><p>Otherwise (<em>x</em> is a positive finite number), return the value of the least
|
||
significant bit of <em>x</em>, such that the first float bigger than <em>x</em>
|
||
is <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">+</span> <span class="pre">ulp(x)</span></code>.</p></li>
|
||
</ul>
|
||
<p>ULP stands for “Unit in the Last Place”.</p>
|
||
<p>See also <a class="reference internal" href="#math.nextafter" title="math.nextafter"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.nextafter()</span></code></a> and <a class="reference internal" href="sys.html#sys.float_info" title="sys.float_info"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.float_info.epsilon</span></code></a>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="power-exponential-and-logarithmic-functions">
|
||
<h2>Power, exponential and logarithmic functions<a class="headerlink" href="#power-exponential-and-logarithmic-functions" title="Link to this heading">¶</a></h2>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.cbrt">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">cbrt</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.cbrt" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the cube root of <em>x</em>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.exp">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">exp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.exp" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <em>e</em> raised to the power <em>x</em>, where <em>e</em> = 2.718281… is the base
|
||
of natural logarithms. This is usually more accurate than <code class="docutils literal notranslate"><span class="pre">math.e</span> <span class="pre">**</span> <span class="pre">x</span></code>
|
||
or <code class="docutils literal notranslate"><span class="pre">pow(math.e,</span> <span class="pre">x)</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.exp2">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">exp2</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.exp2" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <em>2</em> raised to the power <em>x</em>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.expm1">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">expm1</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.expm1" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <em>e</em> raised to the power <em>x</em>, minus 1. Here <em>e</em> is the base of natural
|
||
logarithms. For small floats <em>x</em>, the subtraction in <code class="docutils literal notranslate"><span class="pre">exp(x)</span> <span class="pre">-</span> <span class="pre">1</span></code>
|
||
can result in a <a class="reference external" href="https://en.wikipedia.org/wiki/Loss_of_significance">significant loss of precision</a>; the <a class="reference internal" href="#math.expm1" title="math.expm1"><code class="xref py py-func docutils literal notranslate"><span class="pre">expm1()</span></code></a>
|
||
function provides a way to compute this quantity to full precision:</p>
|
||
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">from</span><span class="w"> </span><span class="nn">math</span><span class="w"> </span><span class="kn">import</span> <span class="n">exp</span><span class="p">,</span> <span class="n">expm1</span>
|
||
<span class="gp">>>> </span><span class="n">exp</span><span class="p">(</span><span class="mf">1e-5</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span> <span class="c1"># gives result accurate to 11 places</span>
|
||
<span class="go">1.0000050000069649e-05</span>
|
||
<span class="gp">>>> </span><span class="n">expm1</span><span class="p">(</span><span class="mf">1e-5</span><span class="p">)</span> <span class="c1"># result accurate to full precision</span>
|
||
<span class="go">1.0000050000166668e-05</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.log">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">log</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="optional">[</span>, <em class="sig-param"><span class="n"><span class="pre">base</span></span></em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#math.log" title="Link to this definition">¶</a></dt>
|
||
<dd><p>With one argument, return the natural logarithm of <em>x</em> (to base <em>e</em>).</p>
|
||
<p>With two arguments, return the logarithm of <em>x</em> to the given <em>base</em>,
|
||
calculated as <code class="docutils literal notranslate"><span class="pre">log(x)/log(base)</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.log1p">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">log1p</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.log1p" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the natural logarithm of <em>1+x</em> (base <em>e</em>). The
|
||
result is calculated in a way which is accurate for <em>x</em> near zero.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.log2">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">log2</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.log2" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the base-2 logarithm of <em>x</em>. This is usually more accurate than
|
||
<code class="docutils literal notranslate"><span class="pre">log(x,</span> <span class="pre">2)</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.3.</span></p>
|
||
</div>
|
||
<div class="admonition seealso">
|
||
<p class="admonition-title">See also</p>
|
||
<p><a class="reference internal" href="stdtypes.html#int.bit_length" title="int.bit_length"><code class="xref py py-meth docutils literal notranslate"><span class="pre">int.bit_length()</span></code></a> returns the number of bits necessary to represent
|
||
an integer in binary, excluding the sign and leading zeros.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.log10">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">log10</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.log10" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the base-10 logarithm of <em>x</em>. This is usually more accurate
|
||
than <code class="docutils literal notranslate"><span class="pre">log(x,</span> <span class="pre">10)</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.pow">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">pow</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.pow" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <em>x</em> raised to the power <em>y</em>. Exceptional cases follow
|
||
the IEEE 754 standard as far as possible. In particular,
|
||
<code class="docutils literal notranslate"><span class="pre">pow(1.0,</span> <span class="pre">x)</span></code> and <code class="docutils literal notranslate"><span class="pre">pow(x,</span> <span class="pre">0.0)</span></code> always return <code class="docutils literal notranslate"><span class="pre">1.0</span></code>, even
|
||
when <em>x</em> is a zero or a NaN. If both <em>x</em> and <em>y</em> are finite,
|
||
<em>x</em> is negative, and <em>y</em> is not an integer then <code class="docutils literal notranslate"><span class="pre">pow(x,</span> <span class="pre">y)</span></code>
|
||
is undefined, and raises <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>.</p>
|
||
<p>Unlike the built-in <code class="docutils literal notranslate"><span class="pre">**</span></code> operator, <a class="reference internal" href="#math.pow" title="math.pow"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.pow()</span></code></a> converts both
|
||
its arguments to type <a class="reference internal" href="functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>. Use <code class="docutils literal notranslate"><span class="pre">**</span></code> or the built-in
|
||
<a class="reference internal" href="functions.html#pow" title="pow"><code class="xref py py-func docutils literal notranslate"><span class="pre">pow()</span></code></a> function for computing exact integer powers.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.11: </span>The special cases <code class="docutils literal notranslate"><span class="pre">pow(0.0,</span> <span class="pre">-inf)</span></code> and <code class="docutils literal notranslate"><span class="pre">pow(-0.0,</span> <span class="pre">-inf)</span></code> were
|
||
changed to return <code class="docutils literal notranslate"><span class="pre">inf</span></code> instead of raising <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>,
|
||
for consistency with IEEE 754.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.sqrt">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">sqrt</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.sqrt" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the square root of <em>x</em>.</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="summation-and-product-functions">
|
||
<h2>Summation and product functions<a class="headerlink" href="#summation-and-product-functions" title="Link to this heading">¶</a></h2>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.dist">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">dist</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">p</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">q</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.dist" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the Euclidean distance between two points <em>p</em> and <em>q</em>, each
|
||
given as a sequence (or iterable) of coordinates. The two points
|
||
must have the same dimension.</p>
|
||
<p>Roughly equivalent to:</p>
|
||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="n">sqrt</span><span class="p">(</span><span class="nb">sum</span><span class="p">((</span><span class="n">px</span> <span class="o">-</span> <span class="n">qx</span><span class="p">)</span> <span class="o">**</span> <span class="mf">2.0</span> <span class="k">for</span> <span class="n">px</span><span class="p">,</span> <span class="n">qx</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">q</span><span class="p">)))</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.fsum">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">fsum</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">iterable</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.fsum" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return an accurate floating-point sum of values in the iterable. Avoids
|
||
loss of precision by tracking multiple intermediate partial sums.</p>
|
||
<p>The algorithm’s accuracy depends on IEEE-754 arithmetic guarantees and the
|
||
typical case where the rounding mode is half-even. On some non-Windows
|
||
builds, the underlying C library uses extended precision addition and may
|
||
occasionally double-round an intermediate sum causing it to be off in its
|
||
least significant bit.</p>
|
||
<p>For further discussion and two alternative approaches, see the <a class="reference external" href="https://code.activestate.com/recipes/393090-binary-floating-point-summation-accurate-to-full-p/">ASPN cookbook
|
||
recipes for accurate floating-point summation</a>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.hypot">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">hypot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">coordinates</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.hypot" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the Euclidean norm, <code class="docutils literal notranslate"><span class="pre">sqrt(sum(x**2</span> <span class="pre">for</span> <span class="pre">x</span> <span class="pre">in</span> <span class="pre">coordinates))</span></code>.
|
||
This is the length of the vector from the origin to the point
|
||
given by the coordinates.</p>
|
||
<p>For a two dimensional point <code class="docutils literal notranslate"><span class="pre">(x,</span> <span class="pre">y)</span></code>, this is equivalent to computing
|
||
the hypotenuse of a right triangle using the Pythagorean theorem,
|
||
<code class="docutils literal notranslate"><span class="pre">sqrt(x*x</span> <span class="pre">+</span> <span class="pre">y*y)</span></code>.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.8: </span>Added support for n-dimensional points. Formerly, only the two
|
||
dimensional case was supported.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.10: </span>Improved the algorithm’s accuracy so that the maximum error is
|
||
under 1 ulp (unit in the last place). More typically, the result
|
||
is almost always correctly rounded to within 1/2 ulp.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.prod">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">prod</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">iterable</span></span></em>, <em class="sig-param"><span class="keyword-only-separator o"><abbr title="Keyword-only parameters separator (PEP 3102)"><span class="pre">*</span></abbr></span></em>, <em class="sig-param"><span class="n"><span class="pre">start</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.prod" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Calculate the product of all the elements in the input <em>iterable</em>.
|
||
The default <em>start</em> value for the product is <code class="docutils literal notranslate"><span class="pre">1</span></code>.</p>
|
||
<p>When the iterable is empty, return the start value. This function is
|
||
intended specifically for use with numeric values and may reject
|
||
non-numeric types.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.sumprod">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">sumprod</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">p</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">q</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.sumprod" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the sum of products of values from two iterables <em>p</em> and <em>q</em>.</p>
|
||
<p>Raises <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> if the inputs do not have the same length.</p>
|
||
<p>Roughly equivalent to:</p>
|
||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="nb">sum</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">starmap</span><span class="p">(</span><span class="n">operator</span><span class="o">.</span><span class="n">mul</span><span class="p">,</span> <span class="nb">zip</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">q</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">True</span><span class="p">)))</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>For float and mixed int/float inputs, the intermediate products
|
||
and sums are computed with extended precision.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.12.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="angular-conversion">
|
||
<h2>Angular conversion<a class="headerlink" href="#angular-conversion" title="Link to this heading">¶</a></h2>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.degrees">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">degrees</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.degrees" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Convert angle <em>x</em> from radians to degrees.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.radians">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">radians</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.radians" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Convert angle <em>x</em> from degrees to radians.</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="trigonometric-functions">
|
||
<h2>Trigonometric functions<a class="headerlink" href="#trigonometric-functions" title="Link to this heading">¶</a></h2>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.acos">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">acos</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.acos" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the arc cosine of <em>x</em>, in radians. The result is between <code class="docutils literal notranslate"><span class="pre">0</span></code> and
|
||
<code class="docutils literal notranslate"><span class="pre">pi</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.asin">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">asin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.asin" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the arc sine of <em>x</em>, in radians. The result is between <code class="docutils literal notranslate"><span class="pre">-pi/2</span></code> and
|
||
<code class="docutils literal notranslate"><span class="pre">pi/2</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.atan">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">atan</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.atan" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the arc tangent of <em>x</em>, in radians. The result is between <code class="docutils literal notranslate"><span class="pre">-pi/2</span></code> and
|
||
<code class="docutils literal notranslate"><span class="pre">pi/2</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.atan2">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">atan2</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">y</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.atan2" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return <code class="docutils literal notranslate"><span class="pre">atan(y</span> <span class="pre">/</span> <span class="pre">x)</span></code>, in radians. The result is between <code class="docutils literal notranslate"><span class="pre">-pi</span></code> and <code class="docutils literal notranslate"><span class="pre">pi</span></code>.
|
||
The vector in the plane from the origin to point <code class="docutils literal notranslate"><span class="pre">(x,</span> <span class="pre">y)</span></code> makes this angle
|
||
with the positive X axis. The point of <a class="reference internal" href="#math.atan2" title="math.atan2"><code class="xref py py-func docutils literal notranslate"><span class="pre">atan2()</span></code></a> is that the signs of both
|
||
inputs are known to it, so it can compute the correct quadrant for the angle.
|
||
For example, <code class="docutils literal notranslate"><span class="pre">atan(1)</span></code> and <code class="docutils literal notranslate"><span class="pre">atan2(1,</span> <span class="pre">1)</span></code> are both <code class="docutils literal notranslate"><span class="pre">pi/4</span></code>, but <code class="docutils literal notranslate"><span class="pre">atan2(-1,</span>
|
||
<span class="pre">-1)</span></code> is <code class="docutils literal notranslate"><span class="pre">-3*pi/4</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.cos">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">cos</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.cos" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the cosine of <em>x</em> radians.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.sin">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">sin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.sin" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the sine of <em>x</em> radians.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.tan">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">tan</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.tan" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the tangent of <em>x</em> radians.</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="hyperbolic-functions">
|
||
<h2>Hyperbolic functions<a class="headerlink" href="#hyperbolic-functions" title="Link to this heading">¶</a></h2>
|
||
<p><a class="reference external" href="https://en.wikipedia.org/wiki/Hyperbolic_functions">Hyperbolic functions</a>
|
||
are analogs of trigonometric functions that are based on hyperbolas
|
||
instead of circles.</p>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.acosh">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">acosh</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.acosh" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the inverse hyperbolic cosine of <em>x</em>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.asinh">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">asinh</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.asinh" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the inverse hyperbolic sine of <em>x</em>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.atanh">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">atanh</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.atanh" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the inverse hyperbolic tangent of <em>x</em>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.cosh">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">cosh</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.cosh" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the hyperbolic cosine of <em>x</em>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.sinh">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">sinh</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.sinh" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the hyperbolic sine of <em>x</em>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.tanh">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">tanh</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.tanh" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the hyperbolic tangent of <em>x</em>.</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="special-functions">
|
||
<h2>Special functions<a class="headerlink" href="#special-functions" title="Link to this heading">¶</a></h2>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.erf">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">erf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.erf" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the <a class="reference external" href="https://en.wikipedia.org/wiki/Error_function">error function</a> at
|
||
<em>x</em>.</p>
|
||
<p>The <a class="reference internal" href="#math.erf" title="math.erf"><code class="xref py py-func docutils literal notranslate"><span class="pre">erf()</span></code></a> function can be used to compute traditional statistical
|
||
functions such as the <a class="reference external" href="https://en.wikipedia.org/wiki/Cumulative_distribution_function">cumulative standard normal distribution</a>:</p>
|
||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">phi</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
|
||
<span class="s1">'Cumulative distribution function for the standard normal distribution'</span>
|
||
<span class="k">return</span> <span class="p">(</span><span class="mf">1.0</span> <span class="o">+</span> <span class="n">erf</span><span class="p">(</span><span class="n">x</span> <span class="o">/</span> <span class="n">sqrt</span><span class="p">(</span><span class="mf">2.0</span><span class="p">)))</span> <span class="o">/</span> <span class="mf">2.0</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.erfc">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">erfc</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.erfc" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the complementary error function at <em>x</em>. The <a class="reference external" href="https://en.wikipedia.org/wiki/Error_function">complementary error
|
||
function</a> is defined as
|
||
<code class="docutils literal notranslate"><span class="pre">1.0</span> <span class="pre">-</span> <span class="pre">erf(x)</span></code>. It is used for large values of <em>x</em> where a subtraction
|
||
from one would cause a <a class="reference external" href="https://en.wikipedia.org/wiki/Loss_of_significance">loss of significance</a>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.gamma">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">gamma</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.gamma" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the <a class="reference external" href="https://en.wikipedia.org/wiki/Gamma_function">Gamma function</a> at
|
||
<em>x</em>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="math.lgamma">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">lgamma</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#math.lgamma" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the natural logarithm of the absolute value of the Gamma
|
||
function at <em>x</em>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="constants">
|
||
<h2>Constants<a class="headerlink" href="#constants" title="Link to this heading">¶</a></h2>
|
||
<dl class="py data">
|
||
<dt class="sig sig-object py" id="math.pi">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">pi</span></span><a class="headerlink" href="#math.pi" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The mathematical constant <em>π</em> = 3.141592…, to available precision.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py data">
|
||
<dt class="sig sig-object py" id="math.e">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">e</span></span><a class="headerlink" href="#math.e" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The mathematical constant <em>e</em> = 2.718281…, to available precision.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py data">
|
||
<dt class="sig sig-object py" id="math.tau">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">tau</span></span><a class="headerlink" href="#math.tau" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The mathematical constant <em>τ</em> = 6.283185…, to available precision.
|
||
Tau is a circle constant equal to 2<em>π</em>, the ratio of a circle’s circumference to
|
||
its radius. To learn more about Tau, check out Vi Hart’s video <a class="reference external" href="https://www.youtube.com/watch?v=jG7vhMMXagQ">Pi is (still)
|
||
Wrong</a>, and start celebrating
|
||
<a class="reference external" href="https://tauday.com/">Tau day</a> by eating twice as much pie!</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py data">
|
||
<dt class="sig sig-object py" id="math.inf">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">inf</span></span><a class="headerlink" href="#math.inf" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A floating-point positive infinity. (For negative infinity, use
|
||
<code class="docutils literal notranslate"><span class="pre">-math.inf</span></code>.) Equivalent to the output of <code class="docutils literal notranslate"><span class="pre">float('inf')</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.5.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py data">
|
||
<dt class="sig sig-object py" id="math.nan">
|
||
<span class="sig-prename descclassname"><span class="pre">math.</span></span><span class="sig-name descname"><span class="pre">nan</span></span><a class="headerlink" href="#math.nan" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A floating-point “not a number” (NaN) value. Equivalent to the output of
|
||
<code class="docutils literal notranslate"><span class="pre">float('nan')</span></code>. Due to the requirements of the <a class="reference external" href="https://en.wikipedia.org/wiki/IEEE_754">IEEE-754 standard</a>, <code class="docutils literal notranslate"><span class="pre">math.nan</span></code> and <code class="docutils literal notranslate"><span class="pre">float('nan')</span></code> are
|
||
not considered to equal to any other numeric value, including themselves. To check
|
||
whether a number is a NaN, use the <a class="reference internal" href="#math.isnan" title="math.isnan"><code class="xref py py-func docutils literal notranslate"><span class="pre">isnan()</span></code></a> function to test
|
||
for NaNs instead of <code class="docutils literal notranslate"><span class="pre">is</span></code> or <code class="docutils literal notranslate"><span class="pre">==</span></code>.
|
||
Example:</p>
|
||
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">math</span>
|
||
<span class="gp">>>> </span><span class="n">math</span><span class="o">.</span><span class="n">nan</span> <span class="o">==</span> <span class="n">math</span><span class="o">.</span><span class="n">nan</span>
|
||
<span class="go">False</span>
|
||
<span class="gp">>>> </span><span class="nb">float</span><span class="p">(</span><span class="s1">'nan'</span><span class="p">)</span> <span class="o">==</span> <span class="nb">float</span><span class="p">(</span><span class="s1">'nan'</span><span class="p">)</span>
|
||
<span class="go">False</span>
|
||
<span class="gp">>>> </span><span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">nan</span><span class="p">)</span>
|
||
<span class="go">True</span>
|
||
<span class="gp">>>> </span><span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="s1">'nan'</span><span class="p">))</span>
|
||
<span class="go">True</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.5.</span></p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.11: </span>It is now always available.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<div class="impl-detail compound">
|
||
<p><strong>CPython implementation detail:</strong> The <a class="reference internal" href="#module-math" title="math: Mathematical functions (sin() etc.)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code></a> module consists mostly of thin wrappers around the platform C
|
||
math library functions. Behavior in exceptional cases follows Annex F of
|
||
the C99 standard where appropriate. The current implementation will raise
|
||
<a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> for invalid operations like <code class="docutils literal notranslate"><span class="pre">sqrt(-1.0)</span></code> or <code class="docutils literal notranslate"><span class="pre">log(0.0)</span></code>
|
||
(where C99 Annex F recommends signaling invalid operation or divide-by-zero),
|
||
and <a class="reference internal" href="exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> for results that overflow (for example,
|
||
<code class="docutils literal notranslate"><span class="pre">exp(1000.0)</span></code>). A NaN will not be returned from any of the functions
|
||
above unless one or more of the input arguments was a NaN; in that case,
|
||
most functions will return a NaN, but (again following C99 Annex F) there
|
||
are some exceptions to this rule, for example <code class="docutils literal notranslate"><span class="pre">pow(float('nan'),</span> <span class="pre">0.0)</span></code> or
|
||
<code class="docutils literal notranslate"><span class="pre">hypot(float('nan'),</span> <span class="pre">float('inf'))</span></code>.</p>
|
||
<p>Note that Python makes no effort to distinguish signaling NaNs from
|
||
quiet NaNs, and behavior for signaling NaNs remains unspecified.
|
||
Typical behavior is to treat all NaNs as though they were quiet.</p>
|
||
</div>
|
||
<div class="admonition seealso">
|
||
<p class="admonition-title">See also</p>
|
||
<dl class="simple">
|
||
<dt>Module <a class="reference internal" href="cmath.html#module-cmath" title="cmath: Mathematical functions for complex numbers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">cmath</span></code></a></dt><dd><p>Complex number versions of many of these functions.</p>
|
||
</dd>
|
||
</dl>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
<div class="clearer"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="Main">
|
||
<div class="sphinxsidebarwrapper">
|
||
<div>
|
||
<h3><a href="../contents.html">Table of Contents</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code> — Mathematical functions</a><ul>
|
||
<li><a class="reference internal" href="#number-theoretic-functions">Number-theoretic functions</a></li>
|
||
<li><a class="reference internal" href="#floating-point-arithmetic">Floating point arithmetic</a></li>
|
||
<li><a class="reference internal" href="#floating-point-manipulation-functions">Floating point manipulation functions</a></li>
|
||
<li><a class="reference internal" href="#power-exponential-and-logarithmic-functions">Power, exponential and logarithmic functions</a></li>
|
||
<li><a class="reference internal" href="#summation-and-product-functions">Summation and product functions</a></li>
|
||
<li><a class="reference internal" href="#angular-conversion">Angular conversion</a></li>
|
||
<li><a class="reference internal" href="#trigonometric-functions">Trigonometric functions</a></li>
|
||
<li><a class="reference internal" href="#hyperbolic-functions">Hyperbolic functions</a></li>
|
||
<li><a class="reference internal" href="#special-functions">Special functions</a></li>
|
||
<li><a class="reference internal" href="#constants">Constants</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
<div>
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="numbers.html"
|
||
title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">numbers</span></code> — Numeric abstract base classes</a></p>
|
||
</div>
|
||
<div>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="cmath.html"
|
||
title="next chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cmath</span></code> — Mathematical functions for complex numbers</a></p>
|
||
</div>
|
||
<div role="note" aria-label="source link">
|
||
<h3>This Page</h3>
|
||
<ul class="this-page-menu">
|
||
<li><a href="../bugs.html">Report a Bug</a></li>
|
||
<li>
|
||
<a href="https://github.com/python/cpython/blob/main/Doc/library/math.rst"
|
||
rel="nofollow">Show Source
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div id="sidebarbutton" title="Collapse sidebar">
|
||
<span>«</span>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="Related">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
>index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="cmath.html" title="cmath — Mathematical functions for complex numbers"
|
||
>next</a> |</li>
|
||
<li class="right" >
|
||
<a href="numbers.html" title="numbers — Numeric abstract base classes"
|
||
>previous</a> |</li>
|
||
|
||
<li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"/></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li class="switchers">
|
||
<div class="language_switcher_placeholder"></div>
|
||
<div class="version_switcher_placeholder"></div>
|
||
</li>
|
||
<li>
|
||
|
||
</li>
|
||
<li id="cpython-language-and-version">
|
||
<a href="../index.html">3.13.3 Documentation</a> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="numeric.html" >Numeric and Mathematical Modules</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href=""><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code> — Mathematical functions</a></li>
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" />
|
||
<input type="submit" value="Go" />
|
||
</form>
|
||
</div>
|
||
|
|
||
</li>
|
||
<li class="right">
|
||
<label class="theme-selector-label">
|
||
Theme
|
||
<select class="theme-selector" oninput="activateTheme(this.value)">
|
||
<option value="auto" selected>Auto</option>
|
||
<option value="light">Light</option>
|
||
<option value="dark">Dark</option>
|
||
</select>
|
||
</label> |</li>
|
||
|
||
</ul>
|
||
</div>
|
||
<div class="footer">
|
||
©
|
||
<a href="../copyright.html">
|
||
|
||
Copyright
|
||
|
||
</a>
|
||
2001-2025, Python Software Foundation.
|
||
<br />
|
||
This page is licensed under the Python Software Foundation License Version 2.
|
||
<br />
|
||
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
|
||
<br />
|
||
|
||
See <a href="/license.html">History and License</a> for more information.<br />
|
||
|
||
|
||
<br />
|
||
|
||
The Python Software Foundation is a non-profit corporation.
|
||
<a href="https://www.python.org/psf/donations/">Please donate.</a>
|
||
<br />
|
||
<br />
|
||
Last updated on Apr 08, 2025 (14:33 UTC).
|
||
|
||
<a href="/bugs.html">Found a bug</a>?
|
||
|
||
<br />
|
||
|
||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
|
||
</div>
|
||
|
||
</body>
|
||
</html> |