NewMapWin has become Dialog instead of Window. Therefore it is created dynamically, when there is need for it, instead of keeping one instance in memory. This solution is slower, but more correct than before.
1 #include<lemon/list_graph.h>
3 #include"bench_tools.h"
7 ///Makes a full graph by adding and deleting a lot of edges;
9 ///\param n Number of nodes.
10 ///\param rat The funcion will make \f$rat\timesn^2\f$ edge addition and
11 ///\f$(rat-1)\timesn^2\f$ deletion.
12 ///\param p Tuning parameters.
13 ///\warning \c rat, \c p, and \c n must be pairwise relative primes.
14 template <class Graph>
15 void makeFullGraph(int n, int rat, int p)
17 GRAPH_TYPEDEFS(typename Graph);
22 std::vector<Node> nodes(n);
23 for(int i=0;i<n;i++) nodes[i]=G.addNode();
26 std::vector<Edge> equ(rat);
30 for(count=0;count<rat;count++) {
31 equ[count%rat]=G.addEdge(nodes[(count*p)%n],nodes[(count*p/n)%n]);
33 for(;(count%rat)||((count*p)%n)||((count*p/n)%n);count++) {
34 // if(!(count%1000000)) fprintf(stderr,"%d\r",count);
35 if(count%rat) G.erase(equ[count%rat]);
36 equ[count%rat]=G.addEdge(nodes[(count*p)%n],nodes[(count*p/n)%n]);
38 // std::cout << "Added " << count
39 // << " ( " << n << "^2 * " << rat << " ) edges\n";
42 // for(int i=0;1;i++) ;
48 makeFullGraph<ListGraph>(nextPrim(1000),nextPrim(300),nextPrim(100));
52 makeFullGraph<ListGraph>(nextPrim(100),nextPrim(30000),nextPrim(150));