Data Structures

class pyroomacoustics.adaptive.data_structures.Buffer(length=20, dtype=<MagicMock id='140583673217808'>)

Bases: object

A simple buffer class with amortized cost

Parameters
  • length (int) – buffer length

  • dtype (numpy.type) – data type

flush(n)

Removes the n oldest elements in the buffer

push(val)

Add one element at the front of the buffer

size()

Returns the number of elements in the buffer

top(n)

Returns the n elements at the front of the buffer from newest to oldest

class pyroomacoustics.adaptive.data_structures.CoinFlipper(p, length=10000)

Bases: object

This class efficiently generates large number of coin flips. Because each call to numpy.random.rand is a little bit costly, it is more efficient to generate many values at once. This class does this and stores them in advance. It generates new fresh numbers when needed.

Parameters
  • p (float, 0 < p < 1) – probability to output a 1

  • length (int) – the number of flips to precompute

flip(n)

Get n random binary values from the buffer

flip_all()

Regenerates all the used up values

fresh_flips(n)

Generates n binary random values now

class pyroomacoustics.adaptive.data_structures.Powers(a, length=20, dtype=<MagicMock id='140583672725968'>)

Bases: object

This class allows to store all powers of a small number and get them ‘a la numpy’ with the bracket operator. There is automatic increase when new values are requested

Parameters
  • a (float) – the number

  • length (int) – the number of integer powers

  • dtype (numpy.type, optional) – the data type (typically np.float32 or np.float64)

Example

>>> an = Powers(0.5)
>>> print(an[4])
0.0625