Added Moore-Penrose pseudo-inverse