add low-rank approximation