- Nothing yet
- Add maven profile for release #43
- Remove some more warnings reported by JDK 21.
#42
- Removed
Serializable
interface fromPhFilter
- Removed
- Fixed ClassCastException HD tree. #40
- Proper kNN implementation with MinMaxHeaps #33
- Nothing
- Fixed scope of JUnit dependency. #30
- Fix new API for
PhQUeryF
/PhEntentF
. #29
- Fix new API for
PhEntryF
/PhEntryDistF
. #28
-
CHANGELOG.md #26
-
Added new multimap: PhTreeMultiMapF2. #23
-
Added CI with GitHub actions. #25
-
Updated maven dependencies. #24
-
Tiny optimization: Change (value >=0.0) to (value >=0)
-
Added tests for IEEE conversion
- (TZ) Added convenience API for multi-map (PH-Tree with duplicates): PhTreeMultiMapF.
- (TZ for Improbable) Added missing public API for filtered queries: PhTree.query(min, max, filter)
- (TZ for Improbable) Fixed bug in compute()/computeIfPresent() in V13
- (TZ for Improbable) Added missing compute functions fot PhTreeF, PhTreeSolid and PhTreeSolidF
- (TZ for Improbable) Minor cleanup
- (TZ for Improbable) Added Java 8 Map API to V13 and V16 (putIfAbsent(), compute(), ...) Only compute() and computeIfPresent() are currently optimized. The other methods use a naive implementation.
- (TZ for Improbable) Several minor speed improvements to V13 and V16, including reduced garbage creation.
- (TZ for Improbable) Some cleanup and javadoc updates
- (TZ for Improbable) Improvements for running multiple PH-Trees concurrently:
- removed AtomicInt entry counter
- Changed Object/array pools to be unsynchronized and local (to the tree) instead of global and synchronized.
- (TZ) Fixed NullPointerException in getStats()
This release contains some minor fixes and documentation updates.
There are three new versions of the PH-tree:
- v13 has a new much better kNN query then previous versions, but has otherwise only small improvements over the previous v11. v13 is the best version for less than 8 dimensions.
- v16 and v16HD are reimplementations of the PH-Tree. The basic concept is still the same, except that the internal
structure of nodes is now a B+Tree instead of the previous AHC/LHC nodes. Advantages:
- Much simpler code.
- Insertion/removal performance scales much better with dimensionality.
- The v16HD version supports theoretically up to 2^31 dimensions.
- Downside: memory requirements have increased, they are now on par with R*Trees or kD-trees.
- Internal B+Tree structure (with configurable page sizes) makes it more suitable for disk based storage.
- API Contract Change: The PH-Tree now stores keys (long[]/double[]) internally. Modifying them after storing them in the tree will make the tree invalid.
- The
PhTree
factory class will automatically choose one of v13, v16 and v16HD, depending on the number of dimensions.
- (TZ) Fixed bug PhTreeF kNN: distance was not returned.
- (TZ) Fixed bug in CritBit (used by old PH-Tree), see tzaeschke/tinspin-indexes#7
- (TZ) Update: PhTreeRevisited.pdf v1.2
- (TZ) Updated API classes to improve extensibility
- (TZ) Fixed bug in kNN for rectangles with 0 distance
- (TZ) Added kNN queries support for rectangle data
- Added support for kNN nearest neighbor queries for rectangle data.
- More API updates (javadoc and added missing methods).
- (TZ) Added v11, lots of API changes
- (TZ) Added kNN-queries
- (TZ) Added (spherical) range queries
- (TZ) Numerous fixes, improvements, clean-up
- (TZ) Some API changes getDIM() -> getDim(), ...
- (TZ) Added PhTreeRevisited.pdf
- (TZ) Fixed possible NPE (in Critbit64COW) when using trees with k>6
- (TZ) Fixed memory waste in NodeEntries
- (TZ) Proper NoGC iterator for avoiding any object creation (+bug fix)
- (TZ) Changed iterator recursion to loops
- (TZ) Removed some old iterators and NV usage
- (TZ) PhQuery interface added. This allows resetting & reusing of query iterators.
- (TZ) Smaller NodeEntries + Avoid NodeEntry creation in some situations
- (TZ) Added experimental iterator that does not create new long[]...
- Added clear() method
- Fixed bug that prevented internal iterators from being reused (-> performance)
- Fixed another bug that caused queryAll to skip some matching keys. See TestIndexQueries.testBug64Neg_2()
- Fixed bug that caused queryAll to skip some matching keys.
- (TZ) Fixed bug that prevented internal iterators from being reused
- (TZ) Fixed another bug that caused queryAll to skip some matching keys. See TestIndexQueries.testBug64Neg_2()
- (TZ) Fixed bug that caused queryAll to skip some matching keys.
- API change! Refactored the API for simplification and removal of old non-value API.
- Significantly reduced object creation during insert/update/delete/query. This should reduce GC problems.
- New queryAll() function that returns a list of results instead of an iterator. This should be faster especially for small expected result sets.