diff options
author | Vratko Polak <vrpolak@cisco.com> | 2019-05-15 17:58:24 +0200 |
---|---|---|
committer | Tibor Frank <tifrank@cisco.com> | 2019-05-17 06:50:13 +0000 |
commit | 081c29c91b7e5f78345cfdefd75625b27b5b4812 (patch) | |
tree | f7065c3165d7b929cb9ed92823f158e365a2bb3f /resources/tools/presentation/utils.py | |
parent | 5a6c1a5a75c76e8e63f799f5c758567c1dd75b4f (diff) |
Report soak comparison: Add stdev for delta
Change-Id: Ibbff3c123afac2e68caf33f3ccd5fc4909509917
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'resources/tools/presentation/utils.py')
-rw-r--r-- | resources/tools/presentation/utils.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/resources/tools/presentation/utils.py b/resources/tools/presentation/utils.py index c350fae135..8f5630083b 100644 --- a/resources/tools/presentation/utils.py +++ b/resources/tools/presentation/utils.py @@ -16,6 +16,7 @@ import multiprocessing import subprocess +import math import numpy as np import logging import csv @@ -68,6 +69,32 @@ def relative_change(nr1, nr2): return float(((nr2 - nr1) / nr1) * 100) +def relative_change_stdev(mean1, mean2, std1, std2): + """Compute relative standard deviation of change of two values. + + The "1" values are the base for comparison. + Results are returned as percentage (and percentual points for stdev). + Linearized theory is used, so results are wrong for relatively large stdev. + + :param mean1: Mean of the first number. + :param mean2: Mean of the second number. + :param std1: Standard deviation estimate of the first number. + :param std2: Standard deviation estimate of the second number. + :type mean1: float + :type mean2: float + :type std1: float + :type std2: float + :returns: Relative change and its stdev. + :rtype: float + """ + mean1, mean2 = float(mean1), float(mean2) + quotient = mean2 / mean1 + first = std1 / mean1 + second = std2 / mean2 + std = quotient * math.sqrt(first * first + second * second) + return (quotient - 1) * 100, std * 100 + + def get_files(path, extension=None, full_path=True): """Generates the list of files to process. |