-
Notifications
You must be signed in to change notification settings - Fork 58
suggested points lie outside of domain #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Labels
Comments
originally posted by Bas Nijholt (@basnijholt) at 2018-12-14T13:42:02.648Z on GitLab adding > /Users/basnijholt/Sync/Work/adaptive/adaptive/learner/learner2D.py(439)_fill_stack()
437 point_new = tuple(self._unscale(point_new))
438
--> 439 assert self.inside_bounds(point_new)
440 # np.clip results in numerical precision problems
441 # https://gitlab.kwant-project.org/qt/adaptive/issues/132
ipdb> point_new
(0.18, 0.5999999999999999)
ipdb> np.clip(point_new, *self.bounds)
array([0.18, 0.6 ])
ipdb> np.clip(point_new, *self.bounds) == point_new
array([ True, True])
ipdb> self.inside_bounds(np.clip(point_new, *self.bounds))
False
ipdb> clip = lambda x, l, u: max(l, min(u, x))
ipdb> self.inside_bounds((clip(point_new[0], *self.bounds[0]), clip(point_new[1], *self.bounds[1])))
True |
originally posted by Bas Nijholt (@basnijholt) at 2018-12-14T14:10:58.534Z on GitLab To get the numbers: import numpy as np
import pickle
tup = pickle.loads(b'\x80\x03cnumpy.core.multiarray\nscalar\nq\x00cnumpy\ndtype\nq\x01X\x02\x00\x00\x00f8q\x02K\x00K\x01\x87q\x03Rq\x04(K\x03X\x01\x00\x00\x00<q\x05NNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x06bC\x08\n\xd7\xa3p=\n\xc7?q\x07\x86q\x08Rq\th\x00h\x04C\x08233333\xe3?q\n\x86q\x0bRq\x0c\x86q\r.')
bounds = ((0.16, 0.2), (0.6, 2.4))
def inside_bounds(xy):
x, y = xy
(xmin, xmax), (ymin, ymax) = bounds
return xmin <= x <= xmax and ymin <= y <= ymax
def my_clip(xy):
clip = lambda x, l, u: max(l, min(u, x))
return (clip(xy[0], *bounds[0]),
clip(xy[1], *bounds[1]))
(inside_bounds(tup),
inside_bounds(np.array(tup)),
inside_bounds(np.clip(tup, *bounds)),
inside_bounds(my_clip(tup)),
)
|
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
(original issue on GitLab)
opened by Bas Nijholt (@basnijholt) at 2018-12-14T13:25:39.155Z
This happens because of some numerical precision issues.
Will fail after ~20 points.
The text was updated successfully, but these errors were encountered: