Hypex.Register.Bitstring (Hypex v2.1.0)

View Source

A Hypex.Register implementation using a bitstring.

This register is useful for keeping memory usage down, while still offering good performance. You should consider this register when memory constraints are an important factor.

Recommended for larger widths, or when memory efficiency is a major concern.

Summary

Functions

Retrieve a specific bit from a register.

Initialize an empty array register of a given width.

Merge together two registers of the same width and type.

Set a specific bit in a register.

Run a reduction over the inner bits of a register.

Types

t()

@type t() :: bitstring()

Functions

get(register, index, width)

@spec get(t(), index :: number(), width :: number()) :: result :: number()

Retrieve a specific bit from a register.

init(width)

@spec init(width :: number()) :: register :: t()

Initialize an empty array register of a given width.

merge(left, right)

@spec merge(t(), t()) :: t()

Merge together two registers of the same width and type.

put(register, index, width, value)

@spec put(t(), index :: number(), width :: number(), value :: number()) :: t()

Set a specific bit in a register.

reduce(input, width, acc, fun)

@spec reduce(t(), width :: number(), accumulator :: any(), (number(), any() -> any())) ::
  accumulator :: any()

Run a reduction over the inner bits of a register.