bitflags
v1.0.0
Published
Small library for working with an arbitrarily large array of booleans
Readme
bitflags
Small library for working with an arbitrarily large array of booleans
Install
npm
npm install bitflagsAPI
var bitflags = require('bitflags');
var flags = bitflags(1000000); //Creates a million boolean flagsget
Gets the bool at offset
flags.get(n) //returns true or falseset
Sets a bit at offset to bool
flags.set(n,0) //sets to falseflags.set(n,1) //sets to trueflags.set(n,'truthy') //sets to trueon
Sets the bit at offset to true
flags.on(n)off
Sets the bit at offset to false
flags.off(n)flip
Flip and returns the value of a single bit at offset
flags.flip(n)fill
Reset to all 1's
flags.fill()clear
Reset to all 0's
flags.clear()size
Return exact size in bits note: may be larger than size specified in constructor, due to storage in octets
flags.size()Example
Sets a flag for each prime in the first 2000000 integers, using Sieve of Eratosthenes, returns a function to test for primes:
var getSieveOfEratosthenes = function() {
var size = 2000000;
var bits = bitflags(size);
bits.fill();
bits.set(0,0);
var lim = Math.ceil(Math.sqrt(size));
for(var i=2;i<=lim;i++) {
if(bits.get(i)){
for(var j=i*i;j<=size;j+=i) {
bits.set(j,0);
}
}
};
return function(n){ return bits.get(n); };
};