https://www.math.ucla.edu/~laub/33a.2.12s/mppseudoinverse.pdf
https://www.math.ucla.edu/~laub/33a.2.12s/mppseudoinverse.pdf