Low-Rank Matrix Completion by Riemannian Optimization | Synapse