Source: https://www.math.lsu.edu/~sengupta/7330f02/7330f02projops.pdf