Computational optimal transport