abstract datatype: iter()
state() = [ra:index() | ra:range()]
| add/2 | adds two sequences together where To is the "lower" sequence. |
| append/2 | |
| expand/1 | |
| first/1 | |
| floor/2 | This operation is O(n) + a list:reverse/1. |
| fold/3 | |
| from_list/1 | |
| has_overlap/2 | Check if any element in the sequence overlaps with the given range. |
| in/2 | |
| in_range/2 | |
| iterator/1 | |
| last/1 | |
| length/1 | |
| limit/2 | |
| list_chunk/2 | Returns a chunk of up to ChunkSize expanded indices from the sequence without eagerly expanding the entire sequence. |
| next/1 | |
| range/1 | |
| remove_prefix/2 | |
| subtract/2 |
adds two sequences together where To is the "lower" sequence
append(Idx::ra:index(), Rem::state()) -> state()
expand(Seq::state()) -> [ra:index()]
first(Seq::state()) -> undefined | ra:index()
floor(FloorIdxIncl::ra:index(), Seq::state()) -> state()
This operation is O(n) + a list:reverse/1
from_list(L::[ra:index()]) -> state()
has_overlap(Range::ra:range(), Seq::state()) -> boolean()
Check if any element in the sequence overlaps with the given range. This is a pure query that does not modify the sequence and can terminate early as soon as an overlap is found. Sequences are ordered high -> low, so we traverse from highest to lowest.
in(Idx, Rem) -> any()
in_range(Range::ra:range(), Seq0::state()) -> state()
last(Seq::state()) -> undefined | ra:index()
length(Seq) -> any()
limit(CeilIdxIncl::ra:index(), Rem::state()) -> state()
list_chunk(ChunkSize::pos_integer(), Seq::state() | iter()) -> {[ra:index()], iter()} | end_of_seq
Returns a chunk of up to ChunkSize expanded indices from the sequence
without eagerly expanding the entire sequence. On first call, pass a state().
On subsequent calls, pass the returned iterator.
Returns {Chunk, NewIterator} or end_of_seq when exhausted.
Indices are returned in ascending order.
next(I::iter()) -> {ra:index(), iter()} | end_of_seq
range(Seq::state()) -> ra:range()
Generated by EDoc