optimize the CircularAverageMagnitudeDifference method #620
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 is very similar to #619 but checks 1/16 instead of 1/32 of the (4096) samples. Especially when using six players, this gave me a significant improvement in performance.
The
16
was established mostly by a bit of trial and error but is ultimately just some arbitrary value.WARNING: This isn't as tested as the optimization in 619. Unlike 619, this one also actually influences what ultimately gets detected. It could be that this has more impact on very low or very high frequencies which I cannot reach. If that is the case however, it's fairly trivial to split out how many samples it uses for every entry in the
Correlation
array. Perhaps it only really needs more samples for very high frequencies, but this gets looped so often, it's worth having the code do as little as possible.