COIN-OR::LEMON - Graph Library

Changeset 742:235fd36336b7 in lemon-0.x for src/benchmark/bench_tools.h


Ignore:
Timestamp:
07/27/04 18:09:42 (20 years ago)
Author:
Alpar Juttner
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@999
Message:
  • bfs-bench added
  • hypercube generators moved to bench-tools.h
  • new benchmark script
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/benchmark/bench_tools.h

    r718 r742  
    8282}
    8383
     84
     85
     86///
     87template<class Graph>
     88void addHiperCube(Graph &G,int dim,std::vector<typename Graph::Node> &nodes)
     89{
     90  GRAPH_TYPEDEF_FACTORY(Graph);
    8491 
     92  std::vector<int> bits(dim+1);
     93  bits[0]=1;
     94  for(int i=1;i<=dim;i++) bits[i]=2*bits[i-1];
     95 
     96  for(int i=0;i<bits[dim];i++) {
     97    nodes.push_back(G.addNode());
     98    for(int j=0;j<dim;j++) if(i&bits[j]) G.addEdge(nodes[i-bits[j]],nodes[i]);
     99  }
     100}
     101
     102///
     103template<class Graph>
     104void addBiDirHiperCube(Graph &G,int dim,std::vector<typename Graph::Node>&nodes)
     105{
     106  GRAPH_TYPEDEF_FACTORY(Graph);
     107 
     108  std::vector<int> bits(dim+1);
     109  bits[0]=1;
     110  for(int i=1;i<=dim;i++) bits[i]=2*bits[i-1];
     111 
     112  for(int i=0;i<bits[dim];i++) {
     113    nodes.push_back(G.addNode());
     114    for(int j=0;j<dim;j++) if(i&bits[j]) {
     115      G.addEdge(nodes[i-bits[j]],nodes[i]);
     116      G.addEdge(nodes[i],nodes[i-bits[j]]);
     117    }
     118   
     119  }
     120
    85121
    86122#endif
Note: See TracChangeset for help on using the changeset viewer.