summaryrefslogtreecommitdiff
path: root/grc/core/utils/complexity.py
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2016-07-14 14:22:43 +0200
committerSebastian Koslowski <koslowski@kit.edu>2016-07-14 14:22:43 +0200
commitfb81e9b463d8e0c1f6f2aa5739a290a00fcab207 (patch)
treec803cb79ecf52e9a697ca0cc776ebc0d7d589fb0 /grc/core/utils/complexity.py
parent5b9404f8836db0ccfc0d732d93b1b7beeca96ded (diff)
grc: refactor: minor clean-up and fixes
Diffstat (limited to 'grc/core/utils/complexity.py')
-rw-r--r--grc/core/utils/complexity.py50
1 files changed, 0 insertions, 50 deletions
diff --git a/grc/core/utils/complexity.py b/grc/core/utils/complexity.py
deleted file mode 100644
index 6da16eb28d..0000000000
--- a/grc/core/utils/complexity.py
+++ /dev/null
@@ -1,50 +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.key == 'options':
- continue
-
- # Don't worry about optional sinks?
- sink_list = [c for c in block.sinks if not c.get_optional()]
- source_list = [c for c in block.sources if not c.get_optional()]
- 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(len(c.get_connections()) for c in sink_list) / max(sinks, 1.0)), 1.0)
- source_multi = max(float(sum(len(c.get_connections()) for c in source_list) / max(sources, 1.0)), 1.0)
- dbal += base * multi * sink_multi * source_multi
-
- blocks = float(len(flowgraph.blocks))
- connections = float(len(flowgraph.connections))
- elements = blocks + connections
- disabled_connections = sum(not c.get_enabled() for c in 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