Skip to content
C++ implementation of the Lambert W(x) function
Branch: master
Clone or download
Latest commit 9d34df1 May 17, 2015
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore add Jan 3, 2015
LICENSE-GPL-v2.txt add description Apr 13, 2014
LambertW.h add fukushima implementation, tests Jan 3, 2015
Makefile add fukushima implementation, tests Jan 3, 2015
lambertw.cxx fix command-line logic Jan 3, 2015


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 required 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);
You can’t perform that action at this time.