This is a JavaScript implementation for the Lambert W Function, which is also known as Omega Function, on the principal branch W_0
.
Please note that this library does not support complex numbers and only supports the principal branch.
From npm via npm
npm install lambert-w-function
or via yarn
yarn add lambert-w-function
For CommonJS
const {
lambertW0, // same as lambertW0_IaconoBoyd
lambertW0_IaconoBoyd,
lambertW0Log, // same as lambertW0Log_xmodar
lambertW0Log_xmodar,
lambertW0_SimpleIteration_LT_E,
lambertW0_SimpleIteration_GT_E,
W0_LIMIT_POINT
} = require('lambert-w-function')
otherwise
import { ... } from 'lambert-w-function'
// A good approximation with a maximum relative error 5E-3
// Same as lambertW0Log(x) if is_x_log set to true.
// -
// See: https://gist.github.com/xmodar/baa392fc2bec447d10c2c20bbdcaf687
// See: https://link.springer.com/content/pdf/10.1007/s10444-017-9530-3.pdf
lambertW0(x: number, is_x_log = false): number
// Computes W(y) where y of the form log(x)
// -
// See: https://gist.github.com/xmodar/baa392fc2bec447d10c2c20bbdcaf687
lambertW0Log(logX: number): number
// Approximates W(X) with a straightforward algoritm for x <= E (respectively
// x > E) but it is highly recommended to use lambertW0 instead.
// -
// See: https://doi.org/10.1145%2F258726.258783
lambertW0_SimpleIteration_LT_E(x: number, iterations = 10): number
lambertW0_SimpleIteration_GT_E(x: number, iterations = 10): number
You can check out the Desmos Demo to preview simple iteration algorithm up to 20 iterations.
This project is licensed under the MIT license so that you can just do whatever you want with it.