aboutsummaryrefslogtreecommitdiff
path: root/vquad
diff options
context:
space:
mode:
authorChristoph Groth <christoph.groth@cea.fr>2018-03-07 10:22:50 +0100
committerChristoph Groth <christoph.groth@cea.fr>2018-05-16 10:50:10 +0200
commitab37f0f5cce683399947b59cb51bde45ff46eba0 (patch)
treedf8c7ade7b2c6e5bbd095341332ee6c06ea53bc0 /vquad
parentd797972c73b232963b8ad8dd1fb080bf48e21cd0 (diff)
_Interval: replace the method points() by map()
Diffstat (limited to 'vquad')
-rw-r--r--vquad/core.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/vquad/core.py b/vquad/core.py
index 4e08253..a5e09b3 100644
--- a/vquad/core.py
+++ b/vquad/core.py
@@ -103,10 +103,10 @@ class _Interval:
self.level = level
self.depth = depth
- def points(self):
+ def map(self, points):
a = self.a
b = self.b
- return (a + b) / 2 + (b - a) * tbls.nodes[self.level] / 2
+ return (a + b) / 2 + (b - a) / 2 * points
def interpolate(self, vals, coeffs_old=None):
self.vals = vals
@@ -148,7 +148,8 @@ class _Interval:
depth = self.depth + 1
children = [_Interval(self.a, m, min_level, depth),
_Interval(m, self.b, min_level, depth)]
- points = np.concatenate([child.points()[1:-1] for child in children])
+ points = tbls.nodes[min_level][1:-1]
+ points = np.concatenate([child.map(points) for child in children])
valss = np.empty((2, tbls.sizes[min_level]))
valss[:, 0] = self.vals[0], f_center
valss[:, -1] = f_center, self.vals[-1]
@@ -180,7 +181,7 @@ class _Interval:
limit of numerical accuracy and cannot be reduced further.
"""
self.level += 1
- points = self.points()
+ points = self.map(tbls.nodes[self.level])
vals = np.empty(points.shape)
vals[0::2] = self.vals
vals[1::2] = (yield points[1::2])
@@ -211,7 +212,7 @@ class Vquad:
def __init__(self, f, a, b, level=max_level - 1):
ival = _Interval(a, b, level, 1)
- vals = f(ival.points())
+ vals = f(ival.map(tbls.nodes[ival.level]))
ival.interpolate(vals)
ival.c00 = 0.0 # Will go away.
ival.ndiv = 0