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.
Reference Issues/PRs
What does this implement/fix? Explain your changes.
Summary of Fixes to MSM Implementation
This PR addresses a bug in dependent MSM implementations and cleans up some of the code.
1. Dependent MSM “in-between” cost threshold (more significant)
The cost function for dependent MSM was incorrectly using
diameter / 2as the threshold for determining whether a point lies inside the hypersphere defined by two others.This threshold is correct when using Euclidean distance, but our implementation uses squared Euclidean distance.
When using squared distances, the correct condition is:
Therefore, the denominator must be
4, not2.The implementation has now been updated to divide by
4, ensuring correctness relative to the published definition of dependent MSM.Does your contribution introduce a new dependency? If yes, which one?
Any other comments?
PR checklist
For all contributions
For new estimators and functions
__maintainer__at the top of relevant files and want to be contacted regarding its maintenance. Unmaintained files may be removed. This is for the full file, and you should not add yourself if you are just making minor changes or do not want to help maintain its contents.For developers with write access