22 lines
1.3 KiB
Text
22 lines
1.3 KiB
Text
|
bitmapped vectors of booleans (no NAs), coercion from and to logicals,
|
||
|
integers and integer subscripts; fast boolean operators and fast
|
||
|
summary statistics. With 'bit' vectors you can store true binary
|
||
|
booleans {FALSE,TRUE} at the expense of 1 bit only, on a 32 bit
|
||
|
architecture this means factor 32 less RAM and ~ factor 32 more speed
|
||
|
on boolean operations. Due to overhead of R calls, actual speed gain
|
||
|
depends on the size of the vector: expect gains for vectors of size >
|
||
|
10000 elements. Even for one-time boolean operations it can pay-off to
|
||
|
convert to bit, the pay-off is obvious, when such components are used
|
||
|
more than once. Reading from and writing to bit is approximately as
|
||
|
fast as accessing standard logicals - mostly due to R's time for
|
||
|
memory allocation. The package allows to work with pre-allocated
|
||
|
memory for return values by calling .Call() directly: when evaluating
|
||
|
the speed of C-access with pre-allocated vector memory, coping from
|
||
|
bit to logical requires only 70% of the time for copying from logical
|
||
|
to logical; and copying from logical to bit comes at a performance
|
||
|
penalty of 150%. the package now contains further classes for
|
||
|
representing logical selections: 'bitwhich' for very skewed selections
|
||
|
and 'ri' for selecting ranges of values for chunked processing. All
|
||
|
three index classes can be used for subsetting 'ff' objects (ff-2.1-0
|
||
|
and higher).
|