csdf/base/algo/components.cc File Reference

#include "components.h"
#include "dfs.h"
Include dependency graph for csdf/base/algo/components.cc:

Functions

static void treeVisitChildren (CSDFgraph *g, CSDFactor **pi, CSDFactor *u, CSDFgraphComponent &comp)
static CSDFgraphComponents getComponents (CSDFgraph *g, CSDFactor **pi)
CSDFgraphComponents stronglyConnectedComponents (CSDFgraph *g)
bool actorInComponent (CSDFactor *a, CSDFgraphComponent &component)
bool isStronglyConnectedGraph (CSDFgraph *g)
CSDFgraphcomponentToCSDFgraph (CSDFgraphComponent &component)

Function Documentation

bool actorInComponent ( CSDFactor a,
CSDFgraphComponent component 
)

actorInComponent () The function check wether an actor is in a component. If so, the function returns true. Else it returns false.

References CSDFcomponent::getId().

Referenced by componentToCSDFgraph(), componentToSDFgraph(), makeStronglyConnected(), and sdfComponentToGraph().

Here is the call graph for this function:

CSDFgraph* componentToCSDFgraph ( CSDFgraphComponent component  ) 

componentToSDFgraph () The function returns an SDF graph containing all actors and channels inside the component.

References a, actorInComponent(), c, CSDFgraph::clone(), g, CSDFchannel::getDstActor(), CSDFchannel::getDstPort(), CSDFcomponent::getId(), CSDFcomponent::getName(), CSDFcomponent::getParent(), CSDFchannel::getSrcActor(), CSDFchannel::getSrcPort(), CSDFactor::removePort(), and v.

Referenced by CSDFstateSpaceThroughputAnalysis::analyze().

Here is the call graph for this function:

static CSDFgraphComponents getComponents ( CSDFgraph g,
CSDFactor **  pi 
) [static]

getComponents () The function determines the strongly connected components in the graph. To do this, it performs depth-first walk on the forest given by 'pi'.

References CSDFgraph::getActor(), CSDFgraph::nrActors(), and treeVisitChildren().

Referenced by stronglyConnectedComponents().

Here is the call graph for this function:

CSDFgraphComponents stronglyConnectedComponents ( CSDFgraph g  ) 

stronglyConnectedComponents () The function determines the strongly connected components in the graph.

References ASSERT, dfs(), getComponents(), CSDFgraph::nrActors(), and pi.

Referenced by SDFstateSpaceThroughputAnalysis::analyze(), CSDFstateSpaceThroughputAnalysis::analyze(), analyzeSDFG(), distributeInitialTokens(), findSimpleCycle(), findSimpleCycles(), isAcyclic(), isStronglyConnectedGraph(), makeStronglyConnected(), and mcmSimpleCycles().

Here is the call graph for this function:

static void treeVisitChildren ( CSDFgraph g,
CSDFactor **  pi,
CSDFactor u,
CSDFgraphComponent comp 
) [static]

treeVisitChildren () The function visits all children of the actor 'u'. The parent-child relation is given via the vector 'pi'. Each child is added to the component 'comp'.

References CSDFgraph::getActor(), CSDFcomponent::getId(), CSDFgraph::nrActors(), and v.

Referenced by getComponents().

Here is the call graph for this function: