/** {@inheritDoc} */ @Override public boolean equals(Subsequence<S> a, int ai, Subsequence<S> b, int bi) { return cmp.equals(a.base, ai + a.begin, b.base, bi + b.begin); }
/** {@inheritDoc} */ @Override public int hash(Subsequence<S> seq, int ptr) { return cmp.hash(seq.base, ptr + seq.begin); } }
Edit region = cmp.reduceCommonStartEnd(a, b, coverEdit(a, b)); if (last.getType() == Edit.Type.INSERT) { while (last.endB < b.size() && cmp.equals(b, last.beginB, b, last.endB)) { last.beginA++; last.endA++;
e.endA++; return super.reduceCommonStartEnd(a, b, e);
Edit region = cmp.reduceCommonStartEnd(a, b, coverEdit(a, b));
/** {@inheritDoc} */ @Override public boolean equals(HashedSequence<S> a, int ai, // HashedSequence<S> b, int bi) { return a.hashes[ai] == b.hashes[bi] && cmp.equals(a.base, ai, b.base, bi); }
private HashedSequence<S> wrap(S base) { final int end = base.size(); final int[] hashes = new int[end]; for (int ptr = 0; ptr < end; ptr++) hashes[ptr] = cmp.hash(base, ptr); return new HashedSequence<>(base, hashes); } }
e.endA++; return super.reduceCommonStartEnd(a, b, e);
@Override public int hash(Subsequence<S> seq, int ptr) { return cmp.hash(seq.base, ptr + seq.begin); } }
e.endA++; return super.reduceCommonStartEnd(a, b, e);
/** {@inheritDoc} */ @Override public int hash(Subsequence<S> seq, int ptr) { return cmp.hash(seq.base, ptr + seq.begin); } }
Edit region = cmp.reduceCommonStartEnd(a, b, coverEdit(a, b));
/** {@inheritDoc} */ @Override public boolean equals(HashedSequence<S> a, int ai, // HashedSequence<S> b, int bi) { return a.hashes[ai] == b.hashes[bi] && cmp.equals(a.base, ai, b.base, bi); }
private HashedSequence<S> wrap(S base) { final int end = base.size(); final int[] hashes = new int[end]; for (int ptr = 0; ptr < end; ptr++) hashes[ptr] = cmp.hash(base, ptr); return new HashedSequence<>(base, hashes); } }
@Override public boolean equals(HashedSequence<S> a, int ai, // HashedSequence<S> b, int bi) { return a.hashes[ai] == b.hashes[bi] && cmp.equals(a.base, ai, b.base, bi); }
private HashedSequence<S> wrap(S base) { final int end = base.size(); final int[] hashes = new int[end]; for (int ptr = 0; ptr < end; ptr++) hashes[ptr] = cmp.hash(base, ptr); return new HashedSequence<S>(base, hashes); } }
@Override public boolean equals(Subsequence<S> a, int ai, Subsequence<S> b, int bi) { return cmp.equals(a.base, ai + a.begin, b.base, bi + b.begin); }
/** {@inheritDoc} */ @Override public boolean equals(Subsequence<S> a, int ai, Subsequence<S> b, int bi) { return cmp.equals(a.base, ai + a.begin, b.base, bi + b.begin); }