More efficient 'tell_many'
-
Review changes -
-
Download -
Patches
-
Plain diff
import adaptive
def f(x, offset=0):
a = 0.01
return x + a**2 / (a**2 + (x - offset)**2)
learner = adaptive.Learner1D(f, bounds=(-1, 1))
adaptive.runner.simple(learner, goal=lambda l: l.npoints > 200)
Timing new implementation
%%timeit
learner2 = adaptive.Learner1D(f, bounds=(-1, 1))
learner2.tell_many(*zip(*learner.data.items()))
1.17 ms ± 24.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
Timing old implementation
%%timeit
learner2 = adaptive.Learner1D(f, bounds=(-1, 1))
for x, y in learner.data.items():
learner2.tell(x, y)
6.82 ms ± 447 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
This makes it ~6 times faster for functions that return scalars and is >10 times faster for vectors.
Edited by Bas Nijholt
Merge request reports
Compare and
- version 2718618f85
- version 26580e21d5
- version 25f7f1a99e
- version 2428d277d9
- version 2339ee5798
- version 229fdb3e4c
- version 2165383ac2
- version 20d1955676
- version 190642b997
- version 1879b6331e
- version 17795dd8a9
- version 162932201b
- version 15904eeebc
- version 14fc106084
- version 13c32600b4
- version 12f1d4f04b
- version 11bdaf5187
- version 10fc24cc22
- version 92b75bb05
- version 8535d04d0
- version 757532610
- version 63832c91d
- version 54575cdf5
- version 4620a1906
- version 30b20c52a
- version 20b20c52a
- version 13a19228c
- master (base)
- latest versiond09a3c934 commits,
- version 2718618f854 commits,
- version 26580e21d54 commits,
- version 25f7f1a99e4 commits,
- version 2428d277d94 commits,
- version 2339ee57984 commits,
- version 229fdb3e4c4 commits,
- version 2165383ac25 commits,
- version 20d19556765 commits,
- version 190642b9974 commits,
- version 1879b6331e4 commits,
- version 17795dd8a94 commits,
- version 162932201b4 commits,
- version 15904eeebc4 commits,
- version 14fc1060844 commits,
- version 13c32600b44 commits,
- version 12f1d4f04b4 commits,
- version 11bdaf51874 commits,
- version 10fc24cc224 commits,
- version 92b75bb054 commits,
- version 8535d04d02 commits,
- version 7575326102 commits,
- version 63832c91d3 commits,
- version 54575cdf52 commits,
- version 4620a19063 commits,
- version 30b20c52a3 commits,
- version 20b20c52a3 commits,
- version 13a19228c2 commits,
Compare changes
- Side-by-side
- Inline
Files
2Loading