-
Notifications
You must be signed in to change notification settings - Fork 5
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
Implement Indexing for RabitQ #84
Conversation
ndarray-rand
ndarray-linalg
991241c
to
aaee3b7
Compare
ndarray-linalg
212554d
to
8920546
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Just one high level question, why Array1
and Array2
instead of Vec
and Vec<Vec>
? Asking just for the sake of consistency with other parts of the code base.
@tyb0807 The querying phase needs to do some matrix multiplication and vector dot products (see #32 (comment)). So, I store these as ndarray objects. That being said, I'm not set on the data type at the moment. Maybe |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you'll need to use the normalized vector
Updated the code to use normalized vectors instead. |
cb570b7
to
4b692dc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Notes
Implement the Indexing Phase for RabitQ.
Paper: https://arxiv.org/abs/2405.12497
My summary of the indexing phase: #32 (comment)
Please note that the current implementation is very inefficient since I don't have much experience writing high performance code, but it should at least be correct.