lemon/vf2.h
changeset 1190 c89884c1737b
parent 1189 b9fad0f9f8ab
child 1191 d9f79b81ef6c
equal deleted inserted replaced
8:34e7ecdeb7b8 9:1bfa9741fca1
   230         else if(currConn==-1)
   230         else if(currConn==-1)
   231           ++_conn[n2];
   231           ++_conn[n2];
   232       }
   232       }
   233     }
   233     }
   234 
   234 
   235     void setOrder() {
   235     void initOrder() {
   236       // we will find pairs for the nodes of g1 in this order
   236       // we will find pairs for the nodes of g1 in this order
   237 
   237 
   238       // bits::vf2::DfsLeaveOrder<G1> v(_g1,_order);
   238       // bits::vf2::DfsLeaveOrder<G1> v(_g1,_order);
   239       //   DfsVisit<G1,bits::vf2::DfsLeaveOrder<G1> >dfs(_g1, v);
   239       //   DfsVisit<G1,bits::vf2::DfsLeaveOrder<G1> >dfs(_g1, v);
   240       //   dfs.run();
   240       //   dfs.run();
   322       }
   322       }
   323       return false;
   323       return false;
   324     }
   324     }
   325 
   325 
   326     //calculate the lookup table for cutting the search tree
   326     //calculate the lookup table for cutting the search tree
   327     void setRNew1tRInOut1t() {
   327     void initRNew1tRInOut1t() {
   328       typename G1::template NodeMap<int> tmp(_g1,0);
   328       typename G1::template NodeMap<int> tmp(_g1,0);
   329       for(unsigned int i=0; i<_order.size(); ++i) {
   329       for(unsigned int i=0; i<_order.size(); ++i) {
   330         const typename G1::Node& orderI = _order[i];
   330         const typename G1::Node& orderI = _order[i];
   331         tmp[orderI]=-1;
   331         tmp[orderI]=-1;
   332         for(typename G1::IncEdgeIt e1(_g1,orderI); e1!=INVALID; ++e1) {
   332         for(typename G1::IncEdgeIt e1(_g1,orderI); e1!=INVALID; ++e1) {
   358       _g1(g1), _g2(g2), _nEq(neq), _depth(0), _mapping(m),
   358       _g1(g1), _g2(g2), _nEq(neq), _depth(0), _mapping(m),
   359       _order(countNodes(g1)), _conn(g2,0),
   359       _order(countNodes(g1)), _conn(g2,0),
   360       _currEdgeIts(countNodes(g1),INVALID), _rNew1t(g1,0), _rInOut1t(g1,0),
   360       _currEdgeIts(countNodes(g1),INVALID), _rNew1t(g1,0), _rInOut1t(g1,0),
   361       _mapping_type(SUBGRAPH), _deallocMappingAfterUse(0)
   361       _mapping_type(SUBGRAPH), _deallocMappingAfterUse(0)
   362     {
   362     {
   363       setOrder();
   363       initOrder();
   364       setRNew1tRInOut1t();
   364       initRNew1tRInOut1t();
   365       for(typename G1::NodeIt n(g1);n!=INVALID;++n)
   365       for(typename G1::NodeIt n(g1);n!=INVALID;++n)
   366         m[n]=INVALID;
   366         m[n]=INVALID;
   367     }
   367     }
   368 
   368 
   369     ///Destructor
   369     ///Destructor