DROTG(3) BLAS routine of NEC Numeric Library Collection DROTG(3) NAME DGROTG - BLAS level one rotation subroutines SYNOPSIS SUBROUTINE DROTG ( a, b, c, s ) DOUBLE PRECISION a, b, c, s DESCRIPTION DROTG computes the elements of a Givens plane 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) DOUBLE PRECISION 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) DOUBLE PRECISION 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) DOUBLE PRECISION Cosine of the angle of rotation: c = a/r if r != 0 c = 1 if r = 0 s (output) DOUBLE PRECISION 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 DROTG, 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 DROT(3), DROTM(3), DROTMG(3) BLAS routine DROTG(3)