Index: src/work/marci/max_bipartite_matching_demo.cc
===================================================================
--- src/work/marci/max_bipartite_matching_demo.cc	(revision 197)
+++ src/work/marci/max_bipartite_matching_demo.cc	(revision 198)
@@ -92,10 +92,11 @@
 //   G.addEdge(s_nodes[3], t_nodes[4-4]);
 
-
+  leda_list<leda_node> A;
+  leda_list<leda_node> B;
   Graph::NodeMap<bool> s_map(G); //false
   Graph::NodeMap<bool> t_map(G); //false
   
-  for(int i=0; i<a; ++i) s_map.set(s_nodes[i], true);
-  for(int i=0; i<b; ++i) t_map.set(t_nodes[i], true);
+  for(int i=0; i<a; ++i) { s_map.set(s_nodes[i], true); A+=s_nodes[i]; }
+  for(int i=0; i<b; ++i) { t_map.set(t_nodes[i], true); B+=t_nodes[i]; }
 
 //   cout << "bfs and dfs iterator demo on the directed graph" << endl;
@@ -113,5 +114,5 @@
 
   {
-    std::cout << "on-the-fly max bipartite matching demo on wrapped leda graph..." << std::endl;
+    std::cout << "on-the-fly max bipartite matching (Edmonds-Karp) demo on wrapped leda graph..." << std::endl;
     Graph::EdgeMap<int> flow(G); //0 flow
     Graph::EdgeMap<int> cap(G, 1);
@@ -145,36 +146,36 @@
   }
 
-  {
-    std::cout << "on-the-fly max bipartite matching demo (Hopcroft-Karp) on wrapped leda graph..." << std::endl;
-    Graph::EdgeMap<int> flow(G); //0 flow
-    Graph::EdgeMap<int> cap(G, 1);
-
-    Timer ts;
-    ts.reset();
-
-    MaxMatching<Graph, int, Graph::EdgeMap<int>, Graph::EdgeMap<int> > max_flow_test(G, s_map, t_map, flow, cap);
-    int i=0;
-    while (max_flow_test.augmentOnBlockingFlow2()) { 
-//       for(EdgeIt e=G.first<EdgeIt>(); G.valid(e); G.next(e))  
-// 	std::cout << G.id(G.tail(e)) << "-" << flow.get(e) << "->" << G.id(G.head(e)) << " ";
-//       std::cout<<std::endl;
-      ++i; 
-    }
-
-//     std::cout << "maximum matching: "<< std::endl;
-//     for(EdgeIt e=G.first<EdgeIt>(); G.valid(e); G.next(e))  
-//       if (flow.get(e))
-// 	std::cout << G.id(G.tail(e)) << "-" << flow.get(e) << "->" << G.id(G.head(e)) << " ";
-//     std::cout<<std::endl;
-//     std::cout << "edges which are not in this maximum matching: "<< std::endl;
-//     for(EdgeIt e=G.first<EdgeIt>(); G.valid(e); G.next(e))  
-//       if (!flow.get(e))
-// 	std::cout << G.id(G.tail(e)) << "-" << flow.get(e) << "->" << G.id(G.head(e)) << " ";
-//     std::cout<<std::endl;
-    
-    std::cout << "elapsed time: " << ts << std::endl;
-    std::cout << "number of augmentation phases: " << i << std::endl; 
-    std::cout << "flow value: "<< max_flow_test.flowValue() << std::endl;
-  }
+//   {
+//     std::cout << "on-the-fly max bipartite matching demo (Hopcroft-Karp) on wrapped leda graph..." << std::endl;
+//     Graph::EdgeMap<int> flow(G); //0 flow
+//     Graph::EdgeMap<int> cap(G, 1);
+
+//     Timer ts;
+//     ts.reset();
+
+//     MaxMatching<Graph, int, Graph::EdgeMap<int>, Graph::EdgeMap<int> > max_flow_test(G, s_map, t_map, flow, cap);
+//     int i=0;
+//     while (max_flow_test.augmentOnBlockingFlow2()) { 
+// //       for(EdgeIt e=G.first<EdgeIt>(); G.valid(e); G.next(e))  
+// // 	std::cout << G.id(G.tail(e)) << "-" << flow.get(e) << "->" << G.id(G.head(e)) << " ";
+// //       std::cout<<std::endl;
+//       ++i; 
+//     }
+
+// //     std::cout << "maximum matching: "<< std::endl;
+// //     for(EdgeIt e=G.first<EdgeIt>(); G.valid(e); G.next(e))  
+// //       if (flow.get(e))
+// // 	std::cout << G.id(G.tail(e)) << "-" << flow.get(e) << "->" << G.id(G.head(e)) << " ";
+// //     std::cout<<std::endl;
+// //     std::cout << "edges which are not in this maximum matching: "<< std::endl;
+// //     for(EdgeIt e=G.first<EdgeIt>(); G.valid(e); G.next(e))  
+// //       if (!flow.get(e))
+// // 	std::cout << G.id(G.tail(e)) << "-" << flow.get(e) << "->" << G.id(G.head(e)) << " ";
+// //     std::cout<<std::endl;
+    
+//     std::cout << "elapsed time: " << ts << std::endl;
+//     std::cout << "number of augmentation phases: " << i << std::endl; 
+//     std::cout << "flow value: "<< max_flow_test.flowValue() << std::endl;
+//   }
 
   {
@@ -183,4 +184,6 @@
     //Graph::EdgeMap<int> cap(G, 1);
 
+    leda_node_array<bool> NC(g);
+
     Timer ts;
     ts.reset();
@@ -189,5 +192,6 @@
     //int i=0;
     //while (max_flow_test.augmentOnShortestPath()) { ++i; }
-
+    
+    //leda_list<leda_edge> l=MAX_CARD_BIPARTITE_MATCHING_HK(g, A, B, NC, false);
     leda_list<leda_edge> l=MAX_CARD_BIPARTITE_MATCHING(g);    
     
