Fast Monte Carlo Algorithms for Matrices II: Computing a Low-Rank Approximation to a Matrix | Synapse