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

1.0 road map #180

Open
1 of 13 tasks
KristofferC opened this issue Jun 17, 2024 · 5 comments
Open
1 of 13 tasks

1.0 road map #180

KristofferC opened this issue Jun 17, 2024 · 5 comments

Comments

@KristofferC
Copy link
Owner

KristofferC commented Jun 17, 2024

This was my very first package and looking at this with a set of more experienced eyes there are quite a few changes I want to make to APIs etc. Some of those will be somewhat breaking but I think it is worth it.

  • use ArrayOfArrays for return value to reduce the number of allocated arrays #167
  • Rethink the skip function. Right now it only takes a single index but it isn't really documented and it is unclear if this is the best API.
  • Remove DataFreeTree: I don't see any use of this in JuliaHub and I am not really satisfied with its implementation.
  • Ensure all public API is documented, nn lacking docstring #147
  • Test benchmarks and have them run on CI
  • Some public API for investigating the tree like bounding_box, isleaf etc?
  • Consider multithreading
  • Go through and triage open issues and PRs
  • Remove the sorting kwargs, users can just sort themselves.
  • Add knn! to be able to pass in a vector to be updated.
  • Consider if "vectorized" functions of knn and inrange are needed or if user can just write the loop themselves if they want. Would remove the need for use ArrayOfArrays for return value to reduce the number of allocated arrays #167.
  • Periodic versions of the trees?
  • Better docs?

More to come

@KristofferC
Copy link
Owner Author

CC some people that I know use this package: @juliohm, @fredrikekre

@aplavin
Copy link

aplavin commented Jul 8, 2024

Wonder if there are any plans for adding multidimensional inrange search?
Implementation is very short:
https://github.com/JuliaAPlavin/FlexiJoins.jl/blob/00000000ca2fe5eace0b881caa8d2258ca6154ee/src/nearestneighbors.jl#L32-L52
#150

@aplavin
Copy link

aplavin commented Jul 8, 2024

Also, what about supporting arbitrary types, at least for BallTree? Stuff like strings or even custom objects can be useful with distance searches.
JuliaAPlavin/FlexiJoins.jl#8

@KristofferC
Copy link
Owner Author

Wonder if there are any plans for adding multidimensional inrange search?

Sounds like a good idea!

@KristofferC
Copy link
Owner Author

Also, what about supporting arbitrary types, at least for BallTree?

I don't think that should be too hard, we would "just" have to relax some assumptions of what types are used for the data etc.

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

No branches or pull requests

2 participants