~ubuntu-branches/ubuntu/karmic/scilab/karmic

« back to all changes in this revision

Viewing changes to routines/f2c/libf2c/z_sqrt.c

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2002-03-21 16:57:43 UTC
  • Revision ID: james.westby@ubuntu.com-20020321165743-e9mv12c1tb1plztg
Tags: upstream-2.6
ImportĀ upstreamĀ versionĀ 2.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "f2c.h"
 
2
 
 
3
#ifdef KR_headers
 
4
double sqrt(), f__cabs();
 
5
VOID z_sqrt(r, z) doublecomplex *r, *z;
 
6
#else
 
7
#undef abs
 
8
#include "math.h"
 
9
extern double f__cabs(double, double);
 
10
void z_sqrt(doublecomplex *r, doublecomplex *z)
 
11
#endif
 
12
{
 
13
double mag;
 
14
 
 
15
if( (mag = f__cabs(z->r, z->i)) == 0.)
 
16
        r->r = r->i = 0.;
 
17
else if(z->r > 0)
 
18
        {
 
19
        r->r = sqrt(0.5 * (mag + z->r) );
 
20
        r->i = z->i / r->r / 2;
 
21
        }
 
22
else
 
23
        {
 
24
        r->i = sqrt(0.5 * (mag - z->r) );
 
25
        if(z->i < 0)
 
26
                r->i = - r->i;
 
27
        r->r = z->i / r->i / 2;
 
28
        }
 
29
}