Source: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2015/EECS-2015-5.pdf