Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V0.2.0 #13

Merged
merged 10 commits into from
Apr 16, 2024
Merged

V0.2.0 #13

merged 10 commits into from
Apr 16, 2024

Conversation

rjanvier
Copy link
Contributor

@rjanvier rjanvier commented Apr 16, 2024

  • Improve 'selected' method to be closer to Jakteristics: no preallocation of the whole result set. The result set it is grown when needed. It results in a less efficient method but it should be even more memory friendly.
  • Optimize 'selected' method: use a dynamic scheduler, sort NN by distance when needed by a partial_sort.
  • PCA computation use Eigen::SelfAdjointEigenSolver, since the covar is symetric. It is slighty faster (complexity is $9n^3$ instead of $25n^3$ where n is the size of the matrix). We now use transpose instead of adjoint (adjoint is for complex matrix) in the covariance computation.
  • Misc. formatting and typo corrections

according to the doc it is meant to be optimized for low dimension (2-3). No significative changes in synthetic benchmarks.
covariance matrix is selfAdjoint. The solver is slighty faster and have a better precision.
- sort only when num_found > max_knn and use partial sort in this case.

- Do not use static scheduler iterations are not guaranteed to be balanced (different NN size)
@drprojects drprojects merged commit bca7f18 into drprojects:main Apr 16, 2024
15 checks passed
@drprojects
Copy link
Owner

Thanks @rjanvier, approved !

@rjanvier rjanvier deleted the v0.2.0 branch April 16, 2024 21:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants