MutableSparseVector result = new MutableSparseVector(mks, mvs);
for (Map.Entry<Symbol, ImmutableSparseVector> entry : channelVectors.entrySet()) {
result.addVectorChannel(entry.getKey(), entry.getValue().mutableCopy());
}
for (Entry<TypedSymbol<?>, Long2ObjectMap<?>> entry : channels.entrySet()) {
TypedSymbol ts = entry.getKey();
if (!ts.getType().equals(Double.class)) {
Long2ObjectMap<?> val = entry.getValue();
assert val instanceof TypedSideChannel;
result.addChannel(ts, ((TypedSideChannel) val).mutableCopy());
} else {
assert result.hasChannel(ts);