4 #include<lemon/list_graph.h>
 
     5 #include<lemon/smart_graph.h>
 
     6 #include<lemon/dijkstra.h>
 
     7 #include<lemon/preflow.h>
 
     9 #include"bench_tools.h"
 
    12 using namespace lemon;
 
    14 inline int numOfOnes(int n,int dim)
 
    17   for(int i=0;i<dim;i++) {
 
    24 inline int numOfZeros(int n,int dim)
 
    27   for(int i=0;i<dim;i++) {
 
    34 int main(int argc, char *argv[])
 
    36   //  typedef ListGraph Graph;
 
    37   typedef SmartGraph Graph;
 
    39   ///\bug GRAPH_TYPEDEF_FACTORY(Graph);
 
    40   GRAPH_TYPEDEF_FACTORY_NOTYPENAME(Graph);
 
    47     cout << "Usage: " << argv[0] << " dim\n";
 
    51   int dim=atoi(argv[1]);
 
    53 //   cout << "Creating Hipercube ("<< (1<<dim) << " nodes, "
 
    54 //        << dim*(1<<dim) << " edges):";
 
    58   addBiDirHiperCube(G,dim,nodes);
 
    60   PrintTime("GENGRAPH",T);
 
    63   Graph::EdgeMap<int> map(G);
 
    64   for(int i=0;i<5;i++) {
 
    66     for(int i=0;i<dim*(1<<dim);i++) P();
 
    68     //  for(EdgeIt e(G);G.valid(e);G.next(e)) map[e]=P();
 
    70     for(int i=0;i<dim*(1<<dim);i++) {
 
    71       te.setToId(((long long int)(i)*93505)%(dim*(1<<dim)));
 
    72       //    map[Edge(((long long int)(i)*2987)%(dim*(1<<dim)))]=P();
 
    76 //     for(int i=0;i<(1<<dim);i++) {
 
    77 //       int mul= (1<<(numOfZeros(i,dim)/4));
 
    78 //       for(OutEdgeIt e(G,nodes[i]);G.valid(e);G.next(e))
 
    83   PrintTime("GENLENGTHS",T);
 
    87     Dijkstra<Graph> Dij(G,map);
 
    91   PrintTime("DIJKSTRA",T);
 
    95    Graph::EdgeMap<int> flow(G);
 
    97     Preflow<Graph,int> MF(G,nodes[0],nodes[1<<dim-1],map,flow);
 
   101   PrintTime("PREFLOW",T);