From 73e7ac2bea726cebe85f028257020efe06aefecd Mon Sep 17 00:00:00 2001 From: Florian Pfaff <6773539+FlorianPfaff@users.noreply.github.com> Date: Thu, 2 Jul 2026 23:57:57 +0200 Subject: [PATCH 1/2] Fix 1D numerical integration list bounds --- .../distributions/nonperiodic/abstract_linear_distribution.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pyrecest/distributions/nonperiodic/abstract_linear_distribution.py b/src/pyrecest/distributions/nonperiodic/abstract_linear_distribution.py index 5c587a1ee..47c49bb16 100644 --- a/src/pyrecest/distributions/nonperiodic/abstract_linear_distribution.py +++ b/src/pyrecest/distributions/nonperiodic/abstract_linear_distribution.py @@ -307,7 +307,7 @@ def f_for_nquad(*args): return float(squeeze(f(array(args).reshape(-1, dim)))) if dim == 1: - result, _ = quad(f_for_nquad, left, right) + result, _ = quad(f_for_nquad, left[0], right[0]) elif dim == 2: result, _ = nquad(f_for_nquad, [(left[0], right[0]), (left[1], right[1])]) elif dim == 3: From 09706d686cbb44fe70165add8dd1b417d87b35d7 Mon Sep 17 00:00:00 2001 From: Florian Pfaff <6773539+FlorianPfaff@users.noreply.github.com> Date: Thu, 2 Jul 2026 23:58:23 +0200 Subject: [PATCH 2/2] Test 1D integration sequence bounds --- .../test_abstract_linear_distribution.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/distributions/test_abstract_linear_distribution.py b/tests/distributions/test_abstract_linear_distribution.py index 45187dbd7..316fbc015 100644 --- a/tests/distributions/test_abstract_linear_distribution.py +++ b/tests/distributions/test_abstract_linear_distribution.py @@ -35,6 +35,25 @@ def test_integrate(self): integration_result, 1.0, rtol=1e-5 ), f"Expected 1.0, but got {integration_result}" + def test_integrate_1d_accepts_sequence_bounds(self): + """Test that 1D integration accepts per-dimension sequence bounds.""" + dist = GaussianDistribution(array([0.0]), array([[1.0]])) + integration_result = dist.integrate_numerically([-float("inf")], [float("inf")]) + assert isclose( + integration_result, 1.0, rtol=1e-5 + ), f"Expected 1.0, but got {integration_result}" + + def test_integrate_fun_over_domain_1d_accepts_sequence_bounds(self): + dist = GaussianDistribution(array([0.0]), array([[1.0]])) + + integration_result = AbstractLinearDistribution.integrate_fun_over_domain( + lambda x: dist.pdf(x), 1, [-float("inf")], [float("inf")] + ) + + assert isclose( + integration_result, 1.0, rtol=1e-5 + ), f"Expected 1.0, but got {integration_result}" + def test_integrate_fun_over_domain(self): dist = GaussianDistribution(array([1.0, 2.0]), diag(array([1.0, 2.0])))