COIN-OR::LEMON - Graph Library

Changeset 742:235fd36336b7 in lemon-0.x


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
Location:
src/benchmark
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • src/benchmark/Makefile.am

    r711 r742  
    11AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/work  -I$(top_srcdir)/src/work/marci
    22
    3 noinst_PROGRAMS = graph-bench hcube
     3noinst_PROGRAMS = graph-bench hcube bfs-bench
    44
    55graph_bench_SOURCES = graph-bench.cc bench_tools.h
    66
    77hcube_SOURCES = hcube.cc bench_tools.h
     8
     9bfs_bench_SOURCES = bfs-bench.cc bench_tools.h
  • 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
  • src/benchmark/benchmark

    r723 r742  
    44{
    55    echo $1 1>&2
    6     for ((i=1;i<5;i++))
     6    $2 $3 $4 $5 $6 $7 $8 $9;
     7    for ((i=1;i<=5;i++))
    78      do
    89      $2 $3 $4 $5 $6 $7 $8 $9;
  • src/benchmark/hcube.cc

    r729 r742  
    1111using namespace std;
    1212using namespace hugo;
    13 
    14 template<class Graph>
    15 void addHiperCube(Graph &G,int dim,vector<typename Graph::Node> &nodes)
    16 {
    17   GRAPH_TYPEDEF_FACTORY(Graph);
    18  
    19   vector<int> bits(dim+1);
    20   bits[0]=1;
    21   for(int i=1;i<=dim;i++) bits[i]=2*bits[i-1];
    22  
    23   for(int i=0;i<bits[dim];i++) {
    24     nodes.push_back(G.addNode());
    25     for(int j=0;j<dim;j++) if(i&bits[j]) G.addEdge(nodes[i-bits[j]],nodes[i]);
    26   }
    27 }
    28 
    29 template<class Graph>
    30 void addBiDirHiperCube(Graph &G,int dim,vector<typename Graph::Node> &nodes)
    31 {
    32   GRAPH_TYPEDEF_FACTORY(Graph);
    33  
    34   vector<int> bits(dim+1);
    35   bits[0]=1;
    36   for(int i=1;i<=dim;i++) bits[i]=2*bits[i-1];
    37  
    38   for(int i=0;i<bits[dim];i++) {
    39     nodes.push_back(G.addNode());
    40     for(int j=0;j<dim;j++) if(i&bits[j]) {
    41       G.addEdge(nodes[i-bits[j]],nodes[i]);
    42       G.addEdge(nodes[i],nodes[i-bits[j]]);
    43     }
    44    
    45   }
    46 }
    4713
    4814inline int numOfOnes(int n,int dim)
Note: See TracChangeset for help on using the changeset viewer.