li

constexpr Complex li(const Complex &z) noexcept

Evaluates the logarithmic integral [1] for a complex input.

Parameters

const Complex &z

A complex number.

Returns

type Complex

A complex number.

The logarithmic integral is defined as:

\[\DeclareMathOperator\li{li} \li(z) = \int_{0}^{z}\frac{dt}{\ln t}\]

However, \(1/\ln(t)\) has a singularity at \(t = 1\). This may be avoided by using the offset logarithmic integral, defined as:

\[\DeclareMathOperator\Li{Li} \DeclareMathOperator\li{li} \Li(z) = \int_{2}^{z}\frac{dt}{\ln t} = \li(z) - \li(2)\]

And it thereby follows that:

\[\DeclareMathOperator\Li{Li} \DeclareMathOperator\li{li} \li(z) = \Li(z) - \li(2)\]

Example

Complex z = 1.0 + 1_j;
std::cout << li(z) << "\n";

Output:

0.613912 + 2.05958j

References