andydude Wrote:Well, almost...Code:sage: LambertW(1)
0.567143290409784
sage: KnoebelH(e)
0.318131505204764 + 1.33723570143069*I
sage: KnoebelH(e^(pi/2))
1.49809129296906e-13 + 1.00000000000024*I
Andrew - I came across the similar problem with the wikipedia Lambert-W and thus still use an own routine which replaces this for some parameters.
It is a sort of "lasso"-procedure, the mathematics is *not* proven.
It makes use of the observation, that if you start with a complex value in the near of the fixpoint, and iterate, then the sequence of values form a very nice spiral, with the fixpoint near the center.
So if you have one round, you just use the center as new initial value, which provides then a much more narrow new lasso.
The spiral converges, if it is an attracting fixpoint, but because you switch to the center after the first round, you possibly save lots of tidy rounds on the spiral.
The special effect is: you can even catch repelling fixpoints, if the spiral diverges not too strong - just because the catching of the "center" of one round can over-compensate the divergence.
For instance I found
Code:
findfixpt(exp(Pi/2))
%180 = -1.0451585870966735600158078879579 E-41 + 1.0000000000000000000000000000000*I
findfixpt(exp(Pi/2),1e-80)
%181 = -1.0250080565445841470968576986582 E-81 + 1.0000000000000000000000000000000*IIf you want, I post the pari/gp routine here for re-implementation/improving. It's quick&dirty, fast only on some range of parameters (seems to cover the slow range of the wikipedia-lambert, for instance) and I didn't investigate the math below the surface.
Gottfried Helms, Kassel

