当前位置: 首页>>代码示例>>C++>>正文


C++ graph_type类代码示例

本文整理汇总了C++中graph_type的典型用法代码示例。如果您正苦于以下问题:C++ graph_type类的具体用法?C++ graph_type怎么用?C++ graph_type使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了graph_type类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: WorkGraphPolicy

  WorkGraphPolicy( const graph_type & arg_graph )
    : m_graph(arg_graph)
    , m_queue( view_alloc( "queue" , WithoutInitializing )
             , arg_graph.numRows() * 2 + 2 )
  {
    { // Initialize
      using policy_type = RangePolicy<std::int32_t, execution_space, TagInit>;
      using closure_type = Kokkos::Impl::ParallelFor<self_type, policy_type>;
      const closure_type closure(*this, policy_type(0, m_queue.size()));
      closure.execute();
      execution_space::fence();
    }

    { // execute-after counts
      using policy_type = RangePolicy<std::int32_t, execution_space, TagCount>;
      using closure_type = Kokkos::Impl::ParallelFor<self_type, policy_type>;
      const closure_type closure(*this,policy_type(0,m_graph.entries.size()));
      closure.execute();
      execution_space::fence();
    }

    { // Scheduling ready tasks
      using policy_type = RangePolicy<std::int32_t, execution_space, TagReady>;
      using closure_type = Kokkos::Impl::ParallelFor<self_type, policy_type>;
      const closure_type closure(*this,policy_type(0,m_graph.numRows()));
      closure.execute();
      execution_space::fence();
    }
  }
开发者ID:Pakketeretet2,项目名称:lammps,代码行数:29,代码来源:Kokkos_WorkGraphPolicy.hpp

示例2: merge_values

void merge_values(vid_vdata_vector_type& element, graph_type& graph) {
    for (auto vertex : element) {
        if (graph.contains_vertex(vertex.first)) {
            const graphlab::lvid_type lvid = graph.local_vid(vertex.first);
            graph.l_vertex(lvid).data() = vertex.second;
        }
    }
}
开发者ID:lukeleslie,项目名称:partialCheckpointing,代码行数:8,代码来源:pagerank.cpp

示例3:

    SynchronousEngine<algorithm_t>::SynchronousEngine(graph_type& graph):
    iteration_counter_(0), max_iterations_(5), graph_(graph) {
        vertex_programs_.resize(graph.num_local_vertices());
		gather_accum_.resize(graph.num_local_vertices());
        has_msg_.resize(graph.num_local_vertices(), 0);
        has_msg_.resize(graph.num_local_vertices(), message_type());
        active_superstep_.resize(graph.num_local_vertices(), 0);
        active_minorstep_.resize(graph.num_local_vertices(), 0);
    }
开发者ID:HongleiZhuang,项目名称:saedb,代码行数:9,代码来源:synchronous_engine.hpp

示例4: rmi

 graph_gather_apply<Graph,GatherType>::graph_gather_apply(
     graph_type& graph,
     gather_fun_type gather_fun,
     apply_fun_type apply_fun,
     const graphlab_options& opts) :
   gather_fun(gather_fun), apply_fun(apply_fun), rmi(graph.dc(), this), graph(graph),
   threads(opts.get_ncpus()),
   thread_barrier(opts.get_ncpus()),
   gather_exchange(graph.dc(), opts.get_ncpus(), 64 * 1024) { } 
开发者ID:LiuJianan,项目名称:powerswitch,代码行数:9,代码来源:graph_gather_apply.hpp

示例5:

 SynchronousEngine<algorithm_t>::SynchronousEngine(graph_type& graph):
 iteration_counter_(0), max_iterations_(5), graph_(graph) {
     vertex_programs_.resize(graph.num_local_vertices());
     gather_accum_.resize(graph.num_local_vertices());
     has_msg_.resize(graph.num_local_vertices(), 0);
     messages_.resize(graph.num_local_vertices(), message_type());
     active_superstep_.resize(graph.num_local_vertices(), 0);
     active_minorstep_.resize(graph.num_local_vertices(), 0);
     context = new context_type(*this, graph);
     aggregator = new aggregator_type(graph, context);
     cout<<"sync engine init"<<endl;
 }
开发者ID:neozhangthe1,项目名称:saedb,代码行数:12,代码来源:synchronous_engine.hpp

示例6: visit_next_component

    void visit_next_component(const graph_type& g, const int starting_vertex_id, Sequence& visited)
    {
        pk::queue<int, graph_type::max_num_of_vertices> q;

        q.push(starting_vertex_id);
        visited[starting_vertex_id] = true;

        while(!q.empty())
        {
            const int v = q.front();
            q.pop();

            component_ids[v] = number_of_components;

            const typename graph_type::adjacency_list& adj_v = g.get_adjacency_list(v);
            for(int i = 0; i < adj_v.size(); ++i)
            {
                const int u = adj_v[i].to;

                if(visited[u])
                    continue;

                q.push(u);
                visited[u] = true;
            }
        }
    }
开发者ID:pawel-kieliszczyk,项目名称:algorithms,代码行数:27,代码来源:connected_components.hpp

示例7: vertex_loader

// Second loader that only a single machine calls and pre-loads cameras.
bool vertex_loader(graph_type& graph, string img_path, vector<CameraParams>& cameras)
{
    // force a "/" at the end of the path
    // make sure to check that the path is non-empty. (you do not
    // want to make the empty path "" the root path "/" )
    string path = img_path;
    if (path.length() > 0 && path[path.length() - 1] != '/') path = path + "/";
    
    vector<string> graph_files;
    string search_prefix;
    graphlab::fs_util::list_files_with_prefix(path, search_prefix, graph_files);
    
    if (graph_files.size() == 0)
        logstream(LOG_WARNING) << "No files found in " << path << std::endl;
    
    // vertex data & id
    graphlab::vertex_id_type vid(-1);
    
    ///////////////////////////////////////////////////////
    // Loop over files
    for(size_t i = 0; i < graph_files.size(); ++i)
    {
        vid = i;
        vertex_data vdata;
        vdata.empty = false;
        vdata.img_path = graph_files[i];
        vdata.features.img_idx = i;
        
        vdata.camera = cameras[i]; // addition to above function.
        
        graph.add_vertex(vid, vdata);
    }
    
    return true;
}
开发者ID:Alienfeel,项目名称:graphlab,代码行数:36,代码来源:stitch_main.hpp

示例8: dfs

    static bool dfs(
            const graph_type& graph,
            const int vertex_id,
            pk::vector<int, graph_type::max_num_of_vertices>& colors,
            pk::stack<int, graph_type::max_num_of_vertices>& s)
    {
        if(colors[vertex_id] == 1)
            return false;

        if(colors[vertex_id] == 2)
            return true;

        colors[vertex_id] = 1;

        const typename graph_type::adjacency_list& adjacent_edges = graph.get_adjacency_list(vertex_id);
        for(int i = 0; i < adjacent_edges.size(); ++i)
        {
            if(!dfs(graph, adjacent_edges[i].to, colors, s))
                return false;
        }

        colors[vertex_id] = 2;
        s.push(vertex_id);

        return true;
    }
开发者ID:pawel-kieliszczyk,项目名称:algorithms,代码行数:26,代码来源:topological_sort.hpp

示例9: write_results

void write_results(char* ofile, graph_type& graph) {
    std::cout << "PageRank: Writing results to: " << ofile << std::endl;
    std::ofstream fout(ofile);
    assert(fout.is_open());

    for(graphlab::lvid_type lvid = 0; lvid < graph.get_local_graph().num_vertices(); ++lvid) {
        if (!graph.l_is_master(lvid)) {
            continue;
        }
        size_t id = graph.global_vid(lvid);
        double val = graph.get_local_graph().vertex(lvid).data();
        fout << id << "\t" << val << std::endl;
    }
    fout.close();
    std::cout << "PageRank: Results written." << std::endl;
}
开发者ID:lukeleslie,项目名称:partialCheckpointing,代码行数:16,代码来源:pagerank.cpp

示例10: line_parser

/////////////////////////////////////////////////////////////////////////
// Load the distributed UAI file
bool line_parser(graph_type& graph, const std::string& filename, const std::string& textline) {
    std::stringstream strm(textline);
    graphlab::vertex_id_type vid;
    vertex_data vdata;
    vdata.dual_contrib = 0.0;
    string type;
    strm >> type;
 
     if(type == "v") { 
      vdata.factor_type = VAR;
      vdata.nvars = 1;
      vdata.cards.resize(1);
      strm>>vid;
      strm >> vdata.cards[0];
      vdata.potentials.resize(vdata.cards[0]);
      //vdata.beliefs.setOnes(vdata.cards[0]);
      //vdata.beliefs /= vdata.cards[0];
      vdata.beliefs.setConstant(vdata.cards[0], 0.5);
      vdata.unary_degree.resize(vdata.cards[0], 0);
      //for(int i=0; i< vdata.cards[0]; i++){
      // strm>>vdata.potentials[i];
      //   vdata.potentials[i] = log10(vdata.potentials[i]);
         
      //   }
     //    vdata.potentials.maxCoeff(&vdata.best_configuration);
      graph.add_vertex(vid,vdata);
    }
开发者ID:3upperm2n,项目名称:PowerGraph,代码行数:29,代码来源:dd_main.hpp

示例11: test_contains_edge

void test_contains_edge(graph_type g,
                        vector<typename graph_type::location_type> present_locs,
                        vector<typename graph_type::location_type> absent_locs)
{
    for (auto loc : present_locs) {
        if (!g.contains_edge(loc)) {
            cout << "Test contains_egde failed on " << loc.first << ',' << loc.second << '\n';
            exit(1);
        }
    }
    for (auto loc : absent_locs) {
        if (g.contains_edge(loc)) {
            cout << "Test does not contains_egde failed on " << loc.first << ',' << loc.second << '\n';
            exit(1);
        }
    }
    cout << "Contains edge passed\n";
}
开发者ID:veronicastraszh,项目名称:fun-with-graphs,代码行数:18,代码来源:graph.cpp

示例12: line_parser

bool line_parser(graph_type& graph, const std::string& filename,
                 const std::string& textline)
{

    std::istringstream ssin(textline);
    graphlab::vertex_id_type vid;
    ssin >> vid;
    int out_nb;
    ssin >> out_nb;
    if (out_nb == 0)
        graph.add_vertex(vid);
    while (out_nb--) {
        graphlab::vertex_id_type other_vid;
        ssin >> other_vid;
        graph.add_edge(vid, other_vid);
    }
    return true;
}
开发者ID:ddmbr,项目名称:pregelplus-code,代码行数:18,代码来源:AsyncCC.cpp

示例13: test_delete_edges

void test_delete_edges(graph_type g,
                       vector<typename graph_type::location_type> kill_edges,
                       vector<weight_type> expected_weights)
{
    for (auto k : kill_edges) {
        g.delete_edge(k);
    }
    test_graph_iterator(g, expected_weights);
    cout << "Delete edges passed\n";
}
开发者ID:veronicastraszh,项目名称:fun-with-graphs,代码行数:10,代码来源:graph.cpp

示例14: edge_loader

/////////////////////////////////////////////////////////////////////////
// Edge Loader (used to read the adjacency list and add edges to the graph)
bool edge_loader(graph_type& graph, const std::string& fname,
                 const std::string& textline)
{
    if ( textline.length() == 0 || textline[0] == '#' )
        return true; // empty or comment line, return
    
    std::stringstream strm(textline);
    graphlab::vertex_id_type vid;
    
    // first entry in the line is a vertex ID
    strm >> vid;
    
    if (opts.verbose > 0)
        logstream(LOG_EMPH) << "Here's the input: "
        << textline << "\n"
        << vid << "\n";
    
    // Line should contain at least 1 more number (degree of node)
    if (!strm.good())
    {
        logstream(LOG_ERROR) << "The following ajacency list line is incomplete(check adj_list standard):\n"
        << textline << std::endl;
        return EXIT_FAILURE;
    }
    
    // second entry is the out-degree
    int outdeg;
    strm >> outdeg;
    
    graphlab::vertex_id_type other_vid;
    for (int i=0; i!=outdeg; ++i)
    {
        // Line should contain more numbers (id of neighbours)
        if (!strm.good())
        {
            logstream(LOG_ERROR) << "The following ajacency list line is incomplete(check adj_list standard):\n"
            << textline << std::endl;
            return EXIT_FAILURE;
        }
        
        strm >> other_vid;
        
        // only add edges in one direction
        if (other_vid < vid)
            continue;
        
        if (opts.verbose > 0)
            logstream(LOG_EMPH) << "Adding edge: (" << vid << "," << other_vid << ")\n";
        
        edge_data edata; edata.empty = false;
        graph.add_edge(vid,other_vid,edata);
    }
    
    return true;
}
开发者ID:Alienfeel,项目名称:graphlab,代码行数:57,代码来源:stitch_main.hpp

示例15: test_edges_at

void test_edges_at(graph_type g,
                   vector<typename graph_type::location_type> modify_edges,
                   weight_type new_value,
                   vector<weight_type> expected_weights)
{
    for (auto m : modify_edges) {
        g.edge_at(m).weight() = new_value;
    }
    test_graph_iterator(g, expected_weights);
    cout << "Edges at passed\n";
}
开发者ID:veronicastraszh,项目名称:fun-with-graphs,代码行数:11,代码来源:graph.cpp


注:本文中的graph_type类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。