True boolean datatype (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).

c(person("Jens", "Oehlschlägel", role = c('aut', 'cre'),
email = "Jens.Oehlschlaegel@truecluster.com"),
person("Brian", "Ripley", role = 'ctb'))
Jens Oehlschlägel [aut, cre],
Brian Ripley [ctb]
Orphaned on 2020-01-13 as check errors were not
corrected.

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).