Source: https://www.columbia.edu/~cs2035/courses/ieor3608.F05/dual-simplex.pdf