private void trackBounds(TensorAddress address) {
            for (int i = 0; i < type.dimensions().size(); ++i) {
                TensorType.Dimension dimension = type.dimensions().get(i);
                if (dimension.isIndexed()) {
                    dimensionBounds[i] = Math.max(address.numericLabel(i), dimensionBounds[i]);
                }
            }
        }
Temporarily stores all cells to find bounds of indexed dimensions,
then creates a tensor using BoundBuilder. This is due to the
fact that for serialization the size of the dense subspace must be
known, and equal for all dense subspaces. A side effect is that the
tensor type is effectively changed, such that unbound indexed
dimensions become bound.
vespajlib/src/main/java/com/yahoo/tensor/MixedTensor.java