Computational methods for phase retrieval