}
Arrays.sort(indexlessBijection);
Arrays.sort(dataBijection);
ProductBuilder builder = new ProductBuilder();
builder.put(newTo);
int i;
for (i = 0; i < currentIndexless.length; ++i)
if (Arrays.binarySearch(indexlessBijection, i) < 0)
builder.put(currentIndexless[i]);
for (i = 0; i < currentData.length; ++i)
if (Arrays.binarySearch(dataBijection, i) < 0)
builder.put(currentData[i]);
builder.put(cp.getFactor().divide(fromFactor));
current = builder.build();
if (!(current instanceof Product))
break;
cp = (Product) current;
}
iterator.set(current);