Class for hybrid index representation, plain and rle-packed
Usage
hi(from, to, by = 1L, maxindex = NA, vw = NULL, pack = TRUE, NAs = NULL)
## S3 method for class 'hi'
print(x, ...)
## S3 method for class 'hi'
str(object, nest.lev=0, ...)
Arguments
from
integer vector of lower sequence bounds
to
integer vector of upper sequence bounds
by
integer of stepsizes
maxindex
maximum indep position (needed for negative indices)
vw
virtual window information, see vw
pack
FALSE to suppress rle-packing
NAs
a vector of NA positions (not yet used)
x
an object of class 'hi' to be printed
object
an object of class 'hi' to be str'ed
nest.lev
current nesting level in the recursive calls to str
...
further arguments passed to the next method
Details
Class hi will represent index data either as a plain positive or negative index vector or as an rle-packed version thereof.
The current implementation switches from plain index positions i to rle-packed storage of diff(i) as soon as the compression ratio is 3 or higher.
Note that sequences shorter than 2 must never be packed (could cause C-side crash).
Furthermore hybrid indices are guaranteed to be sorted ascending, which helps ffs access method avoiding to swap repeatedly over the same memory pages (or file positions).
Value
A list of class 'hi' with components
x
directly accessed by the C-code: the sorted index as returned by rlepack
ix
NULL or positions to restore original order
re
logical scalar indicating if sequence was reversed from descending to ascending (in this case is.null(ix))
minindex
directly accessed by the C-code: represents the lowest positive subscript to be enumerated in case of negative subscripts
maxindex
directly accessed by the C-code: represents the highest positive subscript to be enumerated in case of negative subscripts
length
number of subscripts, whether negative or positive, not the number of selected elements
dim
NULL or dim – used by as.matrix.hi
dimorder
NULL or dimorder
symmetric
logical scalar indicating whether we have a symmetric matrix
fixdiag
logical scalar indicating whether we have a fixed diagonal (can only be true for symmetric matrices)
vw
virtual window information vw
NAs
NULL or NA positions as returned by rlepack
Note
hi defines the class structure, however usually as.hi is used to acturally Hybrid Index Preprocessing for ff
Author(s)
Jens Oehlschl<c3><a4>gel
See Also
as.hi for coercion, rlepack, intrle, maxindex, poslength