Speed up bar states bounds calculation of entropies #120
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.
This PR speeds up the calculation of bounds for mathematical and specific entropy.
Before, we looped through every node, look at the bar states on the right, top, left, bottom and calculated the entropy every time. This resulted in doubled entropy calculation.
Now, we just look at the bar states on the left and bottom, calculate the entropy and save it for the node itself and the respective neighbor. In the end, we add the calculation at the interface/boundary far right and top.
The new implementation only takes about 70% of the time the old one took.
Before:
calc_variable_bounds! 4.34k 992ms 20.4% 229μs 577KiB 19.9% 136B
Now:
calc_variable_bounds! 4.34k 704ms 15.5% 162μs 577KiB 19.9% 136B
This is not necessary for the calculation of the bounds for the local limiting, since there we can directly use the bar states without further calculations.