C++ implementation of the Lambert W(x) function.
The implementation grew out of the code that was first used in the mathematical utilities of the Offline Reconstruction Software Framework of the Pierre Auger Observatory.
The work is described in the following publications:
This is currently the fastest known implementation of the Lambert W function on the planet.
Released under dual licence: the GPL version 2 and the two-clause BSD license.
Scientific or technical publications resulting from projects using this code are kindly requested to add the Comp. Phys. Comm. 183 (2012) 2622-2628 citation among their references.
All the relevant code is placed into an utl
namespace.
The two branches (0 and -1) of the Lambert function can be specified as template parameters, e.g.
const double w = utl::LambertW<-1>(x);
or as normal parameters
const double w = utl::LambertW(-1, x);