Fast Algorithms for Long-Range Wave Propagation over Complex Terrain