|
|
1.1 root 1: #include "f2c.h"
2:
3: VOID z_sqrt(r, z)
4: doublecomplex *r, *z;
5: {
6: double mag, sqrt(), cabs();
7:
8: if( (mag = cabs(z->r, z->i)) == 0.)
9: r->r = r->i = 0.;
10: else if(z->r > 0)
11: {
12: r->r = sqrt(0.5 * (mag + z->r) );
13: r->i = z->i / r->r / 2;
14: }
15: else
16: {
17: r->i = sqrt(0.5 * (mag - z->r) );
18: if(z->i < 0)
19: z->i = - z->i;
20: r->r = z->i / r->i / 2;
21: }
22: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.