div method

Complex div(
  1. Complex b1
)

Implementation

Complex div(Complex b1) {
  var a = real;
  var b = imaginary;

  var c = b1.real;
  var d = b1.imaginary;
  var t, x;

  if (0 == d) {
    return Complex(real: a / c, imaginary: b / c);
  }

  if (c.abs() < d.abs()) {
    x = c / d;
    t = c * x + d;
    return Complex(real: (a * x + b) / t, imaginary: (b * x - a) / t);
  } else {
    x = d / c;
    t = d * x + c;

    return Complex(real: (a + b * x) / t, imaginary: (b - a * x) / t);
  }
}