reciprocal method
Returns the multiplicative inverse of this
element.
Implementation
@override
Cartesian reciprocal() {
if (isNaN) {
return Complex.nan;
}
if (real == 0.0 && imaginary == 0.0) {
return Complex.infinity;
}
if (isInfinite) {
return Complex.zero;
}
if (real.abs() < imaginary.abs()) {
final q = real / imaginary;
final scale = 1.0 / (real * q + imaginary);
return Cartesian(scale * q, -scale);
} else {
final q = imaginary / real;
final scale = 1.0 / (imaginary * q + real);
return Cartesian(scale, -scale * q);
}
}