Returns the result of dividing this complex number by the parameter.
(Complex b)
| 284 | * Returns the result of dividing this complex number by the parameter. |
| 285 | */ |
| 286 | public Complex div(Complex b) { |
| 287 | // Adapted from Numerical Recipes in C - The Art of Scientific Computing |
| 288 | // ISBN 0-521-43108-5 |
| 289 | double resRe, resIm; |
| 290 | double r, den; |
| 291 | if(Math.abs(b.re)>=Math.abs(b.im)) { |
| 292 | r = b.im/b.re; |
| 293 | den = b.re+r*b.im; |
| 294 | resRe = (re+r*im)/den; |
| 295 | resIm = (im-r*re)/den; |
| 296 | } else { |
| 297 | r = b.re/b.im; |
| 298 | den = b.im+r*b.re; |
| 299 | resRe = (re*r+im)/den; |
| 300 | resIm = (im*r-re)/den; |
| 301 | } |
| 302 | return new Complex(resRe, resIm); |
| 303 | } |
| 304 | |
| 305 | /** |
| 306 |