Python for Inversive and Hyperbolic Geometry

(coe.psu.ac.th)

74 points | by thunderbong 2 days ago ago

13 comments

  • hfjidufu 2 days ago ago

    Great post.

    I enjoy the almost Oliver Burne[0] meets Mondrian[1] like outputs of Duckering's implementation, but appreciate the simplicity of the author's as well.

    Excellent linked resources for anyone interested in using programming to illuminate mathematics.

    [0] https://en.wikipedia.org/wiki/Oliver_Byrne_(mathematician)

    [1] https://en.wikipedia.org/wiki/Piet_Mondrian

  • cwmoore 2 days ago ago

    Your post goes a lot farther, but the Pappus Chains reminded me of the Method of Apollonius that I have used to generate nested yinyan symbols with JavaScript.

  • xrd 2 days ago ago

    Really fun, and the link to the numberphile video is great, too.

  • wesliejoe 2 days ago ago

    [flagged]

  • xiaodai 2 days ago ago

    Python is a very poor choice for such a tool. Julia should have been used

    • randrus 2 days ago ago

      In case this is relevant to your reasons for posting … every time I see one of the fact free posts the slam Python to promote Julia it pushes me further from considering Julia for anything.

      • bbor 2 days ago ago

        Obviously the comment above is far from helpful in tone or content, but this spurred me to look it up. As a python guy, my takeaways are:

        1. It’s designed by mathematicians specifically for math.

        2. It has much better support for generic/runtime types, something the academics apparently describe using the terms “parametric polymorphism” and “multi-dispatch”.

        Plus there’s this cute founding ethos blog post from 2012, though it’s necessarily vague: https://julialang.org/blog/2012/02/why-we-created-julia/

        None of that sounds even close to convincing me to switch from Python, but I can see the appeal for people who value those typing features and want something faster.

        I don’t necessarily see the connection between either of those things and the implementation above, tho… presumably it’s basically instant, anyway?

      • __MatrixMan__ 2 days ago ago

        I would be more likely to pick up Julia if comments like gp told me something interesting about the language.

        • bgoated01 2 days ago ago

          The biggest thing that keeps me from using Julia rather than Python for math prototypes is that it uses one-based indexing. I go back and forth between these prototypes and my C++ codebase, and the mental gymnastics to switch from 0-based to 1-based makes Julia a non-starter for me. I prefer Julia over Python other than that one issue, and the lower availability of tutorials, etc. for Julia.

          • lupire a day ago ago

            Index all your arrays with from_offset(n)

            def from_offset(n: int): return n+1

            Well-typed (or sightly-better-typed) programming ftw.

    • jazzyjackson 2 days ago ago

      So post a link about making cool hyperbolic SVG with Julia