Source: https://math.la.asu.edu/~checkman/MatrixOpTI.pdf