protected Tuple toSparseVectorTuple(Vector v) {
DataBag bag = bagFactory.newDefaultBag();
Iterator<Element> itr = v.iterateNonZero();
while (itr.hasNext()) {
Element e = itr.next();
bag.add(tupleFactory.newTupleNoCopy(Lists.<Number> newArrayList(e.index(),
floatPrecision ? (float) e.get() : e.get())));
}
return cardinality != null ? tupleFactory.newTupleNoCopy(ImmutableList.of(bag)) : tupleFactory
.newTupleNoCopy(ImmutableList.of(v.size(),
bag));