Skip to content
Snippets Groups Projects
Commit 45e161b1 authored by ncteisen's avatar ncteisen
Browse files

Make threshold toggleable

parent 716f7afa
No related branches found
No related tags found
No related merge requests found
......@@ -108,7 +108,7 @@ class Benchmark:
mdn_diff = abs(_median(new) - _median(old))
_maybe_print('%s: %s=%r %s=%r mdn_diff=%r' %
(f, new_name, new, old_name, old, mdn_diff))
s = bm_speedup.speedup(new, old)
s = bm_speedup.speedup(new, old, 1e-10)
if abs(s) > 3 and mdn_diff > 0.5:
self.final[f] = '%+d%%' % s
return self.final.keys()
......
......@@ -17,8 +17,6 @@
from scipy import stats
import math
_THRESHOLD = 1e-10
def scale(a, mul):
return [x * mul for x in a]
......@@ -28,18 +26,18 @@ def cmp(a, b):
return stats.ttest_ind(a, b)
def speedup(new, old):
def speedup(new, old, threshold):
if (len(set(new))) == 1 and new == old: return 0
s0, p0 = cmp(new, old)
if math.isnan(p0): return 0
if s0 == 0: return 0
if p0 > _THRESHOLD: return 0
if p0 > threshold: return 0
if s0 < 0:
pct = 1
while pct < 101:
sp, pp = cmp(new, scale(old, 1 - pct / 100.0))
if sp > 0: break
if pp > _THRESHOLD: break
if pp > threshold: break
pct += 1
return -(pct - 1)
else:
......@@ -47,7 +45,7 @@ def speedup(new, old):
while pct < 100000:
sp, pp = cmp(new, scale(old, 1 + pct / 100.0))
if sp < 0: break
if pp > _THRESHOLD: break
if pp > threshold: break
pct += 1
return pct - 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment