Source: http://course.ece.cmu.edu/~ece739/2018-spring/lectures/18739-nicolas.pdf