Bitset | R Documentation |
This is a data structure that compactly stores the presence of
integers in some finite set (max_size
), and can
efficiently perform set operations (union, intersection, complement, symmetric
difference, set difference).
WARNING: All operations are in-place so please use $copy
if you would like to perform an operation without destroying your current bitset.
This class is defined as a named list for performance reasons, but for most intents and purposes it behaves just like an R6 class.
new()
create a bitset.
Bitset$new(size, from)
size
the size of the bitset.
from
pointer to an existing IterableBitset to use; if NULL
make empty bitset, otherwise copy existing bitset.
insert()
insert into the bitset.
b$insert(v)
v
an integer vector of elements to insert.
remove()
remove from the bitset.
b$remove(v)
v
an integer vector of elements (not indices) to remove.
clear()
clear the bitset.
b$clear()
size()
get the number of elements in the set.
b$size()
or()
to "bitwise or" or union two bitsets.
b$or(other)
other
the other bitset.
and()
to "bitwise and" or intersect two bitsets.
b$and(other)
other
the other bitset.
not()
to "bitwise not" or complement a bitset.
b$not(inplace)
inplace
whether to overwrite the current bitset, default = TRUE
xor()
to "bitwise xor" get the symmetric difference of two bitset (keep elements in either bitset but not in their intersection).
b$xor(other)
other
the other bitset.
set_difference()
Take the set difference of this bitset with another
(keep elements of this bitset which are not in other
)
b$set_difference(other)
other
the other bitset.
sample()
sample a bitset.
b$sample(rate)
rate
the success probability for keeping each element, can be a single value for all elements or a vector of unique probabilities for keeping each element.
choose()
choose k random items in the bitset.
b$choose(k)
k
the number of items in the bitset to keep. The selection of
these k items from N total items in the bitset is random, and
k should be chosen such that 0 \le k \le N
.
copy()
returns a copy of the bitset.
In cases where a destination bitset already exists, it may be more
performant to use the copy_from
method instead.
b$copy()
copy_from()
overwrite the value of the bitset from another bitset.
This is similar to calling other$copy()
, but can be more
efficient by reusing the resources of the existing bitset.
b$copy_from(other)
other
the other bitset.
to_vector()
return an integer vector of the elements stored in this bitset.
b$to_vector()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.