/LambertW

C++ implementation of the Lambert W(x) function

Primary LanguageC++BSD 2-Clause "Simplified" LicenseBSD-2-Clause

LambertW

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.

License

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 required to add the Comp. Phys. Comm. 183 (2012) 2622-2628 citation among their references.

Usage

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);