Command: LambertWm1


double LambertWm1 -> double

[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] 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.
[3] Wikipedia (2009). Lambert W function ---wikipedia the free encyclopedia.

The Lambert-W function [1] 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.

NEST uses the GSL [2] implementations of LambertW0 and LambertWm1 if available and
falls back to to the iterative scheme LambertW suggested in [1] if not.
The GSL interfaces for LambertW0 and LambertWm1 are in the SpecialFunctionsModule
of SLI.


The Lambert-W function has applications in many areas as described in [1] and [3].
For example the problem of finding the location of the maximum of the postsynaptic
potential generated by an alpha-function shaped current can be reduced to the
exp(s) = 1 + a*s .
Here s is the location of the maximum in scaled time s=b*t where
b= 1/tau_alpha - 1/tau_m and a is the ratio of the time constants tau_m/tau_alpha.
In terms of the Lambda_W function the solution is
s=1/a * (-aW(-exp(-1/a)/a) -1 ) .
The solution is guaranteed to live on the non-principal branch because the scaled time
needs to be positive. This requires W < -1/a which is trivially fulfilled for the
non-principal branch and there is no solution on the principal branch.

Version: 090818