# An Algorithm for Ennola's Second Theorem and Counting Smooth Numbers in Practice

Let Ψ(x,y) count the number of positive integers n≤ 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(ylog 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 loglog 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.

READ FULL TEXT