speedup add_simplices_from #223
Merged
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.
add_simplices_fromis slow, see #221. Profiling showed about 90% of the time is spent in the line checking existence of the simplex:has_simplex()now access members throughS._edgerather thanS.edges.members(s)which is significantly faster (see #221 for timings).Here, adding 100 triangles seems about 10x faster:
The
add_simplices_fromcan probably be improved even more, by rewriting it it without recursion for example. I have written a version but not pushed it because the seped improvement seems negligible in my case (it might not be with larger simplices). Also, it modifies the method much more, so has a larger chance of new bugs. And it changes the order in which simplices are added, so tests would need to be udpated. I would start with this minimal update at first, and maybe use the other version for a second step.