abit v0.1.0 Abit View Source
Functions to use :atomics as a bit array.
Link to this section Summary
Functions
Returns bit at bit_index
in atomic ref
.
Returns number of bits in atomics ref
.
Returns a 2 tuple containing
Bit intersection of atomics using Bitwise AND operator.
Bit merge atomics using Bitwise OR operator.
ref_b
will be merged into ref_a
.
Sets the bit at bit_index
to bit
in the atomic ref
.
Returns number of bits set to 1 in atomics array ref
.
Link to this section Functions
Returns bit at bit_index
in atomic ref
.
iex> ref = :atomics.new(1, signed: false) iex> ref |> :atomics.put(1, 3) iex> Abit.bit_at(ref, 0) 1 iex> Abit.bit_at(ref, 1) 1 iex> Abit.bit_at(ref, 2) 0
Returns number of bits in atomics ref
.
iex> ref = :atomics.new(3, signed: false) iex> ref |> Abit.bit_count 192
Returns a 2 tuple containing:
atomics_index
- the index of the atomics array where the bit is located
integer_bit_index
- the index of the bit in the integer at atomics_index
iex> Abit.bit_position(0) {1, 0} iex> Abit.bit_position(11) {1, 11} iex> Abit.bit_position(64) {2, 0}
Bit intersection of atomics using Bitwise AND operator.
After the operation ref_a
will be returned.
Bit merge atomics using Bitwise OR operator.
ref_b
will be merged into ref_a
.
After the operation ref_a
will be returned.
Sets the bit at bit_index
to bit
in the atomic ref
.
iex> ref = :atomics.new(1, signed: false) iex> ref |> :atomics.put(1, 1) iex> ref |> :atomics.get(1) 1 iex> ref |> Abit.set_bit(0, 0) iex> ref |> :atomics.get(1) 0
Returns number of bits set to 1 in atomics array ref
.
iex> ref = :atomics.new(1, signed: false) iex> ref |> :atomics.put(1, 3) iex> Abit.set_bits_count(ref) 2 iex> ref2 = :atomics.new(1, signed: false) iex> Abit.set_bits_count(ref2) 0