@Override public T copy(T from, T reuse) { from.copyTo(reuse); return reuse; }
@Override public void setReference(T toCompare) { toCompare.copyTo(reference); }
@Override public void reduce(Iterable<Tuple2<T, T>> values, Collector<Tuple3<T, T, T>> out) throws Exception { int visitedCount = 0; Iterator<Tuple2<T, T>> iter = values.iterator(); while (true) { Tuple2<T, T> edge = iter.next(); output.f0 = edge.f0; output.f2 = edge.f1; for (int i = 0; i < visitedCount; i++) { output.f1 = visited.get(i); out.collect(output); } if (!iter.hasNext()) { break; } if (visitedCount == visited.size()) { visited.add(edge.f1.copy()); } else { edge.f1.copyTo(visited.get(visitedCount)); } visitedCount += 1; } } }
@Override public void reduce(Iterable<Tuple4<IntValue, T, T, FloatValue>> values, Collector<Tuple3<T, T, FloatValue>> out) throws Exception { int visitedCount = 0; for (Tuple4<IntValue, T, T, FloatValue> edge : values) { output.f1 = edge.f2; output.f2 = edge.f3; for (int i = 0; i < visitedCount; i++) { output.f0 = visited.get(i); out.collect(output); } if (visitedCount < GROUP_SIZE) { if (!initialized) { initialized = true; for (int i = 0; i < GROUP_SIZE; i++) { visited.add(edge.f2.copy()); } } else { edge.f2.copyTo(visited.get(visitedCount)); } visitedCount += 1; } } } }
} else { Tuple2<T, ByteValue> update = visited.get(visitedCount); edge.f1.copyTo(update.f0); update.f1.setValue(shiftedBitmask);
Tuple3<T, T, IntValue> copy = visited.get(visitedCount); edge.f2.copyTo(copy.f0); edge.f3.copyTo(copy.f2);
@Override public T copy(T from, T reuse) { from.copyTo(reuse); return reuse; }
@Override public void setReference(T toCompare) { toCompare.copyTo(reference); }
@Override public void setReference(T toCompare) { toCompare.copyTo(reference); }
@Override public T copy(T from, T reuse) { from.copyTo(reuse); return reuse; }
@Override public void reduce(Iterable<Tuple2<T, T>> values, Collector<Tuple3<T, T, T>> out) throws Exception { int visitedCount = 0; Iterator<Tuple2<T, T>> iter = values.iterator(); while (true) { Tuple2<T, T> edge = iter.next(); output.f0 = edge.f0; output.f2 = edge.f1; for (int i = 0; i < visitedCount; i++) { output.f1 = visited.get(i); out.collect(output); } if (! iter.hasNext()) { break; } if (visitedCount == visited.size()) { visited.add(edge.f1.copy()); } else { edge.f1.copyTo(visited.get(visitedCount)); } visitedCount += 1; } } }
@Override public void reduce(Iterable<Tuple2<T, T>> values, Collector<Tuple3<T, T, T>> out) throws Exception { int visitedCount = 0; Iterator<Tuple2<T, T>> iter = values.iterator(); while (true) { Tuple2<T, T> edge = iter.next(); output.f0 = edge.f0; output.f2 = edge.f1; for (int i = 0; i < visitedCount; i++) { output.f1 = visited.get(i); out.collect(output); } if (!iter.hasNext()) { break; } if (visitedCount == visited.size()) { visited.add(edge.f1.copy()); } else { edge.f1.copyTo(visited.get(visitedCount)); } visitedCount += 1; } } }
@Override public void reduce(Iterable<Tuple2<T, T>> values, Collector<Tuple3<T, T, T>> out) throws Exception { int visitedCount = 0; Iterator<Tuple2<T, T>> iter = values.iterator(); while (true) { Tuple2<T, T> edge = iter.next(); output.f0 = edge.f0; output.f2 = edge.f1; for (int i = 0; i < visitedCount; i++) { output.f1 = visited.get(i); out.collect(output); } if (!iter.hasNext()) { break; } if (visitedCount == visited.size()) { visited.add(edge.f1.copy()); } else { edge.f1.copyTo(visited.get(visitedCount)); } visitedCount += 1; } } }
@Override public void reduce(Iterable<Tuple4<IntValue, T, T, FloatValue>> values, Collector<Tuple3<T, T, FloatValue>> out) throws Exception { int visitedCount = 0; for (Tuple4<IntValue, T, T, FloatValue> edge : values) { output.f1 = edge.f2; output.f2 = edge.f3; for (int i = 0; i < visitedCount; i++) { output.f0 = visited.get(i); out.collect(output); } if (visitedCount < GROUP_SIZE) { if (!initialized) { initialized = true; for (int i = 0; i < GROUP_SIZE; i++) { visited.add(edge.f2.copy()); } } else { edge.f2.copyTo(visited.get(visitedCount)); } visitedCount += 1; } } } }
@Override public void reduce(Iterable<Tuple4<IntValue, T, T, FloatValue>> values, Collector<Tuple3<T, T, FloatValue>> out) throws Exception { int visitedCount = 0; for (Tuple4<IntValue, T, T, FloatValue> edge : values) { output.f1 = edge.f2; output.f2 = edge.f3; for (int i = 0 ; i < visitedCount ; i++) { output.f0 = visited.get(i); out.collect(output); } if (visitedCount < GROUP_SIZE) { if (! initialized) { initialized = true; for (int i = 0 ; i < GROUP_SIZE ; i++) { visited.add(edge.f2.copy()); } } else { edge.f2.copyTo(visited.get(visitedCount)); } visitedCount += 1; } } } }
@Override public void reduce(Iterable<Tuple4<IntValue, T, T, FloatValue>> values, Collector<Tuple3<T, T, FloatValue>> out) throws Exception { int visitedCount = 0; for (Tuple4<IntValue, T, T, FloatValue> edge : values) { output.f1 = edge.f2; output.f2 = edge.f3; for (int i = 0; i < visitedCount; i++) { output.f0 = visited.get(i); out.collect(output); } if (visitedCount < GROUP_SIZE) { if (!initialized) { initialized = true; for (int i = 0; i < GROUP_SIZE; i++) { visited.add(edge.f2.copy()); } } else { edge.f2.copyTo(visited.get(visitedCount)); } visitedCount += 1; } } } }
} else { Tuple2<T, ByteValue> update = visited.get(visitedCount); edge.f1.copyTo(update.f0); update.f1.setValue(shiftedBitmask);
} else { Tuple2<T, ByteValue> update = visited.get(visitedCount); edge.f1.copyTo(update.f0); update.f1.setValue(shiftedBitmask);
} else { Tuple2<T, ByteValue> update = visited.get(visitedCount); edge.f1.copyTo(update.f0); update.f1.setValue(shiftedBitmask);
Tuple3<T, T, IntValue> copy = visited.get(visitedCount); edge.f2.copyTo(copy.f0); edge.f3.copyTo(copy.f2);