hi {ff}R Documentation

Hybrid index class

Description

Class for hybrid index representation, plain and rle-packed

Usage

hi(from, to, by = 1L, maxindex = NA, vw = NULL, pack = TRUE, NAs = NULL)

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)

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 ff's 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ägel

See Also

as.hi for coercion, rlepack, intrle, maxindex, poslength

Examples

  hi(c(1, 11, 29), c(9, 19, 21), c(1,1,-2))
  as.integer(hi(c(1, 11, 29), c(9, 19, 21), c(1,1,-2)))

[Package ff version 2.0.0 Index]