[Python-ideas] Trigonometry in degrees

Kyle Lahnakoski klahnakoski at mozilla.com
Fri Jun 8 09:44:40 EDT 2018



On 2018-06-08 01:44, Yuval Greenfield wrote:
> On Thu, Jun 7, 2018 at 10:38 PM Stephen J. Turnbull
> <turnbull.stephen.fw at u.tsukuba.ac.jp
> <mailto:turnbull.stephen.fw at u.tsukuba.ac.jp>> wrote:
>
>
>     6.123233995736766e-17
>     >>>
>
>     is good enough for government work, including at the local public high
>     school.
>
>
> There probably is room for a library like "fractions" that represents
> multiples of pi or degrees precisely. I'm not sure how complicated or
> valuable of an endeavor that would be. But while I agree that floating
> point is good enough, we probably can do better.
>  
>

Yes, I agree with making a module (called `rational_trig`?), that
defines some Angle constants, and defines trig functions that accept
Angle objects. Using angle objects will prevent the explosion of
unit-specific variations on the trig functions (sin, sindeg, singrad,
etc).  Like mentioned above, the Angle object is probably best
implemented as a Rational of 2*pi, which will allow our favorite angles
to be represented without floating point error.  We can define `degrees`
and `radians` constants which can be used as units; then trig looks
something like:

from rational_trig import cos

if cos(90*degrees) == 0:
    print("yay!")

It is probably slow as molasses, but maybe good enough for a teaching
environment?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180608/3deb5368/attachment.html>


More information about the Python-ideas mailing list