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

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

The integrate method for all three double-exponential quadratures supports
*tolerance* argument that acts as the termination condition
for integration.

The tolerance is met when two subsequent estimates of the integral have absolute
error less than `tolerance*L1`

.

It is highly recommended that the tolerance be left at the default value
of √ε, or something similar. Since double exponential quadrature converges
exponentially fast for functions in Hardy spaces, then once the routine has
**proved** that the error is ~√ε, then the error
should in fact be ~ε.

If you request that the error be ~ε, this tolerance might never be achieved (as the summation is not stabilized ala Kahan), and the routine will simply flounder, dividing the interval in half in order to increase the precision of the integrand, only to be thwarted by floating point roundoff.

If for some reason, the default value doesn't quite achieve full precision,
then you could try something a little smaller such as √ε/4 or ε^{2/3}. However,
more likely, you need to check that your function to be integrated is able
to return accurate values, and that there are no other issues with your integration
scheme.