feat: Simpler convex checker, no longer requires &mut
#114
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ConvexChecker now uses the pre-computed node toposort to compute traverse the subgraph nodes and their causal future in order.
This should end up processing less nodes than the previous version, and let us avoid the temporary datastructure that required
&mut checker
all throughout the API.I added some simple benchmarks, but unfortunately they are not the best at showing the improvements in this refactor (we end up traversing most of the nodes anyway).
In more real tests on
tket2
I saw small improvements, but nothing to write home about.