////////////////////////////////////////////////////////////////////////////// public int LookupAny12(int surr1, int surr2) { if (surr1 > surr2) { int tmp = surr1; surr1 = surr2; surr2 = tmp; } Prepare(); if (Ints123.Contains12(insertList, insertCount, surr1, surr2)) { int idxFirst = Ints123.IndexFirst12(insertList, insertCount, surr1, surr2); return(insertList[3 * idxFirst + 2]); } if (table.Contains12(surr1, surr2)) { Sym12TernaryTable.Iter12 it = table.GetIter12(surr1, surr2); Debug.Assert(!it.Done()); do { if (!Ints123.Contains(deleteList, deleteCount, surr1, surr2, it.Get1())) { return(it.Get1()); } it.Next(); } while (!it.Done()); } throw ErrorHandler.InternalFail(); }
public bool contains_1_2(int arg12) { PrepareInsert12(); if (Array.SortedArrayContains(insertList12, arg12)) { return(true); } if (table.contains_1_2(arg12)) { //## THIS COULD BE MADE FASTER BY CHECKING FIRST WHETHER arg12 APPEARS IN THE DELETE LIST AT ALL Prepare(); Sym12TernaryTable.Iter it = table.getIter_1_2(arg12); Debug.Assert(!it.Done()); do { int arg1 = arg12; int arg2 = it.Get1(); int arg3 = it.Get2(); if (arg1 >= arg2) { arg1 = arg2; arg2 = arg12; } if (!Ints123.Contains(deleteList, deleteCount, arg1, arg2, arg3)) { return(true); } it.Next(); } while (!it.Done()); } return(false); }
public bool Contains3(int surr3) { PrepareInsert3(); if (Array.SortedArrayContains(insertList3, surr3)) { return(true); } if (table.Contains3(surr3)) { //## THIS COULD BE MADE FASTER BY CHECKING FIRST WHETHER surr3 APPEARS IN THE DELETE LIST AT ALL Prepare(); Sym12TernaryTable.Iter3 it = table.GetIter3(surr3); Debug.Assert(!it.Done()); do { if (!Ints123.Contains(deleteList, deleteCount, it.Get1(), it.Get2(), surr3)) { return(true); } it.Next(); } while (!it.Done()); } return(false); }
////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// public bool Contains12(int surr1, int surr2) { if (surr1 > surr2) { int tmp = surr1; surr1 = surr2; surr2 = tmp; } Prepare(); if (Ints123.Contains12(insertList, insertCount, surr1, surr2)) { return(true); } if (table.Contains12(surr1, surr2)) { Sym12TernaryTable.Iter12 it = table.GetIter12(surr1, surr2); Debug.Assert(!it.Done()); do { if (!Ints123.Contains(deleteList, deleteCount, surr1, surr2, it.Get1())) { return(true); } it.Next(); } while (!it.Done()); } return(false); }