191 {
192 double real = left.m_real;
193 double imaginary = left.m_imaginary;
194 double real2 = right.m_real;
195 double imaginary2 = right.m_imaginary;
196 if (Math.Abs(imaginary2) < Math.Abs(real2))
197 {
198 double num = imaginary2 / real2;
199 return new Complex((real + imaginary * num) / (real2 + imaginary2 * num), (imaginary - real * num) / (real2 + imaginary2 * num));
200 }
201 double num2 = real2 / imaginary2;
202 return new Complex((imaginary + real * num2) / (imaginary2 + real2 * num2), (0.0 - real + imaginary * num2) / (imaginary2 + real2 * num2));
203 }
Complex(double real, double imaginary)