LambertW - simple iteration implementing the Lambert-W function
double double LambertW -> double
The Lambert-W function is the inverse function of x=W*exp(W). For real values of
x and W, the function W(x) is defined on [-1/e,\infty). On the interval [-1/e,0)
it is double valued. The two branches coincide at W(-1/e)=-1. The so called
principal branch LambertW0 continuously grows (W>=-1) and crosses the origin (0,0).
The non-principal branch LambertWm1 is defined on [-1/e,0) and declines to -\infty for
growing x.

LambertW uses Halley's method described in [1] (see also [2]) to
implement the functions for the two branches LambertW0 and LambertWm1
if NEST has no access to the GSL [3].

Version: 090818
The first parameter is the argument of the Lambert-W function, the
second argument is the start value of the iteration. 0.0 is a good initial
value for the principal branch of the Lambert-W function. -2.0 is a good
choice to select the non-principal branch.

[1] Corless, R. M., Gonnet, G. H., Hare, D. E. G., Jeffrey, D. J., & Knuth, D. E.
(1996). On the lambert w function. Advances in Computational Mathematics 5,
[2] Wikipedia (2009). Lambert W function ---wikipedia, the free encyclopedia.
[3] Galassi, M., Davies, J., Theiler, J., Gough, B., Jungman, G., Booth, M.,
& Rossi, F. (2006). GNU Scientific Library Reference Manual (2nd Ed.).
Network Theory Limited.

SeeAlso: Source: