python-peps/pep-0628/index.html

184 lines
12 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="light dark">
<title>PEP 628 Add math.tau | peps.python.org</title>
<link rel="shortcut icon" href="../_static/py.png">
<link rel="canonical" href="https://peps.python.org/pep-0628/">
<link rel="stylesheet" href="../_static/style.css" type="text/css">
<link rel="stylesheet" href="../_static/mq.css" type="text/css">
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" media="(prefers-color-scheme: light)" id="pyg-light">
<link rel="stylesheet" href="../_static/pygments_dark.css" type="text/css" media="(prefers-color-scheme: dark)" id="pyg-dark">
<link rel="alternate" type="application/rss+xml" title="Latest PEPs" href="https://peps.python.org/peps.rss">
<meta property="og:title" content='PEP 628 Add math.tau | peps.python.org'>
<meta property="og:description" content="In honour of Tau Day 2011, this PEP proposes the addition of the circle constant math.tau to the Python standard library.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://peps.python.org/pep-0628/">
<meta property="og:site_name" content="Python Enhancement Proposals (PEPs)">
<meta property="og:image" content="https://peps.python.org/_static/og-image.png">
<meta property="og:image:alt" content="Python PEPs">
<meta property="og:image:width" content="200">
<meta property="og:image:height" content="200">
<meta name="description" content="In honour of Tau Day 2011, this PEP proposes the addition of the circle constant math.tau to the Python standard library.">
<meta name="theme-color" content="#3776ab">
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-sun-half" viewBox="0 0 24 24" pointer-events="all">
<title>Following system colour scheme</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="9"></circle>
<path d="M12 3v18m0-12l4.65-4.65M12 14.3l7.37-7.37M12 19.6l8.85-8.85"></path>
</svg>
</symbol>
<symbol id="svg-moon" viewBox="0 0 24 24" pointer-events="all">
<title>Selected dark colour scheme</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"></path>
</svg>
</symbol>
<symbol id="svg-sun" viewBox="0 0 24 24" pointer-events="all">
<title>Selected light colour scheme</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</symbol>
</svg>
<script>
document.documentElement.dataset.colour_scheme = localStorage.getItem("colour_scheme") || "auto"
</script>
<section id="pep-page-section">
<header>
<h1>Python Enhancement Proposals</h1>
<ul class="breadcrumbs">
<li><a href="https://www.python.org/" title="The Python Programming Language">Python</a> &raquo; </li>
<li><a href="../pep-0000/">PEP Index</a> &raquo; </li>
<li>PEP 628</li>
</ul>
<button id="colour-scheme-cycler" onClick="setColourScheme(nextColourScheme())">
<svg aria-hidden="true" class="colour-scheme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg aria-hidden="true" class="colour-scheme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg aria-hidden="true" class="colour-scheme-icon-when-light"><use href="#svg-sun"></use></svg>
<span class="visually-hidden">Toggle light / dark / auto colour theme</span>
</button>
</header>
<article>
<section id="pep-content">
<h1 class="page-title">PEP 628 Add <code class="docutils literal notranslate"><span class="pre">math.tau</span></code></h1>
<dl class="rfc2822 field-list simple">
<dt class="field-odd">Author<span class="colon">:</span></dt>
<dd class="field-odd">Alyssa Coghlan &lt;ncoghlan&#32;&#97;t&#32;gmail.com&gt;</dd>
<dt class="field-even">Status<span class="colon">:</span></dt>
<dd class="field-even"><abbr title="Accepted and implementation complete, or no longer active">Final</abbr></dd>
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><abbr title="Normative PEP with a new feature for Python, implementation change for CPython or interoperability standard for the ecosystem">Standards Track</abbr></dd>
<dt class="field-even">Created<span class="colon">:</span></dt>
<dd class="field-even">28-Jun-2011</dd>
<dt class="field-odd">Python-Version<span class="colon">:</span></dt>
<dd class="field-odd">3.6</dd>
<dt class="field-even">Post-History<span class="colon">:</span></dt>
<dd class="field-even">28-Jun-2011</dd>
</dl>
<hr class="docutils" />
<section id="contents">
<details><summary>Table of Contents</summary><ul class="simple">
<li><a class="reference internal" href="#abstract">Abstract</a></li>
<li><a class="reference internal" href="#pep-acceptance">PEP Acceptance</a></li>
<li><a class="reference internal" href="#the-rationale-for-tau">The Rationale for Tau</a></li>
<li><a class="reference internal" href="#other-resources">Other Resources</a></li>
<li><a class="reference internal" href="#copyright">Copyright</a></li>
</ul>
</details></section>
<section id="abstract">
<h2><a class="toc-backref" href="#abstract" role="doc-backlink">Abstract</a></h2>
<p>In honour of Tau Day 2011, this PEP proposes the addition of the circle
constant <code class="docutils literal notranslate"><span class="pre">math.tau</span></code> to the Python standard library.</p>
<p>The concept of <code class="docutils literal notranslate"><span class="pre">tau</span></code> (<code class="docutils literal notranslate"><span class="pre">τ</span></code>) is based on the observation that the ratio of a
circles circumference to its radius is far more fundamental and interesting
than the ratio between its circumference and diameter. It is simply a matter
of assigning a name to the value <code class="docutils literal notranslate"><span class="pre">2</span> <span class="pre">*</span> <span class="pre">pi</span></code> (<code class="docutils literal notranslate"><span class="pre"></span></code>).</p>
</section>
<section id="pep-acceptance">
<h2><a class="toc-backref" href="#pep-acceptance" role="doc-backlink">PEP Acceptance</a></h2>
<p>This PEP is now <a class="reference external" href="https://bugs.python.org/issue12345#msg272287">accepted</a> and <code class="docutils literal notranslate"><span class="pre">math.tau</span></code> will be a part of Python 3.6.
Happy birthday Alyssa!</p>
<p>The idea in this PEP has been implemented in the auspiciously named
<a class="reference external" href="http://bugs.python.org/issue12345">issue 12345</a>.</p>
</section>
<section id="the-rationale-for-tau">
<h2><a class="toc-backref" href="#the-rationale-for-tau" role="doc-backlink">The Rationale for Tau</a></h2>
<p><code class="docutils literal notranslate"><span class="pre">pi</span></code> is defined as the ratio of a circles circumference to its diameter.
However, a circle is defined by its centre point and its <em>radius</em>. This is
shown clearly when we note that the parameter of integration to go from a
circles circumference to its area is the radius, not the diameter. If we
use the diameter instead we have to divide by four to get rid of the
extraneous multiplier.</p>
<p>When working with radians, it is trivial to convert any given fraction of a
circle to a value in radians in terms of <code class="docutils literal notranslate"><span class="pre">tau</span></code>. A quarter circle is
<code class="docutils literal notranslate"><span class="pre">tau/4</span></code>, a half circle is <code class="docutils literal notranslate"><span class="pre">tau/2</span></code>, seven 25ths is <code class="docutils literal notranslate"><span class="pre">7*tau/25</span></code>, etc. In
contrast with the equivalent expressions in terms of <code class="docutils literal notranslate"><span class="pre">pi</span></code> (<code class="docutils literal notranslate"><span class="pre">pi/2</span></code>, <code class="docutils literal notranslate"><span class="pre">pi</span></code>,
<code class="docutils literal notranslate"><span class="pre">14*pi/25</span></code>), the unnecessary and needlessly confusing multiplication by
two is gone.</p>
</section>
<section id="other-resources">
<h2><a class="toc-backref" href="#other-resources" role="doc-backlink">Other Resources</a></h2>
<p>Ive barely skimmed the surface of the many examples put forward to point out
just how much <em>easier</em> and more <em>sensible</em> many aspects of mathematics become
when conceived in terms of <code class="docutils literal notranslate"><span class="pre">tau</span></code> rather than <code class="docutils literal notranslate"><span class="pre">pi</span></code>. If you dont find my
specific examples sufficiently persuasive, here are some more resources that
may be of interest:</p>
<ul class="simple">
<li>Michael Hartl is the primary instigator of Tau Day in his <a class="reference external" href="http://tauday.com/">Tau Manifesto</a></li>
<li>Bob Palais, the author of the original mathematics journal article
highlighting the problems with <code class="docutils literal notranslate"><span class="pre">pi</span></code> has <a class="reference external" href="http://www.math.utah.edu/~palais/pi.html">a page of resources</a> on the
topic</li>
<li>For those that prefer videos to written text, <a class="reference external" href="http://www.youtube.com/watch?v=IF1zcRoOVN0">Pi is wrong!</a> and
<a class="reference external" href="http://www.youtube.com/watch?v=jG7vhMMXagQ">Pi is (still) wrong</a> are available on YouTube</li>
</ul>
</section>
<section id="copyright">
<h2><a class="toc-backref" href="#copyright" role="doc-backlink">Copyright</a></h2>
<p>This document has been placed in the public domain.</p>
</section>
</section>
<hr class="docutils" />
<p>Source: <a class="reference external" href="https://github.com/python/peps/blob/main/peps/pep-0628.rst">https://github.com/python/peps/blob/main/peps/pep-0628.rst</a></p>
<p>Last modified: <a class="reference external" href="https://github.com/python/peps/commits/main/peps/pep-0628.rst">2023-10-11 12:05:51 GMT</a></p>
</article>
<nav id="pep-sidebar">
<h2>Contents</h2>
<ul>
<li><a class="reference internal" href="#abstract">Abstract</a></li>
<li><a class="reference internal" href="#pep-acceptance">PEP Acceptance</a></li>
<li><a class="reference internal" href="#the-rationale-for-tau">The Rationale for Tau</a></li>
<li><a class="reference internal" href="#other-resources">Other Resources</a></li>
<li><a class="reference internal" href="#copyright">Copyright</a></li>
</ul>
<br>
<a id="source" href="https://github.com/python/peps/blob/main/peps/pep-0628.rst">Page Source (GitHub)</a>
</nav>
</section>
<script src="../_static/colour_scheme.js"></script>
<script src="../_static/wrap_tables.js"></script>
<script src="../_static/sticky_banner.js"></script>
</body>
</html>