code: private int reverseIndex(int k) {
      if (reverseIndexMap == null) {
        reverseIndexMap = new int[attributes.getLength()];
        for (int i = 0, len = indexSet.size(); i < len; i++)
          reverseIndexMap[indexSet.get(i)] = i + 1;
      }
      return reverseIndexMap[k] - 1;
    }
docs: Gets the index in the filtered set for a given real index.
  If the reverseIndexMap is not computed it computes it,
  otherwise it just uses the previously computed map.
  @param k The index in the real attributes.
  @return The index in the filtered attributes.