# Analytic combinatorics

Analytic combinatorics uses techniques from complex analysis to solve problems in enumerative combinatorics, specifically to find asymptotic estimates for the coefficients of generating functions.

## History

One of the earliest uses of analytic techniques for an enumeration problem came from Srinivasa Ramanujan and G. H. Hardy's work on integer partitions, starting in 1918, first using a Tauberian theorem and later the circle method.
Walter Hayman's 1956 paper "A Generalisation of Stirling's Formula" is considered one of the earliest examples of the saddle-point method.
In 1990, Philippe Flajolet and Andrew Odlyzko developed the theory of singularity analysis.
In 2009, Philippe Flajolet and Robert Sedgewick wrote the book Analytic Combinatorics, which presents analytic combinatorics with their viewpoint and notation.
Some of the earliest work on multivariate generating functions started in the 1970s using probabilistic methods.
Development of further multivariate techniques started in the early 2000s.

## Techniques
### Meromorphic functions

If $h(z)={\frac {f(z)}{g(z)}}$ is a meromorphic function and $a$ is its pole closest to the origin with order $m$, then
    $[z^{n}]h(z)\sim {\frac {(-1)^{m}mf(a)}{a^{m}g^{(m)}(a)}}\left({\frac {1}{a}}\right)^{n}n^{m-1}\quad$ as $n\to \infty$

### Tauberian theorem

If
    $f(z)\sim {\frac {1}{(1-z)^{\sigma }}}L({\frac {1}{1-z}})\quad$ as $z\to 1$
where $\sigma >0$ and $L$ is a slowly varying function, then
    $[z^{n}]f(z)\sim {\frac {n^{\sigma -1}}{\Gamma (\sigma )}}L(n)\quad$ as $n\to \infty$
See also the Hardy–Littlewood Tauberian theorem.

### Circle Method

For generating functions with logarithms or roots, which have branch singularities.

#### Darboux's method

If we have a function $(1-z)^{\beta }f(z)$ where $\beta \notin \{0,1,2,\ldots \}$ and $f(z)$ has a radius of convergence greater than $1$ and a Taylor expansion near 1 of $\sum _{j\geq 0}f_{j}(1-z)^{j}$, then
    $[z^{n}](1-z)^{\beta }f(z)=\sum _{j=0}^{m}f_{j}{\frac {n^{-\beta -j-1}}{\Gamma (-\beta -j)}}+O(n^{-m-\beta -2})$
See Szegő (1975) for a similar theorem dealing with multiple singularities.

#### Singularity analysis

If $f(z)$ has a singularity at $\zeta$ and
    $f(z)\sim \left(1-{\frac {z}{\zeta }}\right)^{\alpha }\left({\frac {1}{\frac {z}{\zeta }}}\log {\frac {1}{1-{\frac {z}{\zeta }}}}\right)^{\gamma }\left({\frac {1}{\frac {z}{\zeta }}}\log \left({\frac {1}{\frac {z}{\zeta }}}\log {\frac {1}{1-{\frac {z}{\zeta }}}}\right)\right)^{\delta }\quad$ as $z\to \zeta$
where $\alpha \notin \{0,1,2,\cdots \},\gamma ,\delta \notin \{1,2,\cdots \}$ then
    $[z^{n}]f(z)\sim \zeta ^{-n}{\frac {n^{-\alpha -1}}{\Gamma (-\alpha )}}(\log n)^{\gamma }(\log \log n)^{\delta }\quad$ as $n\to \infty$

### Saddle-point method

For generating functions including entire functions which have no singularities.
Intuitively, the biggest contribution to the contour integral is around the saddle point and estimating near the saddle-point gives us an estimate for the whole contour.
If $F(z)$ is an admissible function, then
    $[z^{n}]F(z)\sim {\frac {F(\zeta )}{\zeta ^{n+1}{\sqrt {2\pi f^{''}(\zeta )}}}}\quad$ as $n\to \infty$
where $F^{'}(\zeta )=0$.
See also the method of steepest descent.