Skip to content

Commit 5d122ba

Browse files
committed
2D: rename methods
1 parent 92a455c commit 5d122ba

File tree

1 file changed

+34
-15
lines changed

1 file changed

+34
-15
lines changed

adaptive/learner/learner2D.py

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ def bounds_are_done(self):
345345
(p in self.pending_points or p in self._stack) for p in self._bounds_points
346346
)
347347

348-
def data_on_grid(self, n=None):
348+
def interpolated_on_grid(self, n=None):
349349
"""Get the interpolated data on a grid.
350350
351351
Parameters
@@ -356,11 +356,11 @@ def data_on_grid(self, n=None):
356356
357357
Returns
358358
-------
359-
xs : 1D numpy.ndarray, optional
360-
ys : 1D numpy.ndarray, optional
361-
data_on_grid : 2D numpy.ndarray
359+
xs : 1D numpy.ndarray
360+
ys : 1D numpy.ndarray
361+
interpolated_on_grid : 2D numpy.ndarray
362362
"""
363-
ip = self.ip()
363+
ip = self.interpolate(scaled=True)
364364
if n is None:
365365
# Calculate how many grid points are needed.
366366
# factor from A=√3/4 * a² (equilateral triangle)
@@ -390,7 +390,8 @@ def _data_interp(self):
390390
if self.pending_points:
391391
points = list(self.pending_points)
392392
if self.bounds_are_done:
393-
values = self.ip()(self._scale(points))
393+
ip = self.interpolate()
394+
values = ip(self._scale(points))
394395
else:
395396
# Without the bounds the interpolation cannot be done properly,
396397
# so we just set everything to zero.
@@ -415,15 +416,33 @@ def data_combined(self):
415416
return {tuple(k): v for k, v in zip(points, values)}
416417

417418
def ip(self):
419+
"""Deprecated, use `self.interpolate()`"""
420+
return self.interpolate(scaled=True)
421+
422+
def interpolate(self, *, scaled=True):
418423
"""A `scipy.interpolate.LinearNDInterpolator` instance
419-
containing the learner's data."""
420-
if self._ip is None:
424+
containing the learner's data.
425+
426+
Parameters
427+
----------
428+
scaled : bool
429+
True if all points are inside the unit-square [(-0.5, 0.5), (-0.5, 0.5)].
430+
431+
Returns
432+
-------
433+
interpolate : `scipy.interpolate.LinearNDInterpolator`
434+
"""
435+
if scaled:
436+
if self._ip is None:
437+
points, values = self._data_in_bounds()
438+
points = self._scale(points)
439+
self._ip = interpolate.LinearNDInterpolator(points, values)
440+
return self._ip
441+
else:
421442
points, values = self._data_in_bounds()
422-
points = self._scale(points)
423-
self._ip = interpolate.LinearNDInterpolator(points, values)
424-
return self._ip
443+
return interpolate.LinearNDInterpolator(points, values)
425444

426-
def ip_combined(self):
445+
def _interpolate_combined(self):
427446
"""A `scipy.interpolate.LinearNDInterpolator` instance
428447
containing the learner's data *and* interpolated data of
429448
the `pending_points`."""
@@ -460,7 +479,7 @@ def _fill_stack(self, stack_till=1):
460479
raise ValueError("too few points...")
461480

462481
# Interpolate
463-
ip = self.ip_combined()
482+
ip = self._interpolate_combined()
464483

465484
losses = self.loss_per_triangle(ip)
466485

@@ -528,7 +547,7 @@ def ask(self, n, tell_pending=True):
528547
def loss(self, real=True):
529548
if not self.bounds_are_done:
530549
return np.inf
531-
ip = self.ip() if real else self.ip_combined()
550+
ip = self.interpolate() if real else self._interpolate_combined()
532551
losses = self.loss_per_triangle(ip)
533552
return losses.max()
534553

@@ -573,7 +592,7 @@ def plot(self, n=None, tri_alpha=0):
573592
lbrt = x[0], y[0], x[1], y[1]
574593

575594
if len(self.data) >= 4:
576-
ip = self.ip()
595+
ip = self.interpolate()
577596
x, y, z = self.data_on_grid(n)
578597

579598
if self.vdim > 1:

0 commit comments

Comments
 (0)