go-datastructures: github.com/golang-collections/go-datastructures/bitarray Index | Files

package bitarray

import "github.com/golang-collections/go-datastructures/bitarray"

Package bitarray implements a bit array. Useful for tracking bool type values in a space efficient way. This is *NOT* a threadsafe package.

Package bitarray or bitmap is useful when comparing large amounts of structured data if the data can be represented as integers. For instance, set intersection of {1, 3, 5} and {3, 5, 7} represented as bitarrays can be done in a single clock cycle (not counting the time it takes to convert) the resultant array back into integers). When Go implements a command to get trailing zeroes, the reconversion back into integers should be much faster.

Index

Package Files

and.go bitarray.go block.go error.go interface.go iterator.go or.go sparse_bitarray.go util.go

type BitArray Uses

type BitArray interface {
    // SetBit sets the bit at the given position.  This
    // function returns an error if the position is out
    // of range.  A sparse bit array never returns an error.
    SetBit(k uint64) error
    // GetBit gets the bit at the given position.  This
    // function returns an error if the position is out
    // of range.  A sparse bit array never returns an error.
    GetBit(k uint64) (bool, error)
    // ClearBit clears the bit at the given position.  This
    // function returns an error if the position is out
    // of range.  A sparse bit array never returns an error.
    ClearBit(k uint64) error
    // Reset sets all values to zero.
    Reset()
    // Blocks returns an iterator to be used to iterate
    // over the bit array.
    Blocks() Iterator
    // Equals returns a bool indicating equality between the
    // two bit arrays.
    Equals(other BitArray) bool
    // Intersects returns a bool indicating if the other bit
    // array intersects with this bit array.
    Intersects(other BitArray) bool
    // Capacity returns either the given capacity of the bit array
    // in the case of a dense bit array or the highest possible
    // seen capacity of the sparse array.
    Capacity() uint64
    // Or will bitwise or the two bitarrays and return a new bitarray
    // representing the result.
    Or(other BitArray) BitArray
    // And will bitwise and the two bitarrays and return a new bitarray
    // representing the result.
    And(other BitArray) BitArray
    // ToNums converts this bit array to the list of numbers contained
    // within it.
    ToNums() []uint64
}

BitArray represents a structure that can be used to quickly check for existence when using a large number of items in a very memory efficient way.

func NewBitArray Uses

func NewBitArray(size uint64, args ...bool) BitArray

NewBitArray returns a new BitArray at the specified size. The optional arg denotes whether this bitarray should be set to the bitwise complement of the empty array, ie. sets all bits.

func NewSparseBitArray Uses

func NewSparseBitArray() BitArray

NewSparseBitArray will create a bit array that consumes a great deal less memory at the expense of longer sets and gets.

type Iterator Uses

type Iterator interface {
    // Next moves the pointer to the next block.  Returns
    // false when no blocks remain.
    Next() bool
    // Value returns the next block and its index
    Value() (uint64, block)
}

Iterator defines methods used to iterate over a bit array.

type OutOfRangeError Uses

type OutOfRangeError uint64

OutOfRangeError is an error caused by trying to access a bitarray past the end of its capacity.

func (OutOfRangeError) Error Uses

func (err OutOfRangeError) Error() string

Error returns a human readable description of the out-of-range error.

Package bitarray imports 3 packages (graph) and is imported by 2 packages. Updated 2020-02-12. Refresh now. Tools for package owners.