Creates a deep copy of this object with the given fields replaced with the new values.
Complex copyWith({ double? real, double? imaginary, }) => Complex(real ?? this.real, imaginary ?? this.imaginary);