-
Notifications
You must be signed in to change notification settings - Fork 24
/
TODO.txt
31 lines (29 loc) · 1.41 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Performance and Other
=====================
- Fix TODOs in RTree!!!
- Consider replacing all PriorityQueue with Min(Max)Heaps
- qt2: what is going on with subs vs values in QNode? Why can subs contain values?
- RTree: compare finNodeEntry vs findNodeEntries -> benchmark and decide
- QueryIterator nextReuse()
- MinMaxHeap: leave entries in array -> reuse/pool
- MinHeap: n-ary heap
- kNN filter should take PointEntryDist i.o PointEntry
- Avoid or at least reuse ArrayList in AQueryIterator
- Copyright update
- Reformat everything??
CritBit
=======
- Remove Node.posFirstBit this should always be (parent.posDiff+1)
- Memory optimisation: Nodes should have 'long' instead of 'long[]' for infixes.
Infixes that cross 64bit boundaries can be stored in two separate nodes.
This would introduce a special case where a node may have only a single child
which contains a continuation of the infix -> 'null' would not indicate that value is 'null'
-> use NULL indicator object, see next point
- Memory optimisation: Merge children and subnodes into single field, -> saves
2*32bits per Node.
- Fix warnings in CritBit.x.checkMatchOrigKD()
- Fix warnings in CritBit.x.unsetBitAfterSplit()
- Why do Point queries scale much worse than kd-Tree? Because of merging???? O(k)
- Profile:
- Consider using table for maskDst in CritBit.x.unsetBitAfterSplit() / setBitAfterSplit()
--> Alternatively, consider operating on merged value?