public override bool Contains2(Obj obj) { if (revIdxs == null) { revIdxs = Algs.SortedIndexes(col2, col1); } return(Algs.BinSearchRange(revIdxs, col2, obj)[1] > 0); }
public override bool Contains13(Obj val1, Obj val3) { if (idxs312 == null) { idxs312 = Algs.SortedIndexes(col3, col1, col2); } return(Algs.BinSearchRange(idxs312, col3, col1, val3, val1)[1] > 0); }
public override bool Contains23(Obj val2, Obj val3) { if (idxs231 == null) { idxs231 = Algs.SortedIndexes(col2, col3, col1); } return(Algs.BinSearchRange(idxs231, col2, col3, val2, val3)[1] > 0); }
public override BinRelIter GetBinRelIterByCol2(Obj obj) { if (revIdxs == null) { revIdxs = Algs.SortedIndexes(col2, col1); } int[] firstAndCount = Algs.BinSearchRange(revIdxs, col2, obj); int first = firstAndCount[0]; int count = firstAndCount[1]; return(new BinRelIter(col1, col2, revIdxs, first, first + count - 1)); }
public override TernRelIter GetTernRelIterByCol23(Obj val2, Obj val3) { if (idxs231 == null) { idxs231 = Algs.SortedIndexes(col2, col3, col1); } int[] firstAndCount = Algs.BinSearchRange(idxs231, col2, col3, val2, val3); int first = firstAndCount[0]; int count = firstAndCount[1]; return(new TernRelIter(col1, col2, col3, idxs231, first, first + count - 1)); }