summand = new Product(product.factor, product.indexlessData, new Tensor[0], ProductContent.EMPTY_INSTANCE, IndicesFactory.EMPTY_INDICES);
else if (dataLength == 1 && product.indexlessData.length == 0 && product.factor == Complex.ONE)
summand = scalars[0];
else {
Tensor[] data = new Tensor[dataLength];
IndicesBuilder ib = new IndicesBuilder();
dataLength = -1;
for (Tensor t : scalars)
if (t instanceof Product)
for (Tensor d : t) {
data[++dataLength] = d;
ib.append(d);
}
else {
data[++dataLength] = t;
ib.append(t);
}
assert dataLength == data.length - 1;
Arrays.sort(data);
summand = new Product(product.factor, product.indexlessData, data, null, ib.getIndices());
}
} else {
summand = Complex.ONE;
factor = tensor;
}