[ANN] weierstrass-functions

Hello,

I’ve just released weierstrass-functions on Hackage. This library allows to evaluate some special functions:

  • Weierstrass p function and its inverse
  • Weierstrass sigma function
  • Weierstrass zeta function
  • Eisenstein series E2, E4, E6
  • Dedekind eta function
  • Klein j function and its inverse
  • Modular lambda function
  • Modular discriminant function
8 Likes

Congrats! Looks cool, but weierstrass functions are unknown to me.

Have you ideas to how this library could be used? It’d be cool to try something out.
They sound like the kind of function that can be used to describe some obscure game mechanic :slight_smile:

1 Like

No idea ^^

I used these functions to make beautiful pictures. But for a true life application, I don’t know.

3 Likes

Does it include Jacobi elliptic functions?

1 Like

@ziggurism The Jacobi elliptic functions are implemented in my other library jacobi-elliptic.

1 Like

elliptic functions are used to do things like compute arc length of a ellipse. maybe useful for analyzing (idealized) celestial orbits?

1 Like

The arc length of an ellipse is computed with the help of an elliptic integral => use my other library elliptic-integrals.

1 Like

wow, three different libraries for elliptic functions?

1 Like

Yes, and also jacobi-theta for the Jacobi theta functions (which is a dependency of jacobi-elliptic and weierstrass-functions).

2 Likes

Like in the obits package? (=

1 Like

@stla The packages are missing type links in many places. Apparently you Internal-ized too much without a matching re-export.

1 Like

@wiz Thanks. You mean the Cplx type? That’s the only type I define, I think.

1 Like

In this package, yes. But there’s the same thing with the other packages too. You can open your packages on Hackage and check if every type is clickable. If it isn’t - you forgot to publish it.

1 Like

Yes I saw that. I started to remove this type, this is just an alias of Complex Double. Thanks.

2 Likes

Btw, is it even required to use Double? The Float precision can’t give a correct result?

(Asking since I’m working with GPU rendering and it is fp32 all around. I try to avoid conversions when it isn’t required to save on allocations and computation.)

1 Like

With the double precision, the true value (according to Wolfram) is attained up to 10—14 digits. With the float precision this would be less.

1 Like