No matching definitions.

tur/sized-bits

stdlib/sized-bits.tur

SizedBitVec: packed bit vector with static size annotations.

Since: Phase SZ3

defn

sized-bitvec-new

(sized-bitvec-new [n])

allocate a bit vector of n bits, all zero.

nnumber of bits

Opaque pointer to the new SizedBitVec.

(let [bv (unsafe (sized-bitvec-new 16))] ...)

Since: Phase SZ3

defn

sized-bitvec-free

(sized-bitvec-free [bv])

free a SizedBitVec and its backing storage.

bvSizedBitVec pointer from sized-bitvec-new

nil

(unsafe (sized-bitvec-free bv))

Since: Phase SZ3

defn

sized-bitvec-len

(sized-bitvec-len [bv])

number of bits in the bit vector.

bvSizedBitVec pointer

Bit count as :int.

(sized-bitvec-len bv)  ; => 16

Since: Phase SZ3

defn

sized-bitvec-size

(sized-bitvec-size [bv])

return the bit count as a Size expression.

bvSizedBitVec pointer

A (Static n) where n is the bit count.

(size-eval (unsafe (sized-bitvec-size bv)))  ; => bit count

Since: Phase SZ3

defn

sized-bitvec-get

(sized-bitvec-get [bv i])

read bit i; aborts if out of range.

bvSizedBitVec pointer
izero-based bit index (0 <= i < len)

1 if bit i is set, 0 if clear.

(sized-bitvec-get bv 3)  ; => 0 or 1

Since: Phase SZ3

defn

sized-bitvec-set!

(sized-bitvec-set! [bv i])

set bit i to 1; aborts if out of range.

bvSizedBitVec pointer
izero-based bit index

The same bv pointer (for chaining).

(sized-bitvec-set! bv 3)

Since: Phase SZ3

defn

sized-bitvec-clear!

(sized-bitvec-clear! [bv i])

clear bit i to 0; aborts if out of range.

bvSizedBitVec pointer
izero-based bit index

The same bv pointer (for chaining).

(sized-bitvec-clear! bv 3)

Since: Phase SZ3

defn

sized-bitvec-toggle!

(sized-bitvec-toggle! [bv i])

flip bit i; aborts if out of range.

bvSizedBitVec pointer
izero-based bit index

The same bv pointer (for chaining).

(sized-bitvec-toggle! bv 3)

Since: Phase SZ3

defn

sized-bitvec-count

(sized-bitvec-count [bv])

count the number of set bits (popcount).

bvSizedBitVec pointer

Number of bits set to 1.

(sized-bitvec-count bv)  ; => set bit count

Since: Phase SZ3

defn

sized-bitvec-fill!

(sized-bitvec-fill! [bv v])

set all bits to v (0=clear, nonzero=set).

bvSizedBitVec pointer
v0 to clear all bits, nonzero to set all bits

The same bv pointer.

(sized-bitvec-fill! bv 0)   ; clear all
  (sized-bitvec-fill! bv 1)   ; set all

Since: Phase SZ3

defn

sized-bitvec-assert-len!

(sized-bitvec-assert-len! [bv expected])

panic if the bit vector does not have the expected length.

bvSizedBitVec pointer
expectedexpected bit count as a (Size)

nil on success; panics on mismatch.

(unsafe (sized-bitvec-assert-len! bv (Static 16)))

Since: Phase SZ3