diff --git a/analyses/derivative.py b/analyses/derivative.py index 77122f5..de95f43 100644 --- a/analyses/derivative.py +++ b/analyses/derivative.py @@ -29,6 +29,7 @@ import os import re import sys +import numpy as np import xmlrpclib from argparse import ArgumentParser, RawTextHelpFormatter @@ -47,7 +48,7 @@ # python-lxml module from lxml import etree # statistics module -from statlib import pstat +# from statlib import pstat # pyparsing module import pyparsing as pypa pypa.ParserElement.enablePackrat() # speed up parsing @@ -309,11 +310,11 @@ def _countNestedIfdefs(root): if (len(cnlist) > 0): nnimax = max(cnlist) nnitmp = filter(lambda n: n > 0, cnlist) - nnimean = pstat.stats.lmean(nnitmp) + nnimean = np.mean(nnitmp) else: nnimax = 0 nnimean = 0 - if (len(cnlist) > 1): nnistd = pstat.stats.lstdev(cnlist) + if (len(cnlist) > 1): nnistd = np.std(cnlist) else: nnistd = 0 return (nnimax, nnimean, nnistd) @@ -770,10 +771,10 @@ def _getFeatureStats(features): lofmin = min(floflist) lofmax = max(floflist) lof = reduce(lambda m,n: m+n, floflist) - lofmean = pstat.stats.lmean(floflist) + lofmean = np.mean(floflist) if (len(floflist) > 1): - lofstd = pstat.stats.lstdev(floflist) + lofstd = np.std(floflist) return (nof, nod, lof, lofmin, lofmax, lofmean, lofstd) @@ -893,14 +894,14 @@ def __add(x, y): scat.append(vec.count(True)) tang = map(__add, tang, vec) - if (len(scat)): sdegmean = pstat.stats.lmean(scat) + if (len(scat)): sdegmean = np.mean(scat) else: sdegmean = 0 - if (len(scat) > 1): sdegstd = pstat.stats.lstdev(scat) + if (len(scat) > 1): sdegstd = np.std(scat) else: sdegstd = 0 - if (len(tang)): tdegmean = pstat.stats.lmean(tang) + if (len(tang)): tdegmean = np.mean(tang) else: tdegmean = 0 - if (len(tang) > 1): tdegstd = pstat.stats.lstdev(tang) + if (len(tang) > 1): tdegstd = np.std(tang) else: tdegstd = 0 return (sdegmean, sdegstd, tdegmean, tdegstd) diff --git a/analyses/general.py b/analyses/general.py index de36c18..d5c9d85 100644 --- a/analyses/general.py +++ b/analyses/general.py @@ -29,6 +29,7 @@ import re import sys import xmlrpclib +import numpy as np from argparse import ArgumentParser, RawTextHelpFormatter @@ -47,7 +48,7 @@ # python-lxml module from lxml import etree # statistics module -from statlib import pstat +# from statlib import pstat # pyparsing module import pyparsing as pypa pypa.ParserElement.enablePackrat() # speed up parsing @@ -467,11 +468,11 @@ def _countNestedIfdefs(root): nnimax = max(cnlist) nnitmp = filter(lambda n: n > 0, cnlist) __nestedIfdefsLevels.append(nnitmp) - nnimean = pstat.stats.lmean(nnitmp) + nnimean = np.mean(nnitmp) else: nnimax = 0 nnimean = 0 - if (len(cnlist) > 1): nnistd = pstat.stats.lstdev(cnlist) + if (len(cnlist) > 1): nnistd = np.std(cnlist) else: nnistd = 0 return (nnimax, nnimean, nnistd) @@ -928,10 +929,10 @@ def _getFeatureStats(features): lofmin = min(floflist) lofmax = max(floflist) lof = reduce(lambda m,n: m+n, floflist) - lofmean = pstat.stats.lmean(floflist) + lofmean = np.mean(floflist) if (len(floflist) > 1): - lofstd = pstat.stats.lstdev(floflist) + lofstd = np.std(floflist) return (nof, nod, lof, lofmin, lofmax, lofmean, lofstd) @@ -1051,14 +1052,14 @@ def __add(x, y): scat.append(vec.count(True)) tang = map(__add, tang, vec) - if (len(scat)): sdegmean = pstat.stats.lmean(scat) + if (len(scat)): sdegmean = np.mean(scat) else: sdegmean = 0 - if (len(scat) > 1): sdegstd = pstat.stats.lstdev(scat) + if (len(scat) > 1): sdegstd = np.std(scat) else: sdegstd = 0 - if (len(tang)): tdegmean = pstat.stats.lmean(tang) + if (len(tang)): tdegmean = np.mean(tang) else: tdegmean = 0 - if (len(tang) > 1): tdegstd = pstat.stats.lstdev(tang) + if (len(tang) > 1): tdegstd = np.std(tang) else: tdegstd = 0 return (sdegmean, sdegstd, tdegmean, tdegstd) @@ -1118,12 +1119,12 @@ def __getNumOfFilesPerFeatureStats(filetofeatureconstants): #mean if (len(numbers) > 0): - numbersmean = pstat.stats.lmean(numbers) + numbersmean = np.mean(numbers) else: numbersmean = 0 # std if (len(numbers) > 1): - numbersstd = pstat.stats.lstdev(numbers) + numbersstd = np.std(numbers) else: numbersstd = 0 @@ -1353,11 +1354,11 @@ def _mergeFeatures(ffeatures): # ANDAVG + ANDSTDEV nestedIfdefsLevels = _flatten(__nestedIfdefsLevels) if (len(nestedIfdefsLevels)): - nnimean = pstat.stats.lmean(nestedIfdefsLevels) + nnimean = np.mean(nestedIfdefsLevels) else: nnimean = 0 if (len(nestedIfdefsLevels) > 1): - nnistd = pstat.stats.lstdev(nestedIfdefsLevels) + nnistd = np.std(nestedIfdefsLevels) else: nnistd = 0 diff --git a/analyses/generalvalues.py b/analyses/generalvalues.py index dda1a4a..526e18d 100644 --- a/analyses/generalvalues.py +++ b/analyses/generalvalues.py @@ -45,7 +45,7 @@ # python-lxml module from lxml import etree # statistics module -from statlib import pstat +# from statlib import pstat # pyparsing module import pyparsing as pypa pypa.ParserElement.enablePackrat() # speed up parsing diff --git a/analyses/interaction.py b/analyses/interaction.py index a000c02..9246cc7 100644 --- a/analyses/interaction.py +++ b/analyses/interaction.py @@ -29,6 +29,7 @@ import os import re import sys +import numpy as np import xmlrpclib from argparse import ArgumentParser, RawTextHelpFormatter @@ -47,7 +48,7 @@ # python-lxml module from lxml import etree # statistics module -from statlib import pstat +# from statlib import pstat # pyparsing module import pyparsing as pypa pypa.ParserElement.enablePackrat() # speed up parsing @@ -310,11 +311,11 @@ def _countNestedIfdefs(root): if (len(cnlist) > 0): nnimax = max(cnlist) nnitmp = filter(lambda n: n > 0, cnlist) - nnimean = pstat.stats.lmean(nnitmp) + nnimean = np.mean(nnitmp) else: nnimax = 0 nnimean = 0 - if (len(cnlist) > 1): nnistd = pstat.stats.lstdev(cnlist) + if (len(cnlist) > 1): nnistd = np.std(cnlist) else: nnistd = 0 return (nnimax, nnimean, nnistd) @@ -771,10 +772,10 @@ def _getFeatureStats(features): lofmin = min(floflist) lofmax = max(floflist) lof = reduce(lambda m,n: m+n, floflist) - lofmean = pstat.stats.lmean(floflist) + lofmean = np.mean(floflist) if (len(floflist) > 1): - lofstd = pstat.stats.lstdev(floflist) + lofstd = np.std(floflist) return (nof, nod, lof, lofmin, lofmax, lofmean, lofstd) @@ -894,14 +895,14 @@ def __add(x, y): scat.append(vec.count(True)) tang = map(__add, tang, vec) - if (len(scat)): sdegmean = pstat.stats.lmean(scat) + if (len(scat)): sdegmean = np.mean(scat) else: sdegmean = 0 - if (len(scat) > 1): sdegstd = pstat.stats.lstdev(scat) + if (len(scat) > 1): sdegstd = np.std(scat) else: sdegstd = 0 - if (len(tang)): tdegmean = pstat.stats.lmean(tang) + if (len(tang)): tdegmean = np.mean(tang) else: tdegmean = 0 - if (len(tang) > 1): tdegstd = pstat.stats.lstdev(tang) + if (len(tang) > 1): tdegstd = np.std(tang) else: tdegstd = 0 return (sdegmean, sdegstd, tdegmean, tdegstd) @@ -1056,7 +1057,9 @@ def _mergeFeatures(ffeatures): c != [''], afeatures.items()) annotations = map(lambda (a, (flag, b, c)): flag, afeatureitems) annotations3andmore = filter(lambda a: len(a) > 2, annotations) + print(annotations3andmore) annotations3andmore = uniqueItems(annotations3andmore) + print("\n".join(sorted(list(map(lambda x: str(sorted(list(x))), annotations3andmore))))) annotations3andmore = map(lambda s: set(s), annotations3andmore) relevantannotations = list() missingannotations = list() diff --git a/cppstats.sh b/cppstats.sh index a76c8de..91b6114 100755 --- a/cppstats.sh +++ b/cppstats.sh @@ -22,10 +22,10 @@ # Andreas Ringlstetter + pushd `dirname $0` > /dev/null CPPSTATS=`pwd` popd > /dev/null - cd ${CPPSTATS} -PYTHONPATH="$PYTHONPATH:$CPPSTATS/lib" +export PYTHONPATH="$PYTHONPATH:$CPPSTATS" ./cppstats/cppstats.py "$@" diff --git a/cppstats/cli.py b/cppstats/cli.py index 87ff3dc..599fb76 100644 --- a/cppstats/cli.py +++ b/cppstats/cli.py @@ -30,7 +30,7 @@ # ################################################# # imports from subfolders -import preparation, analysis +import analysis import cppstats as cstats # import cppstats.py and avoid confusion with module