Skip to content

Releases: jamarino/IntervalTree

v1.2.2

19 Sep 22:30
d2ee04e
Compare
Choose a tag to compare
  • Fixed issue with QuickIntervalTree where querying with a range - Query(low, high) - would cause an IndexOutOfRangeException for some lobsided trees. Thanks to @superoctave2 for reporting this issue!

v1.2.1

05 May 20:41
452cad4
Compare
Choose a tag to compare
  • Added validation to ensure intervals from is smaller or equal to to. Kudos to @felix-b!

v1.2.0

29 Apr 17:36
99c3c0b
Compare
Choose a tag to compare

Update to make licensing more clear.

v1.1.0

04 Mar 21:53
24a97a4
Compare
Choose a tag to compare
  • Added LinearIntervalTree
  • Added true parameterless constructors to all tree types
  • LightIntervalTree reworked for more efficient removes

v1.0.0

31 Jan 16:50
2d00267
Compare
Choose a tag to compare
  • Remove() methods implemented
  • XmlDocs hoisted to IIntervalTree interface
  • Query performance of LightIntervalTree improved by ~2-5% by rearranging and removing unnecessary key comparisons
  • Test and benchmark projects updated to net8, published package remains netstandard2.0

v0.9.0

04 Jan 18:56
d0d9156
Compare
Choose a tag to compare
  • Fixed potential integer overflow issue when querying trees with more than 1 billion intervals
  • Added recursion limits to prevent stack overflows when trees are misused without proper thread safety in concurrent scenarios
  • Added build locks to protect consumers who forget to RTFM thread safety section
  • Added Clear() method to allow reuse of allocated trees

v0.8.0

06 Aug 20:02
9f367ee
Compare
Choose a tag to compare

Build-methods made public
DocXml added for classes and most important methods
Added constructors with capacity hint for reduced allocations when approximate number of intervals is known ahead of time
Added methods for querying ranges

v0.7.0

18 Jul 21:47
3b78812
Compare
Choose a tag to compare

Query performance of LightIntervalTree improved by a further 15% in dense benchmarks, by switching to a naive linear scan of intervals when subtree size falls to just a handful of intervals.

v0.6.0

18 Jul 17:22
44d2b41
Compare
Choose a tag to compare

Query performance improved by 10-35% by replacing recursive query methods with allocation-free depth-first-search iterative implementation.

Note: netstandard2.0 now requires System.Memory for Span<>

v0.5.0

11 Jul 22:51
333a799
Compare
Choose a tag to compare

This release adds a type constraint on TKey, requiring TKey to implement IComparable. Adding this constraint has improved query performance by 20-30%, and seems reasonable as all your usual suspects: int, float, double, decimal etc all implement this interface.