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