alpar@708: // -*- mode:C++ -*- alpar@708: alpar@708: #include alpar@708: #include alpar@708: #include alpar@708: #include alpar@708: #include alpar@708: #include alpar@711: //#include<../work/jacint/max_flow.h> alpar@711: #include"bench_tools.h" alpar@708: alpar@708: using namespace std; alpar@708: using namespace hugo; alpar@708: alpar@708: template alpar@708: void addHiperCube(Graph &G,int dim,vector &nodes) alpar@708: { alpar@708: GRAPH_TYPEDEF_FACTORY(Graph); alpar@708: alpar@708: vector bits(dim+1); alpar@708: bits[0]=1; alpar@708: for(int i=1;i<=dim;i++) bits[i]=2*bits[i-1]; alpar@708: alpar@708: for(int i=0;i alpar@708: void addBiDirHiperCube(Graph &G,int dim,vector &nodes) alpar@708: { alpar@708: GRAPH_TYPEDEF_FACTORY(Graph); alpar@708: alpar@708: vector bits(dim+1); alpar@708: bits[0]=1; alpar@708: for(int i=1;i<=dim;i++) bits[i]=2*bits[i-1]; alpar@708: alpar@708: for(int i=0;i nodes; alpar@708: addBiDirHiperCube(G,dim,nodes); alpar@708: cout << T; alpar@708: cout << "\nGenerating the lengths: "; alpar@708: T.reset(); alpar@708: Graph::EdgeMap map(G); alpar@708: { alpar@708: Primes P; alpar@708: for(int i=0;i Dij(G,map); alpar@708: Dij.run(nodes[0]); alpar@708: } alpar@708: cout << T; alpar@708: // cout << "\nRunning MaxFlow: "; alpar@708: // T.reset(); alpar@708: // { alpar@708: // Graph::EdgeMap flow(G); alpar@708: alpar@708: // MaxFlow MF(G,nodes[0],nodes[1<