-
Notifications
You must be signed in to change notification settings - Fork 61
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
introduce SortedDataSelection class #144
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @bmschmidt and the rest of your teammates on Graphite |
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.
I can follow everything except the QuickSelect. I was confused about what comparisonGetter/sortOperation does.
b59865f
to
6fda8c1
Compare
3f1fa61
to
00ccb8b
Compare
Merge activity
|
6fda8c1
to
3c779e2
Compare
00ccb8b
to
39c3fa1
Compare
let t; | ||
indices: T, | ||
): Vector<Dictionary<Utf8, ArrayToArrayMap[T]>> { | ||
let t: ArrayToArrayMap[T]; | ||
|
||
if (indices[Symbol.toStringTag] === `Int8Array`) { |
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.
Use instanceof
for type checking instead of Symbol.toStringTag
.
if (indices[Symbol.toStringTag] === `Int8Array`) { | |
if (indices instanceof Int8Array) { |
39c3fa1
to
cb0bce7
Compare
introduce SortedDataSelection class using a new pivot strategy
SortedDataSelection uses a lot more memory than a selection but enables getting the k-highest element quickly (roughly O(log N) time).
I went back a bunch with the fancy new GPT-4 chain of thought to make this.
Includes tests.
The next PR in this stack will allow faster in-order iteration over a list using a minheap structure.
feat: add
SortedDataSelection
class for efficient data sorting and selectionSummary:
Introduce
SortedDataSelection
class for efficient data sorting and selection with tests and future enhancements.Key points:
SortedDataSelection
class for efficient k-highest element retrieval using a pivot strategy.DataSelection
to support new sorting functionality.SelectionTile
class to manage tile-specific sorting data.deepscatter.ts
to includeSortedDataSelection
.SortedDataSelection
indataset.spec.js
.publish_docs_if_stable.sh
script for documentation publishing.utilityFunctions.ts
.Generated with ❤️ by ellipsis.dev