Python for Inversive and Hyperbolic Geometry

77 pointsposted 9 months ago
by thunderbong

14 Comments

hfjidufu

9 months 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

9 months 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

9 months ago

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

xiaodai

9 months ago

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

randrus

9 months 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

9 months 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__

9 months ago

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

bgoated01

9 months 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

9 months 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.

xiaodai

9 months ago

I am sorry. I am autistic.

jazzyjackson

9 months ago

So post a link about making cool hyperbolic SVG with Julia