Module adseq.implementations.bitarray32

Classes

class BitArray32 (buffer: int | jax.Array)
Expand source code
class BitArray32(typing.NamedTuple):
    buffer: jax.Array | int
    @classmethod
    def init(cls, delay=None):
        if not (delay is None or delay < 32):
            print('Warning: BitArray32 can only handle delay < 32')
        return cls(jnp.zeros(shape=(), dtype='int32'))
    def enqueue(self, n):
        return BitArray32(self.buffer | (1 << (n&0x1f)))
    def pop(self, n):
        return BitArray32(self.buffer & ~(1<<(n&0x1f))), (self.buffer>>(n&0x1f))&1

BitArray32(buffer,)

Ancestors

  • builtins.tuple

Static methods

def init(delay=None)

Instance variables

var buffer : int | jax.Array
Expand source code
class BitArray32(typing.NamedTuple):
    buffer: jax.Array | int
    @classmethod
    def init(cls, delay=None):
        if not (delay is None or delay < 32):
            print('Warning: BitArray32 can only handle delay < 32')
        return cls(jnp.zeros(shape=(), dtype='int32'))
    def enqueue(self, n):
        return BitArray32(self.buffer | (1 << (n&0x1f)))
    def pop(self, n):
        return BitArray32(self.buffer & ~(1<<(n&0x1f))), (self.buffer>>(n&0x1f))&1

Alias for field number 0

Methods

def enqueue(self, n)
Expand source code
def enqueue(self, n):
    return BitArray32(self.buffer | (1 << (n&0x1f)))
def pop(self, n)
Expand source code
def pop(self, n):
    return BitArray32(self.buffer & ~(1<<(n&0x1f))), (self.buffer>>(n&0x1f))&1