code: public Location downstream( int length )
  	{
  		if( length < 0 )
  		{
  			throw new IllegalArgumentException( "Parameter must be >= 0; is=" + length );
  		}
  
  		if( Math.signum( mEnd + length) == Math.signum( mEnd ) || 0 == Math.signum( mEnd + length ) )
  		{
  			return new Location( mEnd, mEnd + length );
  		}
  		else
  		{
  			throw new IndexOutOfBoundsException( "Specified length causes crossing of origin: " + length + "; " + toString() );
  		}
  
  	}
docs: Return the adjacent location of specified length directly downstream of this location.
  
  @return The downstream location.
  @param length The length of the downstream location.
  @throws IndexOutOfBoundsException Specified length causes crossing of origin.