Module fix_frontiers

Moves the frontiers of the clusters so that functions can be extracted from them.

Copyright © (C) 2015, Pablo Lamela, Simon Thompson

Authors: Pablo Lamela Seijas (P.Lamela-Seijas@kent.ac.uk), Simon Thompson (S.J.Thompson@kent.ac.uk).

Description

Moves the frontiers of the clusters so that functions can be extracted from them. This is done by reducing the size of the common clusters, and expanding the size of the exclusive clusters.

Function Index

delete_trivial_clusters/1 Removes from the CommClusterDict and detaches from the Mapping every cluster with a single node in it.
fix_frontiers/5 Moves the frontiers of the clusters to places where function calls can be used to divide the trees.
node_exports_vars/2 Returns true if either Node (assumed to belong to Tree), exports variables.

Function Details

delete_trivial_clusters/1

delete_trivial_clusters(X1::{CommClusterDict::cluster_dict:cluster_dict(tree:tree_node()), Mapping::da_map:da_map(tree:tree_node(), tree:tree_node())}) -> {cluster_dict:cluster_dict(tree:tree_node()), da_map:da_map(tree:tree_node(), tree:tree_node())}

Removes from the CommClusterDict and detaches from the Mapping every cluster with a single node in it.

fix_frontiers/5

fix_frontiers(Pass::1 | 2, Tree1::tree:tree(), Tree2::tree:tree(), Mapping::da_map:da_map(tree:tree_node(), tree:tree_node()), CommCluster::cluster_dict:cluster_dict(tree:tree_node())) -> {cluster_dict:cluster_dict(tree:tree_node()), da_map:da_map(tree:tree_node(), tree:tree_node())}

Moves the frontiers of the clusters to places where function calls can be used to divide the trees. This function updates both the Mapping and the CommCluster dictionary. The right exclusive clusters are generated from the fixed Mapping at tree_clustering:cluster/3

node_exports_vars/2

node_exports_vars(Node::tree:tree_node(), Tree::tree:tree()) -> boolean()

Returns true if either Node (assumed to belong to Tree), exports variables.


Generated by EDoc, Nov 5 2015, 16:30:19.