flexfloat.BigIntBitArray

class flexfloat.BigIntBitArray(value=0, length=0)[source]

A memory-efficient bit array class using Python’s infinite-size int.

This implementation stores all bits as a single Python integer, leveraging Python’s arbitrary precision arithmetic for potentially unlimited size. Since Python integers are arbitrary precision, this can handle bit arrays of any size limited only by available memory.

__init__(value=0, length=0)[source]

Initializes a BigIntBitArray.

Parameters:
  • value (int, optional) – Initial integer value representing the bits. Defaults to 0.

  • length (int, optional) – The number of bits in the array. Defaults to 0.

Raises:

ValueError – If length is negative.

classmethod from_bits(bits=None)[source]

Creates a BitArray from a list of boolean values.

Parameters:

bits (list[bool] | None, optional) – List of boolean values. Defaults to None, which creates an empty BitArray.

Returns:

A BitArray created from the bits.

Return type:

BigIntBitArray

classmethod zeros(length)[source]

Creates a BitArray filled with zeros.

Parameters:

length (int) – The length of the bit array.

Returns:

A BitArray filled with False values.

Return type:

BigIntBitArray

classmethod ones(length)[source]

Creates a BitArray filled with ones.

Parameters:

length (int) – The length of the bit array.

Returns:

A BitArray filled with True values.

Return type:

BigIntBitArray

to_float()[source]

Converts a 64-bit array to a floating-point number (LSB-first).

Returns:

The floating-point number represented by the bit array.

Return type:

float

Raises:

AssertionError – If the bit array is not 64 bits long.

to_int()[source]

Converts the bit array to an unsigned integer (LSB-first).

Returns:

The integer represented by the bit array.

Return type:

int

copy()[source]

Creates a copy of the bit array.

Returns:

A new BitArray with the same bits.

Return type:

BigIntBitArray

__len__()[source]

Returns the length of the bit array.

Returns:

The number of bits in the array.

Return type:

int

__getitem__(index: int) bool[source]
__getitem__(index: slice) BigIntBitArray

Gets an item or slice from the bit array.

Parameters:

index (int or slice) – The index or slice to retrieve.

Returns:

The bit value or a new BitArray for the slice.

Return type:

bool or BigIntBitArray

__setitem__(index: int, value: bool) None[source]
__setitem__(index: slice, value: BitArray | list[bool]) None

Sets an item or slice in the bit array.

Parameters:
  • index (int or slice) – The index or slice to set.

  • value (bool or list[bool] or BitArray) – The value(s) to assign.

Raises:
  • TypeError – If value type does not match index type.

  • ValueError – If value length does not match slice length.

__iter__()[source]

Iterates over the bits in the array.

Yields:

bool – The next bit in the array.

__add__(other)[source]

Concatenates two bit arrays.

Parameters:

other (BitArray or list[bool]) – The other bit array or list to concatenate.

Returns:

The concatenated bit array.

Return type:

BigIntBitArray

Raises:

TypeError – If other is not iterable.

__radd__(other)[source]

Reverse concatenation with a list.

Parameters:

other (list[bool]) – The list to concatenate before this bit array.

Returns:

The concatenated bit array.

Return type:

BigIntBitArray

Raises:

TypeError – If other is not iterable.

__repr__()[source]

Returns a string representation of the BitArray.

Returns:

String representation of the BitArray.

Return type:

str