diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2016-02-04 17:27:21 +0100 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2016-02-17 19:55:17 +0100 |
commit | 412df3a17ec35277f5a1d2f21c6f9a287f9ef8ad (patch) | |
tree | 384b6c789e8fd3bceb057a629ad15022f0de689c /grc/model/utils/complexity.py | |
parent | ed6e9a484ddddbbadf19584f6606d2c9e36de823 (diff) |
grc-refactor: rename grc/model/ to grc/core/
Diffstat (limited to 'grc/model/utils/complexity.py')
-rw-r--r-- | grc/model/utils/complexity.py | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/grc/model/utils/complexity.py b/grc/model/utils/complexity.py deleted file mode 100644 index baa8040db4..0000000000 --- a/grc/model/utils/complexity.py +++ /dev/null @@ -1,49 +0,0 @@ - -def calculate_flowgraph_complexity(flowgraph): - """ Determines the complexity of a flowgraph """ - dbal = 0 - for block in flowgraph.blocks: - # Skip options block - if block.get_key() == 'options': - continue - - # Don't worry about optional sinks? - sink_list = filter(lambda c: not c.get_optional(), block.get_sinks()) - source_list = filter(lambda c: not c.get_optional(), block.get_sources()) - sinks = float(len(sink_list)) - sources = float(len(source_list)) - base = max(min(sinks, sources), 1) - - # Port ratio multiplier - if min(sinks, sources) > 0: - multi = sinks / sources - multi = (1 / multi) if multi > 1 else multi - else: - multi = 1 - - # Connection ratio multiplier - sink_multi = max(float(sum(map(lambda c: len(c.get_connections()), sink_list)) / max(sinks, 1.0)), 1.0) - source_multi = max(float(sum(map(lambda c: len(c.get_connections()), source_list)) / max(sources, 1.0)), 1.0) - dbal = dbal + (base * multi * sink_multi * source_multi) - - blocks = float(len(flowgraph.blocks)) - connections = float(len(flowgraph.connections)) - elements = blocks + connections - disabled_connections = len(filter(lambda c: not c.get_enabled(), flowgraph.connections)) - variables = elements - blocks - connections - enabled = float(len(flowgraph.get_enabled_blocks())) - - # Disabled multiplier - if enabled > 0: - disabled_multi = 1 / (max(1 - ((blocks - enabled) / max(blocks, 1)), 0.05)) - else: - disabled_multi = 1 - - # Connection multiplier (How many connections ) - if (connections - disabled_connections) > 0: - conn_multi = 1 / (max(1 - (disabled_connections / max(connections, 1)), 0.05)) - else: - conn_multi = 1 - - final = round(max((dbal - 1) * disabled_multi * conn_multi * connections, 0.0) / 1000000, 6) - return final |