NAG Library Routine Document

a02aaf (sqrt)

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 <nagmk26.h>
void  a02aaf_ (const double *xr, const double *xi, double *yr, double *yi)

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=signxi×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)