diff options
Diffstat (limited to 'tools/profiling/microbenchmarks/bm_diff/bm_speedup.py')
-rwxr-xr-x | tools/profiling/microbenchmarks/bm_diff/bm_speedup.py | 61 |
1 files changed, 31 insertions, 30 deletions
diff --git a/tools/profiling/microbenchmarks/bm_diff/bm_speedup.py b/tools/profiling/microbenchmarks/bm_diff/bm_speedup.py index 63e691af02..2a77040360 100755 --- a/tools/profiling/microbenchmarks/bm_diff/bm_speedup.py +++ b/tools/profiling/microbenchmarks/bm_diff/bm_speedup.py @@ -19,40 +19,41 @@ import math _DEFAULT_THRESHOLD = 1e-10 + def scale(a, mul): - return [x * mul for x in a] + return [x * mul for x in a] def cmp(a, b): - return stats.ttest_ind(a, b) - - -def speedup(new, old, threshold = _DEFAULT_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 s0 < 0: - pct = 1 - while pct < 100: - sp, pp = cmp(new, scale(old, 1 - pct / 100.0)) - if sp > 0: break - if pp > threshold: break - pct += 1 - return -(pct - 1) - else: - pct = 1 - while pct < 10000: - sp, pp = cmp(new, scale(old, 1 + pct / 100.0)) - if sp < 0: break - if pp > threshold: break - pct += 1 - return pct - 1 + return stats.ttest_ind(a, b) + + +def speedup(new, old, threshold=_DEFAULT_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 s0 < 0: + pct = 1 + while pct < 100: + sp, pp = cmp(new, scale(old, 1 - pct / 100.0)) + if sp > 0: break + if pp > threshold: break + pct += 1 + return -(pct - 1) + else: + pct = 1 + while pct < 10000: + sp, pp = cmp(new, scale(old, 1 + pct / 100.0)) + if sp < 0: break + if pp > threshold: break + pct += 1 + return pct - 1 if __name__ == "__main__": - new = [0.0, 0.0, 0.0, 0.0] - old = [2.96608e-06, 3.35076e-06, 3.45384e-06, 3.34407e-06] - print speedup(new, old, 1e-5) - print speedup(old, new, 1e-5) + new = [0.0, 0.0, 0.0, 0.0] + old = [2.96608e-06, 3.35076e-06, 3.45384e-06, 3.34407e-06] + print speedup(new, old, 1e-5) + print speedup(old, new, 1e-5) |