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
f06cbf (zrotgs)

Settings help

FL Name Style:


FL Specification Language:


1 Purpose

f06cbf generates a complex Givens plane rotation having real sine.

2 Specification

Fortran Interface
Subroutine f06cbf ( a, b, c, s)
Real (Kind=nag_wp), Intent (Out) :: s
Complex (Kind=nag_wp), Intent (Inout) :: a, b
Complex (Kind=nag_wp), Intent (Out) :: c
C Header Interface
#include <nag.h>
void  f06cbf_ (Complex *a, Complex *b, Complex *c, double *s)
The routine may be called by the names f06cbf or nagf_blas_zrotgs.

3 Description

f06cbf generates a complex Givens plane rotation with parameters c (complex) and s (real), such that, given complex a and b:
( c¯ s -s c ) ( a b )=( d 0 ) ,  
If b is real, then d is also real. On exit, b is overwritten by t, the tangent of the rotation; c and s can be reconstructed from the single stored value t, by a subsequent call to f06cdf.
If |b|<ε|a| and Im(a)=0, where ε is the machine precision, the routine sets c=1 and s=|t|.
If |b|<ε|a| and Im(a)0, the routine sets
c=sign(Re(a))a |a|   and  s=|t|  
Note that t is always set to b/a, unless overflow would occur, in which case the routine returns the value of the complex expression
( flmax × sign(Re(b)/a) , flmax × sign(Im(b)/a) ) ;  
flmax is the real value given by 1/(x02amf).

4 References

None.

5 Arguments

1: a Complex (Kind=nag_wp) Input/Output
On entry: the value a, the first element of the vector which determines the rotation.
On exit: the value d.
2: b Complex (Kind=nag_wp) Input/Output
On entry: the value b, the second element of the vector which determines the rotation.
On exit: the value t, the tangent of the rotation.
3: c Complex (Kind=nag_wp) Output
On exit: the value c, the cosine of the rotation.
4: s Real (Kind=nag_wp) Output
On exit: the value s, the sine of the rotation.

6 Error Indicators and Warnings

None.

7 Accuracy

Not applicable.

8 Parallelism and Performance

f06cbf is not threaded in any implementation.

9 Further Comments

None.

10 Example

None.