public static Complex operator *(Complex a, Complex b) { return(Complex.Multiply(a, b)); }
public static Complex operator *(Complex a, double s) { return(Complex.Multiply(a, s)); }
public static Complex Subtract(double s, Complex a) { return(new Complex(s - a.Re, a.Im)); }
public static void Multiply(Complex a, double s, ref Complex result) { result.Re = a.Re * s; result.Im = a.Im * s; }
public static void Add(Complex a, Complex b, ref Complex result) { result.Re = a.Re + b.Re; result.Im = a.Im + b.Im; }
public static Complex Subtract(Complex a, Complex b) { return(new Complex(a.Re - b.Re, a.Im - b.Im)); }
public static Complex operator +(Complex a, Complex b) { return(Complex.Add(a, b)); }
public static Complex operator /(double s, Complex a) { return(Complex.Divide(s, a)); }
public Complex(Complex c) { this.Re = c.Re; this.Im = c.Im; }
public static Complex operator -(Complex a) { return(Complex.Negate(a)); }
public static bool ApproxEqual(Complex a, Complex b, double tolerance) { return((System.Math.Abs(a.Re - b.Re) <= tolerance) && (System.Math.Abs(a.Im - b.Im) <= tolerance)); }
public static bool ApproxEqual(Complex a, Complex b) { return(ApproxEqual(a, b, 8.8817841970012523233891E-16)); }
public static Complex Negate(Complex a) { return(new Complex(-a.Re, -a.Im)); }
public static Complex operator /(Complex a, Complex b) { return(Complex.Divide(a, b)); }
public static Complex operator +(double s, Complex a) { return(Complex.Add(a, s)); }
public static Complex operator /(Complex a, double s) { return(Complex.Divide(a, s)); }
public static Complex Add(Complex a, Complex b) { return(new Complex(a.Re + b.Re, a.Im + b.Im)); }
public static Complex Add(Complex a, double s) { return(new Complex(a.Re + s, a.Im)); }
public static Complex operator -(Complex a, Complex b) { return(Complex.Subtract(a, b)); }
public static void Add(Complex a, double s, ref Complex result) { result.Re = a.Re + s; result.Im = a.Im; }
public static Complex operator -(Complex a, double s) { return(Complex.Subtract(a, s)); }
public static Complex Subtract(Complex a, double s) { return(new Complex(a.Re - s, a.Im)); }
public static Complex operator -(double s, Complex a) { return(Complex.Subtract(s, a)); }
public static void Subtract(Complex a, Complex b, ref Complex result) { result.Re = a.Re - b.Re; result.Im = a.Im - b.Im; }
public static Complex Multiply(Complex a, double s) { return(new Complex(a.Re * s, a.Im * s)); }