Fast multipole algorithm for wave diffraction/radiation problems and its application to VLFS in variable water depth and topography