Source: https://www.eecis.udel.edu/~xli/publications/li2020gcode.pdf