aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Groth <christoph.groth@cea.fr>2018-01-19 15:50:58 +0100
committerChristoph Groth <christoph.groth@cea.fr>2018-02-23 12:55:00 +0100
commitee6289434905c0b3674e0f071ab0e27f77dc1417 (patch)
tree0c1d68d7978aa9e6dfadf0d837c449beb9dbc7de
parent4c51624ae1e69a2084c012d227cb52289154f8bb (diff)
get rid of nr_points
-rw-r--r--vquad/core.py10
-rw-r--r--vquad/test/test_core.py20
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