struct dcomplex
{ double dreal
, dimag
; };
struct dcomplex
*a
, *b
, *c
;
if( (abr
= b
->dreal
) < 0.)
if( (abi
= b
->dimag
) < 0.)
abort(); /* fatal("complex division by zero"); */
ratio
= b
->dreal
/ b
->dimag
;
den
= b
->dimag
* (1 + ratio
*ratio
);
c
->dreal
= (a
->dreal
*ratio
+ a
->dimag
) / den
;
c
->dimag
= (a
->dimag
*ratio
- a
->dreal
) / den
;
ratio
= b
->dimag
/ b
->dreal
;
den
= b
->dreal
* (1 + ratio
*ratio
);
c
->dreal
= (a
->dreal
+ a
->dimag
*ratio
) / den
;
c
->dimag
= (a
->dimag
- a
->dreal
*ratio
) / den
;