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;
	}
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 ; }
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.