It's a tool to help with writing bindings to C library. It can generate a lot of the boilerplate associated with this sort of stuff (e.g., generating wrapper types on the Haskell side) and typechecks the FFI imports by analyzing the C types in the library's headers.
It's not perfect, for instance, I still have one weird problem with the types of some function pointers not being imported correctly. But, while I didn't test anything until I had done everything, I haven't had any segfault or unexpected result with the generated bindings, and I find that pretty impressive!
On the previous graph, the curves kind of looked like sine wave because the angles remain small. But, this isn't true anymore for larger angle, as illustrated by the result one gets if the pendulum is released from 3π/4 radian (135 ° from the vertical)
I wanted to explain the code you get in Haskell to write this sort of model, but it's actually quite tricky to explain in a toot^^
Hopefully I'll write a blog post about this when this is more polished
@typochon I was about to childishly troll you for coming up with a complicated way of plotting the sine function, but you got me bamboozled here
@otini The small-angle approximation is a lie
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!