Interval API¶
-
class
Interval
(low[, high[, lowInclude[, highInclude]]])¶ Arguments: - low (float) – leftmost endpoint of interval
- high (float) – rightmost endpoint of interval
- lowInclude (boolean) – low endpoint value included in intervaltrue means left-closedfalse means left-opentrue by default
- highInclude (boolean) – high endpoint value included in intervaltrue means right-closedfalse means right-openfalse by default
If only low is given, or if low == high, the interval is singular. In this case lowInclude and highInclude are both true.
If low is -Infinity, lowInclude is always true If high is Infinity, highInclude is always true
-
Interval.
low
¶ float: left endpoint value
-
Interval.
high
¶ float: right endpoint value
-
Interval.
lowInclude
¶ boolean: true if interval is left-closed
-
Interval.
highInclude
¶ boolean: true if interval is right-closed
-
Interval.
singular
¶ boolean: true if interval is singular
-
Interval.
finite
¶ boolean: true if both low and high are finite values
-
Interval.
length
¶ float: interval length (high-low)
-
Interval.
endpointLow
¶ endpoint: low endpoint [value, false, lowInclude, singular]
-
Interval.
endpointHigh
¶ endpoint: low endpoint [value, true, highInclude, singular]
-
Interval.
toString
()¶ Returns string: Human readable string
-
Interval.
covers_endpoint
(p)¶ Arguments: - p (number) – point
Returns boolean: True if point p is inside interval
Test if point p is inside interval.
See Interval Comparison.
let a = new Interval(4, 5) // [4,5) a.covers_endpoint(4.0) // true a.covers_endpoint(4.3) // true a.covers_endpoint(5.0) // false
-
Interval.
equals
(other)¶ Arguments: - other (Interval) – interval to compare with
Returns boolean: true if intervals are equal
See Interval Comparison.
-
Interval.
compare
(other)¶ Arguments: - other (Interval) – interval to compare with
Returns int: comparison relation
Compares interval to another interval, i.e. cmp(interval, other). See Interval Comparison.
let a = new Interval(4, 5) // [4,5) let b = new Interval(4, 5, true, true) // [4,5] a.compare(b) == Interval.Relation.COVERED // true b.compare(a) == Interval.Relation.COVERS // true
-
Interval.
match
(other[, mask=62])¶ Arguments: - other (Interval) – interval to compare with
Returns boolean: true if intervals match
Matches two intervals. Mask defines what consitutes a match. See Interval Match.
let a = new Interval(4, 5) // [4,5) let b = new Interval(4, 5, true, true) // [4,5] a.match(b) // true b.match(a) // true
-
Interval.
Relation
¶ { OUTSIDE_LEFT: 64, // 0b1000000 OVERLAP_LEFT: 32, // 0b0100000 COVERED: 16, // 0b0010000 EQUALS: 8, // 0b0001000 COVERS: 4, // 0b0000100 OVERLAP_RIGHT: 2, // 0b0000010 OUTSIDE_RIGHT: 1 // 0b0000001 }
-
Interval.Interval.Relation.
OUTSIDE_LEFT
¶
-
Interval.Relation.
OVERLAP_LEFT
¶
-
Interval.Relation.
COVERED
¶
-
Interval.Relation.
EQUAL
¶
-
Interval.Relation.
COVERS
¶
-
Interval.Relation.
OVERLAP_RIGHT
¶
-
Interval.Relation.
OUTSIDE_RIGHT
¶
-
-
Interval.
cmpLow
(interval_a, interval_b)¶ Arguments: Returns int: a < b : -1a == b : 0a > b : 1Use with Array.sort() to sort Intervals by their low endpoint.
a = [ new Interval(4,5), new Interval(2,3), new Interval(1,6) ]; a.sort(Interval.cmpLow); // [1,6), [2,3), [4,5)
-
Interval.
cmpHigh
(interval_a, interval_b)¶ Arguments: Returns int: a < b : -1a == b : 0a > b : 1Use with Array.sort() to sort Intervals by their high endpoint.
a = [ new Interval(4,5), new Interval(2,3), new Interval(1,6) ]; a.sort(Interval.cmpHigh); // [2,3), [4,5), [1,6)