add -a flag
[unix-history] / usr / src / usr.bin / f77 / libF77 / c_div.c
CommitLineData
b12a212e 1/*
f164e020
RE
2 * Copyright (c) 1980 Regents of the University of California.
3 * All rights reserved. The Berkeley software License Agreement
4 * specifies the terms and conditions for redistribution.
5 *
6 * @(#)c_div.c 5.1 %G%
b12a212e
DW
7 */
8
9#include "complex"
50fd198f
DL
10#include <stdio.h>
11#include <errno.h>
b12a212e
DW
12
13c_div(c, a, b)
14complex *a, *b, *c;
15{
16double ratio, den;
17double abr, abi;
18
19if( (abr = b->real) < 0.)
20 abr = - abr;
21if( (abi = b->imag) < 0.)
22 abi = - abi;
23if( abr <= abi )
24 {
50fd198f
DL
25 if(abi == 0) {
26 fprintf(stderr,"complex division by zero\n");
27 f77_abort(EDOM);
28 }
b12a212e
DW
29 ratio = b->real / b->imag ;
30 den = b->imag * (1 + ratio*ratio);
31 c->real = (a->real*ratio + a->imag) / den;
32 c->imag = (a->imag*ratio - a->real) / den;
33 }
34
35else
36 {
37 ratio = b->imag / b->real ;
38 den = b->real * (1 + ratio*ratio);
39 c->real = (a->real + a->imag*ratio) / den;
40 c->imag = (a->imag - a->real*ratio) / den;
41 }
42
43}