there are various threads discussing this e.g. (https://www.edaboard.com/threads/200298/).
I would be careful though. Sullivan's code is riddled with bugs. So trying to understand how it
is supposed to work and then writing code from scratch may be faster in the long run.