public static void Multiply(Complex a, Complex b, ref Complex result) { // (x + yi)(u + vi) = (xu – yv) + (xv + yu)i. double aRe = a.Re, aIm = a.Im; double bRe = b.Re, bIm = b.Im; result.Re = aRe*bRe - aIm*bIm; result.Im = aRe*bIm + aIm*bRe; }
/// <summary> /// Multiplies a complex number by a scalar value. /// </summary> /// /// <param name="a">A <see cref="Complex"/> instance.</param> /// <param name="s">A scalar value.</param> /// /// <returns>Returns new <see cref="Complex"/> instance containing the result of multiplication.</returns> /// public static Complex operator *(Complex a, double s) { return(Complex.Multiply(a, s)); }