public Object power(Number d1, Number d2) { if (d1.doubleValue() < 0 && d2.doubleValue() != d2.intValue()) { Complex c = new Complex(d1.doubleValue(), 0.0); return c.power(d2.doubleValue()); } else return new Double(Math.pow(d1.doubleValue(), d2.doubleValue())); }