Package net.algart.math
Class IRangeFinder
java.lang.Object
net.algart.math.IRangeFinder
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()compact()intfindContaining(double point, int[] resultIndexes) voidfindContaining(double point, IntConsumer indexConsumer) voidfindContaining(double point, IRangeConsumer rangeConsumer) intfindContaining(int point, int[] resultIndexes) voidfindContaining(int point, IntConsumer indexConsumer) voidfindContaining(int point, IRangeConsumer rangeConsumer) intfindIntersecting(int min, int max, int[] resultIndexes) voidfindIntersecting(int min, int max, IntConsumer indexConsumer) voidfindIntersecting(int min, int max, IRangeConsumer rangeConsumer) static IRangeFinderstatic IRangeFinderstatic IRangeFindergetInstance(int[] left, int[] right) static IRangeFindergetInstance(IntUnaryOperator left, IntUnaryOperator right, int numberOfRanges) final booleanindexActual(int k) final IntUnaryOperatorleft()final intleft(int k) final intfinal IntUnaryOperatorright()final intright(int k) final IRangeFinderfinal IRangeFindersetIndexActual(IntPredicate indexActual) Allows to remove some ranges from finding, for example, if they were processed by some way and already not necessary.final IRangeFindersetIndexedRanges(int[] allLeft, int[] allRight, int[] indexes, int numberOfRanges) final IRangeFindersetRanges(int[] left, int[] right) final IRangeFindersetRanges(IntUnaryOperator left, IntUnaryOperator right, int numberOfRanges) toString()static intunpackHigh(long packed) static intunpackLow(long packed)
-
Method Details
-
getEmptyInstance
-
getEmptyUnoptimizedInstance
-
getInstance
public static IRangeFinder getInstance(IntUnaryOperator left, IntUnaryOperator right, int numberOfRanges) -
getInstance
-
left
-
right
-
left
public final int left(int k) -
right
public final int right(int k) -
numberOfRanges
public final int numberOfRanges() -
setRanges
public final IRangeFinder setRanges(IntUnaryOperator left, IntUnaryOperator right, int numberOfRanges) -
setRanges
-
setIndexedRanges
public final IRangeFinder setIndexedRanges(int[] allLeft, int[] allRight, int[] indexes, int numberOfRanges) -
setIndexActual
Allows to remove some ranges from finding, for example, if they were processed by some way and already not necessary. For such indexes, indexActual.test(index) should return false. By default, all indexes are actual (built-in indexActual always returns true).Note that this method should be very quick/ If it requires essential time, it is better to check actuality in the high-level processing.
- Parameters:
indexActual- whether a range with the given index is necessary to be returned- Returns:
- a reference to this object.
-
setAllIndexesActual
-
indexActual
public final boolean indexActual(int k) -
compact
-
findContaining
-
findContaining
-
findContaining
public int findContaining(int point, int[] resultIndexes) -
findContaining
-
findContaining
-
findContaining
public int findContaining(double point, int[] resultIndexes) -
findIntersecting
-
findIntersecting
-
findIntersecting
public int findIntersecting(int min, int max, int[] resultIndexes) -
clear
public void clear() -
toString
-
unpackHigh
public static int unpackHigh(long packed) -
unpackLow
public static int unpackLow(long packed)
-