BitVector[] point = new BitVector[spec.getBitsPerDimension().size()];
for (int j = 0; j < spec.getBitsPerDimension().size(); ++j) {
point[j] = BitVectorFactories.OPTIMAL.apply(spec.getBitsPerDimension().get(j));
}
for (int i : filtered) {
BitVector index = BitVectorFactories.OPTIMAL.apply(spec.sumBitsPerDimension());
// int has 32 bits, which fits in each dimensions.
for (int j = 0; j < spec.getBitsPerDimension().size(); ++j) {
point[j].copyFrom(data[i][j]);
}
sfc.index(point, 0, index);