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.
The Duckering Hyperbolic Geometry library is also worth digging into:
https://github.com/cduck/hyperbolic/
This is organized into a pip module and has a few example ipynb files to get started.
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.
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.
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”.
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?
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.
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
The Duckering Hyperbolic Geometry library is also worth digging into: https://github.com/cduck/hyperbolic/ This is organized into a pip module and has a few example ipynb files to get started.
Thanks for taking me down the rabbit hole. I didn't know there was an esoteric programming language called Piet.
https://en.wikipedia.org/wiki/Esoteric_programming_language#...
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.
Really fun, and the link to the numberphile video is great, too.
[flagged]
Python is a very poor choice for such a tool. Julia should have been used
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.
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?
I would be more likely to pick up Julia if comments like gp told me something interesting about the language.
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.
Index all your arrays with from_offset(n)
def from_offset(n: int): return n+1
Well-typed (or sightly-better-typed) programming ftw.
So post a link about making cool hyperbolic SVG with Julia