public static ComplexNumber pow(this int powbase, ComplexNumber powpower) { return(((double)powbase).pow(powpower)); }
public static ComplexNumber log(this int logpow, ComplexNumber logbase, int number = 0) { return(((double)logpow).log(logbase, number)); }
public static ComplexNumber pow(this double powbase, ComplexNumber powpower) { if (powpower.Equals(0)) { return(new ComplexNumber(1, 0)); } if (!(powbase >= 0)) { return((-powbase).pow(powpower) * Math.E.pow(-Math.PI * powpower.ImaginaryPart) * ComplexNumber.FromPolar(Math.PI * powpower.RealPart)); } double r = Math.Pow(powbase, powpower.RealPart); double a = powpower.ImaginaryPart * Math.Log(powbase); return(new ComplexNumber(a, r, ComplexNumber.ComplexRepresentations.Polar)); }