...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_0F1.hpp> namespace boost { namespace math { template <class T1, class T2>calculated-result-typehypergeometric_0F1(T1 b, T2 z); template <class T1, class T2, class Policy>calculated-result-typehypergeometric_0F1(T1 b, T2 z, const Policy&); }} // namespaces

The function `hypergeometric_0F1`

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. This occurs only when `b`

is an integer <= 0.

The function is implemented via its defining series wherever convergent.

For a divergent series we use the continued fraction as long as the result is not too small:

and one of the Bessel function relations otherwise: