/** * Raise a complex number to a power * * @param num the number to raise * @param power the power to raise to * @return the number raised to a power */ public static IComplexNumber pow(IComplexNumber num, double power) { Complex c = new Complex(num.realComponent().doubleValue(), num.imaginaryComponent().doubleValue()).pow(power); if (c.isNaN()) c = new Complex(Nd4j.EPS_THRESHOLD, 0.0); return Nd4j.createDouble(c.getReal(), c.getImaginary()); }
/** * Raise a complex number to a power * * @param num the number to raise * @param power the power to raise to * @return the number raised to a power */ public static IComplexNumber pow(IComplexNumber num, IComplexNumber power) { Complex c = new Complex(num.realComponent().doubleValue(), num.imaginaryComponent().doubleValue()).pow( new Complex(power.realComponent().doubleValue(), power.imaginaryComponent().doubleValue())); if (c.isNaN()) c = new Complex(Nd4j.EPS_THRESHOLD, 0.0); return Nd4j.createDouble(c.getReal(), c.getImaginary()); }
public IComplexNum pow(final IComplexNum val) { return newInstance(fComplex.pow(((ComplexNum) val).fComplex)); }
Complex first = new Complex(1.0, 3.0); Complex second = new Complex(2.0, 5.0); Complex answer = first.log(); // natural logarithm. answer = first.cos(); // cosine answer = first.pow(second); // first raised to the power of second
/** * Raise a complex number to a power * * @param num the number to raise * @param power the power to raise to * @return the number raised to a power */ public static IComplexNumber pow(IComplexNumber num, double power) { Complex c = new Complex(num.realComponent().doubleValue(), num.imaginaryComponent().doubleValue()).pow(power); if (c.isNaN()) c = new Complex(Nd4j.EPS_THRESHOLD, 0.0); return Nd4j.createDouble(c.getReal(), c.getImaginary()); }
/** * Raise a complex number to a power * * @param num the number to raise * @param power the power to raise to * @return the number raised to a power */ public static IComplexNumber pow(IComplexNumber num, IComplexNumber power) { Complex c = new Complex(num.realComponent().doubleValue(), num.imaginaryComponent().doubleValue()).pow( new Complex(power.realComponent().doubleValue(), power.imaginaryComponent().doubleValue())); if (c.isNaN()) c = new Complex(Nd4j.EPS_THRESHOLD, 0.0); return Nd4j.createDouble(c.getReal(), c.getImaginary()); }
/** * c = cbrt(a) Michael Borcherds 2010-02-07 * * @param a * a * @param c * c */ public static void complexCbrt(GeoVec2D a, GeoVec2D c) { Complex out = new Complex(a.x, a.y); out = out.pow(new Complex(1 / 3d, 0)); c.x = out.getReal(); c.y = out.getImaginary(); c.setMode(Kernel.COORD_COMPLEX); }
/** * c = a ^ b Michael Borcherds 2009-03-14 * * @param a * base * @param b * exponent * @param c * result */ public static void complexPower(GeoVec2D a, GeoVec2D b, GeoVec2D c) { Complex out = new Complex(a.x, a.y); out = out.pow(new Complex(b.x, b.y)); c.x = out.getReal(); c.y = out.getImaginary(); c.setMode(Kernel.COORD_COMPLEX); }
ComplexFormat cf = new ComplexFormat(); Complex c = cf.parse("1.110 + 2.222i"); Complex second = new Complex(2.0, 5.0); Complex answer = c.log(); // natural logarithm. answer = c.cos(); // cosine answer = c.pow(second); // first raised to the power of second ComplexFormat format = new ComplexFormat(); // default format String s1 = format.format(c); // s1 contains "1.110 + 2.222i" String s2 = format.format(second); // s2 contains "2.0 + 5.0i"
case '^': if (right.im() != 0 || right.re() == (int) right.re()) { return left.pow((int) right.re());
public ValueType pow(CalculatedValue f, CalculatedValue g) { if (unitExists(f, g)) { unit = powUnit(f, g); if (unit == null) { return invalidate(ErrorType.INCOMPATIBLE_UNIT); } } else { unit = null; } if (f.isComplex() || g.isComplex()) { return setComplexValue(f.getComplex().pow(g.getComplex())); } else { return setValue(FastMath.pow(f.real, g.real)); } }
/** * c = a ^ b Michael Borcherds 2009-03-10 * * @param a * base * @param b * exponent * @param c * result */ public static void complexPower(NumberValue a, GeoVec2D b, GeoVec2D c) { Complex out; if (MyDouble.exactEqual(a.getDouble(), Math.E)) { // special case for e^(i theta) // (more accurate) out = new Complex(b.x, b.y); out = out.exp(); } else { out = new Complex(a.getDouble(), 0); out = out.pow(new Complex(b.x, b.y)); } c.x = out.getReal(); c.y = out.getImaginary(); c.setMode(Kernel.COORD_COMPLEX); }