An Algorithm for Ennola's Second Theorem and Counting Smooth Numbers in Practice
Let $Ψ(x,y)$ count the number of positive integers $n\le x$ such that every prime divisor of $n$ is at most $y$. Given inputs $x$ and $y$, what is the best way to estimate $Ψ(x,y)$? We address this problem in three ways: with a new algorithm to estimate $Ψ(x,y)$, with a performance improvement to an established algorithm, and with empirically based advice on how to choose an algorithm to estimate $Ψ$ for the given inputs. Our new algorithm to estimate $Ψ(x,y)$ is based on Ennola's second theorem [Ennola69], which applies when $y< (\log x)^{3/4-ε}$ for $ε>0$. It takes $O(y^2/\log y)$ arithmetic operations of precomputation and $O(y\log y)$ operations per evaluation of $Ψ$. We show how to speed up Algorithm HT, which is based on the saddle-point method of Hildebrand and Tenenbaum [1986], by a factor proportional to $\log\log x$, by applying Newton's method in a new way. And finally we give our empirical advice based on five algorithms to compute estimates for $Ψ(x,y)$.The challenge here is that the boundaries of the ranges of applicability, as given in theorems, often include unknown constants or small values of $ε>0$, for example, that cannot be programmed directly.