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.
The
deepcopy
function is notorious for its bad performance in many cases. This pull request implements a method of thecopy
function forPartition
to avoid calling thedeepcopy
function. The following example shows an extreme case to speed up initialization of a large tree:Internal constructors of discrete partition types are moved out of the
struct
scopes because it eliminates the default constructor, which is needed to make the genericcopy
method work for all partition types.NOTE: There are more
deepcopy
calls that can be eliminated, but I want to keep each pull request as small as possible. Follow-up pull requests will eliminate moredeepcopy
s.