Пример #1
0
    void transitivePredecessorComponents(const ComponentGraph& compgraph, Component from, Set& preds) {
        // we need a hash map, as component graph is no graph with vecS-storage
        //
        typedef boost::unordered_map<Component, boost::default_color_type> CompColorHashMap;
        typedef boost::associative_property_map<CompColorHashMap> CompColorMap;
        CompColorHashMap ccWhiteHashMap;
        // fill white hash map
        ComponentIterator cit, cit_end;
        for(boost::tie(cit, cit_end) = compgraph.getComponents();
        cit != cit_end; ++cit) {
            //boost::put(ccWhiteHashMap, *cit, boost::white_color);
            ccWhiteHashMap[*cit] = boost::white_color;
        }
        CompColorHashMap ccHashMap(ccWhiteHashMap);

        //
        // do DFS
        //
        DFSVisitor dfs_vis(compgraph, preds);
        //LOG("doing dfs visit for root " << *itr);
        boost::depth_first_visit(
            compgraph.getInternalGraph(),
            from,
            dfs_vis,
            CompColorMap(ccHashMap));
        DBGLOG(DBG,"predecessors of " << from << " are " << printrange(preds));
    }
Пример #2
0
EvalGraphBuilder::EvalGraphBuilder(
ProgramCtx& ctx,
ComponentGraph& cg,
EvalGraphT& eg,
ASPSolverManager::SoftwareConfigurationPtr externalEvalConfig):
ctx(ctx),
clonedcgptr(cg.clone()),
cg(*clonedcgptr),
eg(eg),
externalEvalConfig(externalEvalConfig),
mapping(),
unusedEdgeFilter(&cg, &mapping),
unusedVertexFilter(&mapping),
cgrest(cg.getInternalGraph(), unusedEdgeFilter, unusedVertexFilter)
{
}