docs: public static BigComplex pow(BigComplex x, long y, MathContext mathContext) {
  		MathContext mc = new MathContext(mathContext.getPrecision() + 10, mathContext.getRoundingMode());
  
  		if (y < 0) {
  			return BigComplex.ONE.divide(pow(x, -y, mc), mc).round(mathContext);
  		}
  		
  		BigComplex result = BigComplex.ONE;
  		while (y > 0) {
  			if ((y & 1) == 1) {
  				// odd exponent -> multiply result with x
  				result = result.multiply(x, mc);
  				y -= 1;
  			}
  			
  			if (y > 0) {
  				// even exponent -> square x
  				x = x.multiply(x, mc);
  			}
  			
  			y >>= 1;
  		}
  
  		return result.round(mathContext);
  	}