code: private int getRealIndex(int index) {
  		int idx = index;
  		if(idx < 0) {
  			if(Math.abs(idx) <= this.size()) {
  				idx = this.size() + idx;
  			} else {
  				logger.error("negative number {} is too large: results size is {}, maximum admitted value is {}", index, this.size(), -1 * this.size() + 1);
  				throw new IndexOutOfBoundsException("Negative index is too large");
  			}
  		}
  		return idx;
  	}
docs: Returns the positive value corresponding to the given positive or negative
  index value.
  
  @param index
  the positive or negative index value; if negative, its absolute value
  must be less than the size of the vector, otherwise an exception is
  thrown. For small negative numbers, the index will be calculated as the
  size of the vector minus the absolute value of the index, thus -1
  identifies the last element in the list, -2 the element before it, and
  so on.
  @return
  the positive value corresponding to the given index.