X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Futils.py;h=3f0d6ff084ad1c1d60827b85c4bb65026dea9d23;hb=30c5d0cb071650a26357ef6e2737f17422ad824d;hp=c350fae13543ddd09dcc744e8803b9b80b17a3c5;hpb=fce7b4b339f7a79b80143bbd796460720489d694;p=csit.git diff --git a/resources/tools/presentation/utils.py b/resources/tools/presentation/utils.py index c350fae135..3f0d6ff084 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. @@ -208,9 +235,11 @@ def archive_input_data(spec): logging.info(" Archiving the input data files ...") - extension = spec.input["file-format"] - data_files = get_files(spec.environment["paths"]["DIR[WORKING,DATA]"], - extension=extension) + extension = spec.input["arch-file-format"] + data_files = list() + for ext in extension: + data_files.extend(get_files( + spec.environment["paths"]["DIR[WORKING,DATA]"], extension=ext)) dst = spec.environment["paths"]["DIR[STATIC,ARCH]"] logging.info(" Destination: {0}".format(dst))