tech.v3.datatype.bitmap

Functions for working with RoaringBitmaps. These are integrated deeply into several tech.v3.datatype algorithms and have many potential applications in high performance computing applications as they are both extremely fast and storage-space efficient.

->bitmap

(->bitmap item)(->bitmap)(->bitmap sidx eidx)

Create a roaring bitmap. If this object has a conversion to a roaring bitmap use that, else copy the data into a new roaring bitmap.

->random-access

(->random-access bitmap)

Bitmaps do not implement efficient random access although we do provide access of inefficient random access for them. This converts a bitmap into a flat buffer of data that does support efficient random access.

->unique-bitmap

(->unique-bitmap item)(->unique-bitmap)

Perform a conversion to a bitmap. If this thing is already a bitmap, clone it.

as-range

(as-range bm)

If this is convertible to a long range, then return a range else return nil.

bitmap-value->map

(bitmap-value->map bitmap val)

Given a bitmap and a value return a map of each bitmap index to that value.

offset

(offset bm offset)

Offset a bitmap creating a new bitmap.

reduce-intersection

(reduce-intersection bitmaps)

Reduce a sequence of bitmaps into a single bitmap via intersection

reduce-union

(reduce-union bitmaps)

Reduce a sequence of bitmaps into a single bitmap via union