fast-bitfield

1.2.2 • Public • Published

fast-bitfield

A variable sized bitfield (based on indexed-bitfield) that allows you to quickly iterate over the bits.

npm install sparse-indexed-bitfield

Allocates a series of ~4kb bitfields (when needed) to store the underlying data efficiently.

Usage

const bitfield = require('fast-bitfield')
 
const bits = bitfield()
 
bits.set(1000, true)
bits.set(1000000000, true)
 
const ite = bits.iterator()
 
console.log(ite.next(true)) // 1000
console.log(ite.next(true)) // 1000000000
console.log(ite.next(true)) // -1

API

bits = bitfield()

Make a new fast bitfield

updated = bits.set(index, bool)

Set a bit.

Runs in O(log32(maxBitIndex)) worst case but often O(1)

bool = bits.get(index)

Get a bit.

Runs in O(log32(maxBitIndex))

bits.fill(val, [start], [end])

Set a range of bits efficiently.

iterator = bits.iterator()

Make a new bit iterator.

iterator.seek(index)

Move the iterator to start at index.

Runs in O(log32(maxBitIndex))

index = iterator.next(bit)

Returns the index of the next bit and -1 if none can be found.

Runs in O(log32(distanceToNextBit))

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i fast-bitfield

Weekly Downloads

405

Version

1.2.2

License

MIT

Unpacked Size

17.8 kB

Total Files

8

Last publish

Collaborators

  • mafintosh