Commit a56aaf5
committed
8.0.0
### LargeBPlusTree
- Self-balancing B+Tree for sorted key-value storage
- O(log n) insert, delete, and lookup operations
- Efficient range queries with in-order iteration
- Factory methods for ascending/descending order with struct comparers
### LargeKDTree
- High-performance KD-Tree for spatial indexing
- Implicit array layout (no pointer chasing)
- Allocation-free nearest neighbor and range queries
- Struct-based point accessors for JIT devirtualization
### LargeBKDTree
- Block-based KD-Tree variant for large point sets
- Optimized for range queries and bounding box searches
## Hash Collections (LargeSet, LargeDictionary)
- Replaced open addressing with **separate chaining**
- Index-based linking using `HashEntry<T>` struct (similar to .NET Dictionary)
- Free-list for efficient entry reuse after deletions
- Extend capacity **before** adding to avoid mid-operation rehashing
## Enumerator Optimizations
- New `LargeStorageEnumerator<T>` struct enumerator for LargeList
- New `LargeSpanEnumerator<T>` and `ReadOnlyLargeSpanEnumerator<T>`
- Direct chunk-by-chunk storage access instead of yield-based iteration
- `GetEnumerator()` now returns struct enumerator for foreach optimization
## Storage Optimizations
- `StorageGetRef`, `StorageGet`, `StorageSet`: Inline index calculation (removed `StorageGetIndex` call)
- `StorageSwap`: Direct index computation instead of 4 method calls
- New `GetStructEnumerator()` and `AsStructEnumerable()` extension methods
## Other Changes
- Removed unnecessary `[MethodImpl(AggressiveInlining)]` from yield-based methods
- Updated README with user-friendly descriptions
- Added PackageTags: BPlusTree, KDTree, BKDTree, SpatialIndex, RangeQuery, NearestNeighbor1 parent b86d4c7 commit a56aaf5
27 files changed
Lines changed: 9301 additions & 433 deletions
File tree
- LargeCollections.Test
- LargeCollections
- Interfaces
Large diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
224 | 224 | | |
225 | 225 | | |
226 | 226 | | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
227 | 233 | | |
228 | 234 | | |
229 | 235 | | |
| |||
0 commit comments