./devel/R-bit, Class for vectors of 1-bit booleans

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.1.14, Package name: R-bit-1.1.14, Maintainer: minskim

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


Required to run:
[math/R]

Required to build:
[pkgtools/cwrappers]

Master sites: (Expand)


Version history: (Expand)


CVS history: (Expand)


   2018-07-28 16:40:53 by Brook Milligan | Files touched by this commit (126)
Log message:
Remove MASTER_SITES= from individual R package Makefiles.

Each R package should include ../../math/R/Makefile.extension, which also
defines MASTER_SITES.  Consequently, it is redundant for the individual
packages to do the same.  Package-specific definitions also prevent
redefining MASTER_SITES in a single common place.
   2018-07-04 10:14:00 by Wen Heping | Files touched by this commit (2) | Package updated
Log message:
Update to 1.1.14

Upstream changes:
CHANGES IN bit VERSION 1.1-14

BUG FIXES

    o bit[i] and bit[i]<-v now check for non-positive integers
      which prevents a segfault when bit[NA] or bit[NA]<-v

        CHANGES IN bit VERSION 1.1-13

USER VISIBLE CHANGES

    o logical NA is now mapped to bit FALSE as in ff booleans
    o extractor function '[.bit' with positive numeric subscripts
	  (integer, double, bitwhich) now behaves like '[.logical' and returns
	  NA for out-of-bound requests and no element for 0
    o extractor function '[[.bit' with positive numeric (integer, double,
      bitwhich) subscripts now behaves like '[[.logical' and throws an error
      for out-of-bound requests
    o extractor function '[.bit' with range index subscripts (ri)
      subscripts now behaves like '[[.bit' and throws an error
      for out-of-bound requests
    o assignment functions '[<-.bit' and '[[<-.bit' with positive numeric
      (integer, double, bitwhich) subscripts now behave like '[<-.logical' and
      '[[<-.logical' and silently increase vector length if necessary
    o assignment function '[<-.bit' with range index subscripts (ri) now
      behaves like '[[<-.bit' and silently increases vector length if necessary
    o rlepack() is now a generic with a method for class 'integer'
    o rleunpack() is now a generic with a method for class 'rlepack'
    o unique.rlepack() now gives correct results for unordered sequences
    o anyDuplicated.rlepack() now returns the position of the first
	  duplicate and gives correct results for unordered sequences

TUNING

    o The package can now compiled with 64bit words instead of 32bit words,
      since we only measured a minor speedup, we left 32bit as the default.

BUG FIXES

    o extractor and assignment functions now check for legal (positive)
      subscript bounds, hence illegally large subscripts or zero no longer
      cause memory violations
   2018-03-06 18:06:28 by Min Sik Kim | Files touched by this commit (3)
Log message:
devel/R-bit: Import version 1.1.12

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