divAndAss method

MathComplex divAndAss(
  1. dynamic r
)

Implementation

MathComplex divAndAss( dynamic r ){
	if( r is MathComplex ){
		if( r._im == 0.0 ){
			_re /= r._re;
			_im /= r._re;
		} else if( ClipMath.abs( r._re ) < ClipMath.abs( r._im ) ){
			double w = r._re / r._im;
			double d = r._re * w + r._im;
			double t = (_re * w + _im) / d;
			_im = (_im * w - _re) / d;
			_re = t;
		} else {
			double w = r._im / r._re;
			double d = r._re + r._im * w;
			double t = (_re + _im * w) / d;
			_im = (_im - _re * w) / d;
			_re = t;
		}
	} else {
		double rr = ClipMath.toDouble(r);
		_re /= rr;
		_im /= rr;
	}
	return this;
}