This manual relates to an old release of the Library.
The documentation for the current release is also available on this site.

NAG FL Interface
a02aaf (sqrt)

Settings help

FL Name Style:


FL Specification Language:


1 Purpose

a02aaf evaluates the square root of the complex number x=(xr,xi).

2 Specification

Fortran Interface
Subroutine a02aaf ( xr, xi, yr, yi)
Real (Kind=nag_wp), Intent (In) :: xr, xi
Real (Kind=nag_wp), Intent (Out) :: yr, yi
C Header Interface
#include <nag.h>
void  a02aaf_ (const double *xr, const double *xi, double *yr, double *yi)
The routine may be called by the names a02aaf or nagf_complex_sqrt.

3 Description

The method of evaluating y=x depends on the value of xr.
For xr0,
yr=xr+xr2+xi2 2,  yi=xi2yr .  
For xr<0,
yi=sign(xi)×|xr|+xr2+xi2 2 ,  yr=xi2yi .  
Overflow is avoided when squaring xi and xr by calling a02abf to evaluate xr2+xi2.

4 References

Wilkinson J H and Reinsch C (1971) Handbook for Automatic Computation II, Linear Algebra Springer–Verlag

5 Arguments

1: xr Real (Kind=nag_wp) Input
2: xi Real (Kind=nag_wp) Input
On entry: xr and xi, the real and imaginary parts of x, respectively.
3: yr Real (Kind=nag_wp) Output
4: yi Real (Kind=nag_wp) Output
On exit: yr and yi, the real and imaginary parts of y, respectively.

6 Error Indicators and Warnings

None.

7 Accuracy

The result should be correct to machine precision.

8 Parallelism and Performance

a02aaf is not threaded in any implementation.

9 Further Comments

The time taken by a02aaf is negligible.

10 Example

This example finds the square root of -1.7+2.6i.

10.1 Program Text

Program Text (a02aafe.f90)

10.2 Program Data

Program Data (a02aafe.d)

10.3 Program Results

Program Results (a02aafe.r)