Expand description
Closed and bounded generic interval.
Let D
be an ordered set and {i,j} ∈ D
. The interval I
whose bounds are {i,j}
is defined as I = {x ∈ D | i <= x <= j}
and is denoted as [i..j]
. Only interval with bound types implementing Num
and Width
is currently available.
Most of the operations in gcollections::ops::*
are implemented. Intervals specific operations, proposed in ops::*
, are also implemented. There is no union
operation since this interval representation is not precise enough, and so an union could be over-approximated. For example, consider [1..2] U [5..6]
, the only possible representation is [1..6]
which is not exact by the definition of union of sets. However, this operation exists and is named hull
.
Examples
use crate::interval::Interval;
use crate::interval::ops::*;
use gcollections::ops::*;
let a = Interval::new(0, 5);
let b = Interval::singleton(10);
let c = a.hull(&b);
let d = c.difference(&a);
assert_eq!(c, Interval::new(0,10));
assert_eq!(d, Interval::new(6,10));
See also
Structs
- Closed interval (endpoints included).