Source: http://people.cst.cmich.edu/yelam1k/asee/proceedings/2016/student_regular_papers/2016_asee_ncs_paper_58.pdf