private bool FFeasible(Match mtc) { int inod1 = mtc.Inod1; int inod2 = mtc.Inod2; if (_fContextCheck) { IContextCheck icc1 = _vfgr1.GetAttr(inod1) as IContextCheck; IContextCheck icc2 = _vfgr2.GetAttr(inod2) as IContextCheck; if (icc1 != null && icc2 != null) { if (!icc1.FCompatible(icc2)) { return(false); } } } List <int> lstIn1 = _vfgr1.InNeighbors(inod1); List <int> lstIn2 = _vfgr2.InNeighbors(inod2); List <int> lstOut1 = _vfgr1.OutNeighbors(inod1); List <int> lstOut2 = _vfgr2.OutNeighbors(inod2); // In Neighbors in mapping must map to In Neighbors... if (!FLocallyIsomorphic(lstIn1, lstIn2)) { return(false); } // Ditto the above for out neighbors... if (!FLocallyIsomorphic(lstOut1, lstOut2)) { return(false); } // Verify the in, out and new predicate if (!FInOutNew(lstOut1, lstIn1, lstOut2, lstIn2)) { return(false); } return(true); }
public bool FCompatible(IContextCheck icc) { return(((NodeType)icc)._nodeType == _nodeType); }
public bool FCompatible(IContextCheck icc) { return(((NodeColor)icc)._strColor == _strColor); }
public bool FCompatible(IContextCheck icc) { return ((NodeType)icc)._nodeType == _nodeType; }