# Lambert W function

The graph of W(x) for W > −4 and x < 6. The upper branch with W ≥ −1 is the function W0 (principal branch), the lower branch with W ≤ −1 is the function W−1.

In mathematics, the Lambert W function, also called the omega function or product logarithm, is a set of functions, namely the branches of the inverse relation of the function z = f(W) = WeW where eW is the exponential function and W is any complex number. In other words, the defining equation for W(z) is

$z = W(z)e^{W(z)}$

for any complex number z.

Since the function ƒ$\scriptstyle (\cdot)$ is not injective, the relation W is multivalued (except at 0). If we restrict attention to real-valued W, the complex variable z is then replaced by the real variable x, and the relation is defined only for x ≥ −1/e, and is double-valued on (−1/e, 0). The additional constraint W ≥ −1 defines a single-valued function W0(x). We have W0(0) = 0 and W0(−1/e) = −1. Meanwhile, the lower branch has W ≤ −1 and is denoted W−1(x). It decreases from W−1(−1/e) = −1 to W−1(0) = −∞.

The Lambert W relation cannot be expressed in terms of elementary functions.[1] It is useful in combinatorics, for instance in the enumeration of trees. It can be used to solve various equations involving exponentials (e.g. the maxima of the Planck, Bose–Einstein, and Fermi–Dirac distributions) and also occurs in the solution of delay differential equations, such as y'(t) = a y(t − 1). In biochemistry, and in particular enzyme kinetics, a closed-form solution for the time course kinetics analysis of Michaelis–Menten kinetics is described in terms of the Lambert W function.

Main branch of the Lambert W function in the complex plane. Note the branch cut along the negative real axis, ending at −1/e. In this picture, the hue of a point z is determined by the argument of W(z) and the brightness by the absolute value of W(z).

## Terminology

The two main branches $W_0$ and $W_{-1}$

The Lambert W-function is named after Johann Heinrich Lambert. The main branch W0 is denoted by Wp in the Digital Library of Mathematical Functions and the branch W−1 is denoted by Wm there.

The notation convention chosen here (with W0 and W−1) follows the canonical reference on the Lambert-W function by Corless, Gonnet, Hare, Jeffrey and Knuth.[2]

## History

Lambert first considered the related Lambert's Transcendental Equation in 1758,[3] which led to a paper by Leonhard Euler in 1783[4] that discussed the special case of wew. The Lambert W function was "re-discovered" every decade or so in specialized applications but its full importance was not realized until the 1990s. When it was reported that the Lambert W function provides an exact solution to the quantum-mechanical double-well Dirac delta function model for equal charges—a fundamental problem in physics—Corless and developers of the Maple Computer algebra system made a library search to find that this function was in fact ubiquitous to nature.[2][5]

## Calculus

### Derivative

By implicit differentiation, one can show that all branches of W satisfy the differential equation

$z(1+W)\frac{{\rm d}W}{{\rm d}z}=W\quad\text{for }z\neq -1/e.$

(W is not differentiable for z = −1/e.) As a consequence, we get the following formula for the derivative of W:

$\frac{{\rm d}W}{{\rm d}z}=\frac{W(z)}{z(1 + W(z))}\quad\text{for }z\not\in\{0,-1/e\}.$

Furthermore we have

$\left.\frac{{\rm d}W}{{\rm d}z}\right|_{z=0}=1.$

### Antiderivative

The function W(x), and many expressions involving W(x), can be integrated using the substitution w = W(x), i.e. x = w ew:

$\int W(x)\,{\rm d}x = x \left( W(x) - 1 + \frac{1}{W(x)} \right) + C.$

One consequence of which (using the fact that $W(e)=1$) is the identity:

$\int_{0}^{e} W(x)\,{\rm d}x = e-1$

## Asymptotic expansions

The Taylor series of $W_0$ around 0 can be found using the Lagrange inversion theorem and is given by

$W_0 (x) = \sum_{n=1}^\infty \frac{(-n)^{n-1}}{n!}\ x^n = x - x^2 + \frac{3}{2}x^3 - \frac{8}{3}x^4 + \frac{125}{24}x^5 - \cdots$

The radius of convergence is 1/e, as may be seen by the ratio test. The function defined by this series can be extended to a holomorphic function defined on all complex numbers with a branch cut along the interval (−∞, −1/e]; this holomorphic function defines the principal branch of the Lambert W function.

For large values of x, W0 is asymptotic to

$W_{0} (x) = L_1 - L_2 + \frac{L_2}{L_1} + \frac{L_2 (-2 + L_2)}{2 L_1^2} + \frac{ L_2 (6 - 9 L_2 + 2 L_2^2) }{6 L_1^3} + \frac{L_2 (-12+36L_2 - 22 L_2^2 + 3 L_2^3)}{12 L_1^4} + \cdots$
$W_{0} (x) = L_1-L_2+\sum_{\ell=0}^{\infty}\sum_{m=1}^{\infty}\frac{(-1)^{\ell}\left [\begin{matrix} \ell+m \\ \ell + 1 \end{matrix}\right ]}{m!} L_1^{-\ell-m} L_2^{m}$

where $L_1=\ln x$, $L_2=\ln\ln x$ and $\left [\begin{matrix} \ell+m \\ \ell + 1 \end{matrix}\right ]$ is a non-negative Stirling number of the first kind.[6] Keeping only the first two terms of the expansion,

$W_0(x)=\ln x-\ln\ln x+o(1).$

The other real branch, $W_{-1}$, defined in the interval [−1/e, 0), has an approximation of the same form as x approaches zero, with in this case $L_1=\ln(-x)$ and $L_2=\ln(-\ln(-x))$.

### Integer and complex powers

Integer powers of $W_0$ also admit simple Taylor (or Laurent) series expansions at $0$

$W_0(x)^2 = \sum_{n=2}^\infty \frac{-2(-n)^{n-3}}{(n-2)!}\ x^n = x^2-2x^3+4x^4-\frac{25}{3}x^5+18x^6- \cdots$

More generally, for $r\in\Z,$ the Lagrange inversion formula gives

$W_0(x)^r = \sum_{n=r}^\infty \frac{-r(-n)^{n-r-1}}{(n-r)!}\ x^n,$

which is, in general, a Laurent series of order r. Equivalently, the latter can be written in the form of a Taylor expansion of powers of $W_0(x)/x$

$\left(\frac{W_0(x)}{x}\right)^r =\exp(-r W_0(x)) = \sum_{n=0}^\infty \frac{r(n+r)^{n-1}}{n!}\ (-x)^n,$

which holds for any $r\in\C$ and $|x|.

## Identities

A few identities follow from definition:

$W(x \cdot e^{x}) = x$
$W(x) \cdot e^{W(x)} = x$
$e^{W(x)} = \frac{x}{W(x)}$
$e^{W(\ln x)} = \frac{\ln x}{W(\ln x)}$
$e^{n \cdot W(x)} = \left(\frac{x}{W(x)}\right)^{n}$[7]
$\ln W(x) = \ln(x) - W(x)$[8]
$W(x) = \ln\left(\frac{x}{W(x)}\right)$

From inverting f(ln(x)):

$W(x \cdot \ln x) = \ln x$
$W(x \cdot \ln x) = W(x) + \ln W(x)$

With Euler's iterated exponential h(x):

$h(x) = \frac{W(-\ln(x))}{-\ln(x)}$

## Special values

For any non-zero algebraic number x, W(x) is a transcendental number. Indeed, if W(x) is zero then x must be zero as well, and if W(x) is non-zero and algebraic, then by the Lindemann–Weierstrass theorem, eW(x) must be transcendental, implying that x=W(x)eW(x) must also be transcendental.

$W\left(-\frac{\pi}{2}\right) = \frac{\pi}{2}{\rm{i}}$

$W\left(-\frac{\ln a}{a}\right)= -\ln a \quad \left(\frac{1}{e}\le a\le e\right)$

$W\left(-\frac{1}{e}\right) = -1$

$W\left(0\right) = 0\,$

$W\left(1\right) = \Omega=\frac{1}{\displaystyle \int_{-\infty}^{+\infty}\frac{\,dt}{(e^t-t)^2+\pi^2}}-1\approx 0.56714329\dots\,$ (the Omega constant)

$W\left(1\right) = e^{-W(1)} = \ln\left(\frac{1}{W(1)}\right) = -\ln W(1)$

$W\left(e\right) = 1\,$

$W\left(-1\right) \approx -0.31813-1.33723{\rm{i}} \,$

$W'\left(0\right) = 1\,$

## Other formulas

There are several useful integration formulae involving the W function. Some of these include the following:

$\int_{0}^{\pi} W\bigl( 2\cot^2(x) \bigr)\sec^2(x)\;\mathrm dx = 4\sqrt{\pi}$
$\int_{0}^{\infty} \frac{W(x)}{x\sqrt{x}}\mathrm dx = 2\sqrt{2\pi}$
$\int_{0}^{\infty} W\left(\frac{1}{x^2}\right)\;\mathrm dx = \sqrt{2\pi}$

The second identity can be derived by making the substitution

$u=W(x)$

which gives

$x=ue^{u}$
$\frac{dx}{du}=(u+1)e^{u}$

Thus

$\int_{0}^{\infty} \frac{W(x)}{x\sqrt{x}}\mathrm dx=\int_{0}^{\infty} \frac{u}{ue^{u}\sqrt{ue^{u}}}(u+1)e^{u}\mathrm du$
$=\int_{0}^{\infty} \frac{u+1}{\sqrt{ue^{u}}}\mathrm du$
$=\int_{0}^{\infty} \frac{u+1}{\sqrt{u}}\frac{1}{\sqrt{e^{u}}}\mathrm du$
$=\int_{0}^{\infty} u^{\frac{1}{2}}e^{-\frac{u}{2}}\mathrm du+\int_{0}^{\infty} u^{-\frac{1}{2}}e^{-\frac{u}{2}}\mathrm du$
$=2\int_{0}^{\infty} (2w)^{\frac{1}{2}}e^{-w}\mathrm dw+2\int_{0}^{\infty} (2w)^{-\frac{1}{2}}e^{-w}\mathrm dw$ (by making the substitution $u=2w$)
$=2\sqrt{2}\int_{0}^{\infty} w^{\frac{1}{2}}e^{-w}\mathrm dw+\sqrt{2}\int_{0}^{\infty} w^{-\frac{1}{2}}e^{-w}\mathrm dw$
$=2\sqrt{2}\Gamma(\frac{3}{2})+\sqrt{2}\Gamma(\frac{1}{2})$
$=2\sqrt{2}(\frac{1}{2}\sqrt{\pi})+\sqrt{2}(\sqrt{\pi})$
$=2\sqrt{2\pi}$

The third identity may be derived from the second by making the substitution $u=\frac{1}{x^{2}}$

## Applications

Many equations involving exponentials can be solved using the W function. The general strategy is to move all instances of the unknown to one side of the equation and make it look like Y = XeX at which point the W function provides the value of the variable in X.

In other words :

$Y = X e ^ X \; \Longleftrightarrow \; X = W(Y)$

### Examples

#### Example 1

\begin{align} 2^t &= 5t\\ 1 &= \frac{5 t}{2^t}\\ 1 &= 5 t \, e^{-t \ln 2}\\ \frac{1}{5} &= t \, e^{-t \ln 2}\\ \frac{- \, \ln 2}{5} &= ( - \, t \, \ln 2 ) \, e^{( -t \ln 2 )}\\ W \left ( \frac{- \ln 2}{5} \right ) &= -t \ln 2\\ t &= -\frac{W \left ( \frac{- \ln 2}{5} \right )}{\ln 2} \end{align}

More generally, the equation

$~p^{a x + b} = c x + d$

where

$p > 0 \text{ and } c,a \neq 0$

can be transformed via the substitution

$-t = a x + \frac{a d}{c}$

into

$t p^t = R = -\frac{a}{c} p^{b-\frac{a d}{c}}$

giving

$t = \frac{W(R\ln p)}{\ln p}$

which yields the final solution

$x = -\frac{W(-\frac{a\ln p}{c}\,p^{b-\frac{a d}{c}})}{a\ln p} - \frac{d}{c}$

#### Example 2

$x^x=z\,$
$\Rightarrow x\ln x = \ln z\,$
$\Rightarrow e^{\ln x} \cdot \ln x = \ln z\,$
$\Rightarrow \ln x = W(\ln z)\,$
$\Rightarrow x=e^{W(\ln z)}\, ,$

or, equivalently,

$x=\frac{\ln z}{W(\ln z)},$

since

$\ln z = W(\ln z) e^{W(\ln z)}\,$

by definition.

#### Example 3

Whenever the complex infinite exponential tetration

$z^{z^{z^{\cdot^{\cdot^{\cdot}}}}} \!$

converges, the Lambert W function provides the actual limit value as

$c=\frac{W(-\ln(z))}{-\ln(z)}$

where ln(z) denotes the principal branch of the complex log function. This can be shown by observing that

$z^{c}=c$

if c exists, so

$z=c^{\frac{1}{c}}$
$\Rightarrow z^{-1}=c^{-\frac{1}{c}}$
$\Rightarrow \frac{1}{z}=\left(\frac{1}{c}\right)^{\left(\frac{1}{c}\right)}$
$\Rightarrow -\ln(z)=\left(\frac{1}{c}\right)\ln\left(\frac{1}{c}\right)$
$\Rightarrow -\ln(z)=e^{\ln\left(\frac{1}{c}\right)}\ln\left(\frac{1}{c}\right)$
$\Rightarrow \ln\left(\frac{1}{c}\right)=W(-\ln(z))$
$\Rightarrow \frac{1}{c}=e^{W(-\ln(z))}$
$\Rightarrow \frac{1}{c}=\frac{-\ln(z)}{W(-\ln(z))}$
$\Rightarrow c=\frac{W(-\ln(z))}{-\ln(z)}$

which is the result which was to be found.

#### Example 4

Solutions for

$x \log_b \left(x\right) = a$

have the form[5]

$x=e^{W(a\ln b)}.$

#### Example 5

The solution for the current in a series diode/resistor circuit can also be written in terms of the Lambert W. See diode modeling.

#### Example 6

$\dot{y}(t) = ay(t-1)$

has characteristic equation $\lambda=a e^{-\lambda}$, leading to $\lambda=W_k(a)$ and $y(t)=e^{W_k(a)t}$, where $k$ is the branch index. If $a \ge e^{-1}$, only $W_0(a)$ need be considered.

#### Example 7

The Lambert W function has been recently (2013) shown to be the optimal solution for the required magnetic field of a Zeeman slower.[9]

#### Example 8

Granular and debris flow fronts and deposits, and the fronts of viscous fluids in natural events and in the laboratory experiments can be described by using the Lambert–Euler omega function as follows:

$H(x)= 1 + W[(H(0) -1) \exp((H(0)-1)-\frac{x}{L})],$

where H(x) is the debris flow height, x is the channel downstream position, L is the unified model parameter consisting of several physical and geometrical parameters of the flow, flow height and the hydraulic pressure gradient.

#### Example 9

The Lambert W function was employed in the field of Neuroimaging for linking cerebral blood flow and oxygen consumption changes within a brain voxel, to the corresponding Blood Oxygenation Level Dependent (BOLD) signal.[10]

#### Example 10

The Lambert W function was employed in the field of Chemical Engineering for modelling the porous electrode film thickness in a glassy carbon based supercapacitor for electrochemical energy storage. The Lambert "W" function turned out to be the exact solution for a gas phase thermal activation process where growth of carbon film and combustion of the same film compete with each other.[11][12]

#### Example 11

The Lambert W function was employed in the field of epitaxial film growth for the determination of the critical dislocation onset film thickness. This is the calculated thickness of an epitaxial film, where due to thermodynamic principles the film will develop crystallographic dislocations in order to minimise the elastic energy stored in the films. Prior to application of Lambert "W" for this problem, the critical thickness had to be determined via solving an implicit equation. Lambert "W" turns it in an explicit equation for analytical handling with ease.[13]

#### Example 12

The Lambert W function has been employed in the field of fluid flow in porous media to model the tilt of an interface separating two gravitationally segregated fluids in a homogeneus tilted porous bed of constant dip and thickness where the heavier fluid, injected at the bottom end, displaces the lighter fluid that is produced at the same rate from the top end. The principal branch of the solution corresponds to stable displacements while the -1 branch applies if the displacement is unstable with the heavier fluid running underneath the ligther fluid.[14]

#### Example 13

The equation (linked with the generating functions of Bernoulli numbers and Todd genus):

$Y = \frac{X}{1-e^X}$

can be solved by means of the two real branches $W_0$ and $W_{-1}$:

$X(Y) = W_{-1}( Y e^Y) - W_0( Y e^Y) = Y - W_0( Y e^Y) \text{for }Y < -1.$
$X(Y) = W_0( Y e^Y) - W_{-1}( Y e^Y) = Y - W_{-1}(Y e^Y) \text{for }-1 < Y < 0.$

This application shows in evidence that the branch difference of the W function can be employed in order to solve other trascendental equations.

## Generalizations

The standard Lambert W function expresses exact solutions to transcendental algebraic equations (in x) of the form:

$e^{-c x} = a_o (x-r) ~~\quad\qquad\qquad\qquad\qquad(1)$

where a0, c and r are real constants. The solution is $x = r + \frac{1}{c} W\!\left( \frac{c\,e^{-c r}}{a_o } \right)\,$. Generalizations of the Lambert W function[15][16][17]include:

$e^{-c x} = a_o (x-r_1 ) (x-r_2 ) ~~\qquad\qquad(2)$
and where r1 and r2 are real distinct constants, the roots of the quadratic polynomial. Here, the solution is a function has a single argument x but the terms like ri and ao are parameters of that function. In this respect, the generalization resembles the hypergeometric function and the Meijer G-function but it belongs to a different class of functions. When r1 = r2, both sides of (2) can be factored and reduced to (1) and thus the solution reduces to that of the standard W function. Eq. (2) expresses the equation governing the dilaton field, from which is derived the metric of the R=T or lineal two-body gravity problem in 1+1 dimensions (one spatial dimension and one time dimension) for the case of unequal (rest) masses, as well as, the eigenenergies of the quantum-mechanical double-well Dirac delta function model for unequal charges in one dimension.
• Analytical solutions of the eigenenergies of a special case of the quantum mechanical three-body problem, namely the (three-dimensional) hydrogen molecule-ion.[19] Here the right-hand-side of (1) (or (2)) is now a ratio of infinite order polynomials in x:
$e^{-c x} = a_o \frac{\displaystyle \prod_{i=1}^{\infty} (x-r_i )}{\displaystyle \prod_{i=1}^{\infty} (x-s_i)} \qquad \qquad\qquad(3)$
where ri and si are distinct real constants and x is a function of the eigenenergy and the internuclear distance R. Eq. (3) with its specialized cases expressed in (1) and (2) is related to a large class of delay differential equations.

Applications of the Lambert "W" function in fundamental physical problems are not exhausted even for the standard case expressed in (1) as seen recently in the area of atomic, molecular, and optical physics.[20]

## Numerical evaluation

The W function may be approximated using Newton's method, with successive approximations to $w=W(z)$ (so $z=we^w$) being

$w_{j+1}=w_j-\frac{w_j e^{w_j}-z}{e^{w_j}+w_j e^{w_j}}.$

The W function may also be approximated using Halley's method,

$w_{j+1}=w_j-\frac{w_j e^{w_j}-z}{e^{w_j}(w_j+1)-\frac{(w_j+2)(w_je^{w_j}-z)} {2w_j+2}}$

given in Corless et al. to compute W.

## Software

The LambertW function is implemented as LambertW in Maple, lambertw in GP (and glambertW in PARI), lambertw in MATLAB,[21] also lambertw in octave with the 'specfun' package, as lambert_w in Maxima,[22] as ProductLog (with a silent alias LambertW) in Mathematica,[23] and as gsl_sf_lambert_W0 and gsl_sf_lambert_Wm1 functions in special functions section of the GNU Scientific Library - GSL.

## Notes

1. ^ Chow, Timothy Y. (1999), "What is a closed-form number?", American Mathematical Monthly 106 (5): 440–448, doi:10.2307/2589148, MR 1699262.
2. ^ a b 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: 329–359. doi:10.1007/BF02124750.
3. ^ Lambert JH, "Observationes variae in mathesin puram", Acta Helveticae physico-mathematico-anatomico-botanico-medica, Band III, 128–168, 1758 (facsimile)
4. ^ Euler, L. "De serie Lambertina Plurimisque eius insignibus proprietatibus." Acta Acad. Scient. Petropol. 2, 29–51, 1783. Reprinted in Euler, L. Opera Omnia, Series Prima, Vol. 6: Commentationes Algebraicae. Leipzig, Germany: Teubner, pp. 350–369, 1921. (facsimile)
5. ^ a b Corless, R. M.; Gonnet, G. H.; Hare, D. E. G.; Jeffrey, D. J. (1993). "Lambert's W function in Maple". The Maple Technical Newsletter (MapleTech) 9: 12–22.
6. ^ Approximation of the Lambert W function and the hyperpower function, Hoorfar, Abdolhossein; Hassani, Mehdi.
7. ^ http://functions.wolfram.com/ElementaryFunctions/ProductLog/17/01/0001/
8. ^ http://mathworld.wolfram.com/LambertW-Function.html
9. ^ B Ohayon., G Ron. (2013). "New approaches in designing a Zeeman Slower". Journal of Instrumentation 8 (02): P02016. doi:10.1088/1748-0221/8/02/P02016.
10. ^ Sotero, Roberto C.; Iturria-Medina, Yasser (2011). "From Blood oxygenation level dependent (BOLD) signals to brain temperature maps". Bull Math Biol 73 (11): 2731–47. doi:10.1007/s11538-011-9645-5. PMID 21409512.
11. ^ Braun, Artur; Wokaun, Alexander; Hermanns, Heinz-Guenter (2003). "Analytical Solution to a Growth Problem with Two Moving Boundaries". Appl Math Model 27 (1): 47–52. doi:10.1016/S0307-904X(02)00085-9.
12. ^ Braun, Artur; Baertsch, Martin; Schnyder, Bernhard; Koetz, Ruediger (2000). "A Model for the film growth in samples with two moving boundaries - An Application and Extension of the Unreacted-Core Model.". Chem Eng Sci 55 (22): 5273–5282. doi:10.1016/S0009-2509(00)00143-3.
13. ^ Braun, Artur; Briggs, Keith M.; Boeni, Peter (2003). "Analytical solution to Matthews’ and Blakeslee's critical dislocation formation thickness of epitaxially grown thin films". J Cryst Growth 241 (1/2): 231–234. Bibcode:2002JCrGr.241..231B. doi:10.1016/S0022-0248(02)00941-7.
14. ^ Colla, Pietro (2014). "A New Analytical Method for the Motion of a Two-Phase Interface in a Tilted Porous Medium". PROCEEDINGS,Thirty-Eighth Workshop on Geothermal Reservoir Engineering,Stanford University. SGP-TR-202.([1])
15. ^ Scott, T. C.; Mann, R. B.; Martinez Ii, Roberto E. (2006). "General Relativity and Quantum Mechanics: Towards a Generalization of the Lambert W Function". AAECC (Applicable Algebra in Engineering, Communication and Computing) 17 (1): 41–47. arXiv:math-ph/0607011. doi:10.1007/s00200-006-0196-1.
16. ^ Scott, T. C.; Fee, G.; Grotendorst, J. (2013). "Asymptotic series of Generalized Lambert W Function". SIGSAM (ACM Special Interest Group in Symbolic and Algebraic Manipulation) 47 (185): 75–83.
17. ^ Scott, T. C.; Fee, G.; Grotendorst, J.; Zhang, W.Z. (2014). "Numerics of the Generalized Lambert W Function". SIGSAM 48 (188): 42–56.
18. ^ Farrugia, P. S.; Mann, R. B.; Scott, T. C. (2007). "N-body Gravity and the Schrödinger Equation". Class. Quantum Grav. 24 (18): 4647–4659. arXiv:gr-qc/0611144. doi:10.1088/0264-9381/24/18/006.
19. ^ Scott, T. C.; Aubert-Frécon, M.; Grotendorst, J. (2006). "New Approach for the Electronic Energies of the Hydrogen Molecular Ion". Chem. Phys. 324 (2–3): 323–338. arXiv:physics/0607081. doi:10.1016/j.chemphys.2005.10.031.
20. ^ Scott, T. C.; Lüchow, A.; Bressanini, D.; Morgan, J. D. III (2007). "The Nodal Surfaces of Helium Atom Eigenfunctions". Phys. Rev. A 75 (6): 060101. doi:10.1103/PhysRevA.75.060101.
21. ^ lambertw - MATLAB
22. ^ Maxima, a Computer Algebra System
23. ^ ProductLog at WolframAlpha