Computing highly oscillatory integrals