2018-06-09 8:18 GMT+02:00 Robert Vanden Eynde <robertvandeney...@hotmail.com >:
> For the naming convention, scipy using sindg (therefore Nor sind nor > sindeg) will make the sind choice less obvious. However if Matlab and Julia > chooses sind that's a good path to go, Matlab is pretty popular, as other > pointed out, with Universities giving "free" licences and stuff. With that > regards, scipy wanting to "be a replacement to Matlab in python and open > source" it's interesting they chose sindg and not the Matlab name sind. > I would suggest that compatibility with a major Python library such as SciPy is more important than compatibility with other programming languages. I would go even further and argue that scipy.special.sindg and its friends cosdg and tandg can serve as the reference implementation for this proposal. Stephan > > For the "d" as suffix that would mean "d" as "double" like in opengl. > Well, let's remember that in Python there's only One floating type, that's > a double, and it's called float... So python programmers will not think > "sind means it uses a python float and not a python float32 that C99 sinf > would". Python programmers would be like "sin takes float in radians, sind > takes float in degrees or int, because int can be converted to float when > there's no overflow". > > Le sam. 9 juin 2018 à 04:09, Wes Turner <wes.tur...@gmail.com> a écrit : > >> # 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.htm >> l#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.ht >> ml#sympy-functions-elementary-trigonometric >> http://docs.sympy.org/latest/modules/functions/elementary.ht >> ml#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/fu >> nctions/trig.html >> >> >> >> On Friday, June 8, 2018, Robert Vanden Eynde < >> robertvandeney...@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 <st...@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 <st...@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@python.org >>>> https://mail.python.org/mailman/listinfo/python-ideas >>>> Code of Conduct: http://python.org/psf/codeofconduct/ >>>> >>> _______________________________________________ >> Python-ideas mailing list >> Python-ideas@python.org >> https://mail.python.org/mailman/listinfo/python-ideas >> Code of Conduct: http://python.org/psf/codeofconduct/ >> > > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ > >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/