SROTG(3) BLAS routine of NEC Numeric Library Collection SROTG(3)
NAME
SROTG - BLAS level one rotation subroutines
SYNOPSIS
SUBROUTINE SROTG ( a, b, c, s )
REAL a, b, c, s
DESCRIPTION
SROTG computes the elements of a rotation matrix such that:
_ _ _ _ _ _
| c s | | a | | r |
|-s c | * | b | = | 0 |
- - - - - -
where r = +- sqrt ( a**2 + b**2 ) and c**2 + s**2 =1.
The Givens plane rotation can be used to introduce zero elements into
a matrix selectively.
ARGUMENTS
a (input and output) REAL
First vector component. On input, the first component of the
vector to be rotated. On output, a is overwritten by by r, the
first component of the vector in the rotated coordinate system
where:
r = sign(sqrt(a**2 + b**2),a), if |a| > |b|
r = sign(sqrt(a**2 + b**2),b), if |a| <= |b|
b (input and output) REAL
Second vector component.
On input, the second component of the vector to be rotated. On
output, b contains z, where:
z=s if |a| > |b|
z=1/c if |a| <= |b| and c != 0 and r != 0
z=1 if |a| <= |b| and c = 0 and r != 0
z=0 if r = 0
c (output) REAL
Cosine of the angle of rotation:
c = a/r if r != 0
c = 1 if r = 0
s (output) REAL
Sine of the angle of rotation:
s = b/r if r != 0
s = 0 if r = 0
NOTE
The value of z, returned in b by SROTG, gives a compact representation
of the rotation matrix, which can be used later to reconstruct c and s
as in the following example:
IF (B .EQ. 1. ) THEN
C = 0.
S = 1.
ELSEIF( ABS( B) .LT. 1) THEN
C = SQRT( 1. - B * B)
S = B
ELSE
C = 1. / B
S = SQRT( 1 - C * C)
ENDIF
SEE ALSO
SROT(3), SROTM(3), SROTMG(3)
BLAS routine SROTG(3)