  Singular and oscillatory functions feature in numerous applications. The
high-accuracy approximation of such functions shall greatly help us develop
high-order methods for solving applied mathematics problems. This paper
demonstrates that hyperinterpolation, a discrete projection method with
coefficients obtained by evaluating the $L^2$ orthogonal projection
coefficients using some numerical integration methods, may be inefficient for
approximating singular and oscillatory functions. A relatively large amount of
numerical integration points are necessary for satisfactory accuracy. Moreover,
in the spirit of product-integration, we propose an efficient modification of
hyperinterpolation for such approximation. The proposed approximation scheme,
called efficient hyperinterpolation, achieves satisfactory accuracy with fewer
numerical integration points than the original scheme. The implementation of
the new approximation scheme is relatively easy. Theorems are also given to
explain the outperformance of efficient hyperinterpolation over the original
scheme in such approximation, with the functions assumed to belong to
$L^1(\Omega)$, $L^2(\Omega)$, and $\mathcal{C}(\Omega)$ spaces, respectively.
These theorems, as well as numerical experiments on the interval and the
sphere, show that efficient hyperinterpolation has better accuracy in such
approximation than the original one when the amount of numerical integration
points is limited.
