[Python-ideas] Trigonometry in degrees

Wes Turner wes.turner at gmail.com
Fri Jun 8 22:09:01 EDT 2018


# Python, NumPy, SymPy, mpmath, sage trigonometric functions
https://en.wikipedia.org/wiki/Trigonometric_functions

## Python math module
https://docs.python.org/3/library/math.html#trigonometric-functions
- degrees(radians): Float degrees
- radians(degrees): Float degrees

## NumPy
https://docs.scipy.org/doc/numpy/reference/routines.math.html#trigonometric-functions
- degrees(radians) : List[float] degrees
- rad2deg(radians): List[float] degrees
- radians(degrees) : List[float] radians
- deg2rad(degrees): List[float] radians

https://docs.scipy.org/doc/numpy/reference/generated/numpy.sin.html


## SymPy
http://docs.sympy.org/latest/modules/functions/elementary.html#sympy-functions-elementary-trigonometric
http://docs.sympy.org/latest/modules/functions/elementary.html#trionometric-functions

- sympy.mpmath.degrees(radians): Float degrees
- sympy.mpmath.radians(degrees): Float radians

- https://stackoverflow.com/questions/31072815/cosd-and-sind-with-sympy
  - cosd, sind
  -
https://stackoverflow.com/questions/31072815/cosd-and-sind-with-sympy#comment50176770_31072815

    > Let x, theta, phi, etc. be Symbols representing quantities in
radians. Keep a list of these symbols: angles = [x, theta, phi]. Then, at
the very end, use y.subs([(angle, angle*pi/180) for angle in angles]) to
change the meaning of the symbols to degrees"


## mpmath
http://mpmath.org/doc/current/functions/trigonometric.html
- sympy.mpmath.degrees(radians): Float degrees
- sympy.mpmath.radians(degrees): Float radians


## Sage
https://doc.sagemath.org/html/en/reference/functions/sage/functions/trig.html



On Friday, June 8, 2018, Robert Vanden Eynde <robertvandeneynde at hotmail.com>
wrote:

> - Thanks for pointing out a language (Julia) that already had a name
> convention. Interestingly they don't have a atan2d function. Choosing the
> same convention as another language is a big plus.
>
> - Adding trig function using floats between 0 and 1 is nice, currently one
> needs to do sin(tau * t) which is not so bad (from math import tau, tau
> sounds like turn).
>
> - Julia has sinpi for sin(pi*x), one could have sintau(x) for sin(tau*x)
> or sinturn(x).
>
> Grads are in the idea of turns but with more problems, as you guys said,
> grads are used by noone, but turns are more useful. sin(tau * t) For The
> Win.
>
> - Even though people mentionned 1/6 not being exact, so that advantage
> over radians isn't that obvious ?
>
> from math import sin, tau
> from fractions import Fraction
> sin(Fraction(1,6) * tau)
> sindeg(Fraction(1,6) * 360)
>
> These already work today by the way.
>
> - As you guys pointed out, using radians implies knowing a little bit
> about floating point arithmetic and its limitations. Integer are more
> simple and less error prone. Of course it's useful to know about floats but
> in many case it's not necessary to learn about it right away, young
> students just want their player in the game move in a straight line when
> angle = 90.
>
> - sin(pi/2) == 1 but cos(pi/2) != 0 and sin(3*pi/2) != 1 so sin(pi/2) is
> kind of an exception.
>
>
>
>
> Le ven. 8 juin 2018 à 09:11, Steven D'Aprano <steve at pearwood.info> a
> écrit :
>
>> On Fri, Jun 08, 2018 at 03:55:34PM +1000, Chris Angelico wrote:
>> > On Fri, Jun 8, 2018 at 3:45 PM, Steven D'Aprano <steve at pearwood.info>
>> wrote:
>> > > Although personally I prefer the look of d as a prefix:
>> > >
>> > > dsin, dcos, dtan
>> > >
>> > > That's more obviously pronounced "d(egrees) sin" etc rather than
>> "sined"
>> > > "tanned" etc.
>> >
>> > Having it as a suffix does have one advantage. The math module would
>> > need a hyperbolic sine function which accepts an argument in; and
>> > then, like Charles Napier [1], Python would finally be able to say "I
>> > have sindh".
>>
>> Ha ha, nice pun, but no, the hyperbolic trig functions never take
>> arguments in degrees. Or radians for that matter. They are "hyperbolic
>> angles", which some electrical engineering text books refer to as
>> "hyperbolic radians", but all the maths text books I've seen don't call
>> them anything other than a real number. (Or sometimes a complex number.)
>>
>> But for what it's worth, there is a correspondence of a sort between the
>> hyperbolic angle and circular angles. The circular angle going between 0
>> to 45° corresponds to the hyperbolic angle going from 0 to infinity.
>>
>> https://en.wikipedia.org/wiki/Hyperbolic_angle
>>
>> https://en.wikipedia.org/wiki/Hyperbolic_function
>>
>>
>> > [1] Apocryphally, alas.
>>
>> Don't ruin a good story with facts ;-)
>>
>>
>>
>> --
>> Steve
>> _______________________________________________
>> Python-ideas mailing list
>> Python-ideas at python.org
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180608/4e62902b/attachment-0001.html>


More information about the Python-ideas mailing list