I want to use a railroad diagram to show the sequence of steps an algorithm takes:
I want to say we start with "SCC scheduling". It then repeatedly calls "chunk scheduling". Then "chunk scheduling" repeatedly calls "group scheduling". When "group scheduling" finishes we go back up to "chunk scheduling". And then we back up one more step to "SCC scheduling" and repeat and if there is no more SCC then we go end state.
Algorithm: foreach SCC run SCC scheduling SCC scheduling: foreach chunk inside SCC run chunk scheduling Group scheduling: foreach Group inside chunk run group scheduling
I have been thinking about this for a long time and I am struggling.