diff options
| author | Christoph Groth <christoph.groth@cea.fr> | 2018-01-19 15:50:58 +0100 |
|---|---|---|
| committer | Christoph Groth <christoph.groth@cea.fr> | 2018-02-23 12:55:00 +0100 |
| commit | ee6289434905c0b3674e0f071ab0e27f77dc1417 (patch) | |
| tree | 0c1d68d7978aa9e6dfadf0d837c449beb9dbc7de /vquad | |
| parent | 4c51624ae1e69a2084c012d227cb52289154f8bb (diff) | |
get rid of nr_points
Diffstat (limited to 'vquad')
| -rw-r--r-- | vquad/core.py | 10 | ||||
| -rw-r--r-- | vquad/test/test_core.py | 20 |
2 files changed, 10 insertions, 20 deletions
diff --git a/vquad/core.py b/vquad/core.py index 23f1c24..7435334 100644 --- a/vquad/core.py +++ b/vquad/core.py @@ -61,10 +61,9 @@ def _calc_coeffs(vals, level): class DivergentIntegralError(ValueError): - def __init__(self, msg, igral, err, nr_points): + def __init__(self, msg, igral, err): self.igral = igral self.err = err - self.nr_points = nr_points super().__init__(msg) @@ -131,7 +130,6 @@ class Vquad: self.ivals = [ival] # Active intervals self.attic = [] # Inactive intervals self.f = f - self.nr_points = len(vals) self.igral_excess = 0 self.err_excess = 0 @@ -143,7 +141,6 @@ class Vquad: children = [_Interval(ival.a, m, min_level, depth), _Interval(m, ival.b, min_level, depth)] points = np.concatenate([child.points()[1:-1] for child in children]) - self.nr_points += len(points) valss = np.empty((2, tbls.sizes[min_level])) valss[:, 0] = ival.vals[0], f_center valss[:, -1] = f_center, ival.vals[-1] @@ -158,7 +155,7 @@ class Vquad: '[{}, {}]! (h={})') raise DivergentIntegralError( msg.format(child.a, child.b, child.b - child.a), - child.igral * np.inf, None, self.nr_points) + child.igral * np.inf, None) return children def refine(self, ival): @@ -168,7 +165,6 @@ class Vquad: vals = np.empty(points.shape) vals[0::2] = ival.vals vals[1::2] = self.f(points[1::2]) - self.nr_points += (len(vals) - 1) // 2 ival.interpolate(vals, ival.coeffs) return points @@ -219,7 +215,7 @@ class Vquad: or err < abs(igral) * tol or err - self.err_excess < abs(igral) * tol < self.err_excess or not self.ivals): - return igral, err, self.nr_points + return igral, err def vquad(f, a, b, tol): diff --git a/vquad/test/test_core.py b/vquad/test/test_core.py index 70b0c10..648a445 100644 --- a/vquad/test/test_core.py +++ b/vquad/test/test_core.py @@ -61,37 +61,31 @@ def test_downdate(level=3): def test_integration(): old_settings = np.seterr(all='ignore') - igral, err, nr_points = core.vquad(f0, 0, 3, 1e-5) + igral, err = core.vquad(f0, 0, 3, 1e-5) assert_allclose(igral, 1.98194117954329, 1e-15) assert_allclose(err, 1.9563545589988155e-05, 1e-10) - assert nr_points == 1129 - igral, err, nr_points = core.vquad(f7, 0, 1, 1e-6) + igral, err = core.vquad(f7, 0, 1, 1e-6) assert_allclose(igral, 1.9999998579359648, 1e-15) assert_allclose(err, 1.8561437334964041e-06, 1e-10) - assert nr_points == 693 - igral, err, nr_points = core.vquad(f24, 0, 3, 1e-3) + igral, err = core.vquad(f24, 0, 3, 1e-3) assert_allclose(igral, 17.664696186312934, 1e-15) assert_allclose(err, 0.017602618074957457, 1e-10) - assert nr_points == 4519 - igral, err, nr_points = core.vquad(f21, 0, 1, 1e-3) + igral, err = core.vquad(f21, 0, 1, 1e-3) assert_allclose(igral, 0.16310022131213361, 1e-15) assert_allclose(err, 0.00011848806384952786, 1e-10) - assert nr_points == 191 - igral, err, nr_points = core.vquad(f_one_with_nan, -1, 1, 1e-12) + igral, err = core.vquad(f_one_with_nan, -1, 1, 1e-12) assert_allclose(igral, 2, 1e-15) assert_allclose(err, 2.4237853822937613e-15, 1e-7) - assert nr_points == 33 try: - igral, err, nr_points = core.vquad(fdiv, 0, 1, 1e-6) + igral, err = core.vquad(fdiv, 0, 1, 1e-6) except core.DivergentIntegralError as e: assert e.igral == np.inf assert e.err is None - assert e.nr_points == 431 np.seterr(**old_settings) @@ -115,7 +109,7 @@ def test_analytic(n=200): for alpha, beta in params: try: - igral, err, nr_points = core.vquad(f, 0, 1, 1e-3) + igral, err = core.vquad(f, 0, 1, 1e-3) except core.DivergentIntegralError: assert alpha < -0.8 false_negatives += alpha > -1 |
