Skip to content

Commit 2b685d1

Browse files
committed
Fixes real spherical harmonics directivity test. Modify random methods to use the package wide rng by default.
1 parent 637b2a7 commit 2b685d1

File tree

4 files changed

+14
-3
lines changed

4 files changed

+14
-3
lines changed

pyroomacoustics/directivities/harmonics.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,3 +160,7 @@ def get_response(
160160
azimuth,
161161
condon_shortley_phase=self.condon_shortley_phase,
162162
)[:, np.newaxis]
163+
164+
def sample_rays(self, n_rays, rng=None):
165+
"""Not yet implemented."""
166+
raise NotImplementedError

pyroomacoustics/libroom_src/room.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -957,7 +957,7 @@ void Room<D>::ray_tracing(
957957
const Eigen::Matrix<float, Eigen::Dynamic, D> &unit_vectors,
958958
const Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic> &energies,
959959
const Vectorf<D> &source_pos) {
960-
float energy_0 = energy_0_numerator / unit_vectors.rows();
960+
float energy_0 = constants::ENERGY_0 / unit_vectors.rows();
961961

962962
if (unit_vectors.rows() != energies.rows()) {
963963
throw std::runtime_error("Error: The same number of rays and energies is expected.");

pyroomacoustics/random/distributions.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import numpy as np
44
import scipy
55

6+
from .generator import get_rng
67
from .spherical import power_spherical, uniform_spherical
78

89

@@ -77,6 +78,8 @@ def pdf(self, x):
7778
return np.ones_like(x, shape=x.shape[:-1]) * scale
7879

7980
def sample(self, size=None, rng=None):
81+
if rng is None:
82+
rng = get_rng()
8083
return uniform_spherical(dim=self.dim, size=size, rng=rng)
8184

8285

@@ -137,6 +140,8 @@ def scale(self):
137140
return self._scale
138141

139142
def sample(self, size=None, rng=None):
143+
if rng is None:
144+
rng = get_rng()
140145
return power_spherical(loc=self._loc, scale=self._scale, size=size, rng=rng)
141146

142147
def pdf(self, x):

pyroomacoustics/random/spherical.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import numpy as np
22

3+
from .generator import get_rng
4+
35
_eps = 1e-7
46

57

@@ -30,7 +32,7 @@ def uniform_spherical(dim=3, size=None, rng=None):
3032
size = list(size) + [dim]
3133

3234
if rng is None:
33-
rng = np.random.default_rng()
35+
rng = get_rng()
3436

3537
out = rng.standard_normal(size=size)
3638
out /= np.linalg.norm(out, axis=-1, keepdims=True)
@@ -86,7 +88,7 @@ def power_spherical(loc=None, scale=None, size=None, rng=None):
8688
scale = 1.0
8789

8890
if rng is None:
89-
rng = np.random.default_rng()
91+
rng = get_rng()
9092

9193
z = rng.beta((dim - 1.0) / 2.0 + scale, (dim - 1) / 2.0, size=size[:-1])
9294
v = uniform_spherical(size=size[:-1], dim=dim - 1)

0 commit comments

Comments
 (0)