...one of the most highly
regarded and expertly designed C++ library projects in the
world.

— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards

#include <boost/math/special_functions/hypergeometric_2F0.hpp> namespace boost { namespace math { template <class T1, class T2, class T3>calculated-result-typehypergeometric_2F0(T1 a1, T2 a2, T3 z); template <class T1, class T2, class T3, class Policy>calculated-result-typehypergeometric_2F0(T1 a1, T2 a2, T3 z, const Policy&); }}

The function `hypergeometric_2F0`

returns the result of

The return type of these functions is computed using the *result
type calculation rules* when `T1`

and `T2`

are different types.

The final Policy argument is optional and can be used to control the behaviour of the function: how it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

The functions return the result of domain_error
whenever the result is undefined or complex. The valid domain for this function
occurs only when one of `a1`

or `a2`

is a negative integer:
ie the polynomial case.

When ```
a1 ==
a2 -
0.5
```

then the function is implemented
in terms of the Hermite polynomial:

When both `a1`

and `a2`

are integers then the function is implemented
in terms of the associated-Laguerre polynomial:

If the defining series is divergent, we use the continued fraction

Otherwise we use the defining series.