FlowTopo animations

Full-size versions of the clips in the README. Play them here, or use the fullscreen button in the player.

Orderings

Topological sort from the sources — ordering="topo"

A cell is appended once all its donors are done.

Breadth-first from the pit — ordering="bfs"

Cells in order of hop count from the pit.

Depth-first from the pit — ordering="dfs"

One tributary subtree at a time.

Layerings

As soon as possible — layering="asap"

Every cell in the earliest layer its donors allow.

Conflict-free downstream — layering="cfds"

As soon as possible, plus one rule: no two cells in a layer share a receiver.

As late as possible — layering="alap"

Every cell in the latest layer possible.

Propagation manners

Pull

Each receiver reads its donors; needs the upstream table.

Atomic push

Donors write through atomics; correct, but float sums are not reproducible.

Push

Donors write directly; deterministic, no locks; requires the conflict-free layering.