boolean firstIsOutFrag = ((VectorWritable)v.get(0)).get().size() == outCardinality;
Vector outFrag = firstIsOutFrag ? ((VectorWritable)v.get(0)).get() : ((VectorWritable)v.get(1)).get();
Vector multiplier = firstIsOutFrag ? ((VectorWritable)v.get(1)).get() : ((VectorWritable)v.get(0)).get();
VectorWritable outVector = new VectorWritable();
for (Vector.Element e : multiplier.nonZeroes()) {
row.set(e.index());
outVector.set(outFrag.times(e.get()));
out.collect(row, outVector);
}
}