drotg.f
SUBROUTINE DROTG (DA, DB, DC, DS)
C***BEGIN PROLOGUE DROTG
C***PURPOSE Construct a plane Givens rotation.
C***LIBRARY SLATEC (BLAS)
C***CATEGORY D1B10
C***TYPE DOUBLE PRECISION (SROTG-S, DROTG-D, CROTG-C)
C***KEYWORDS BLAS, GIVENS ROTATION, GIVENS TRANSFORMATION,
C LINEAR ALGEBRA, VECTOR
C***AUTHOR Lawson, C. L., (JPL)
C Hanson, R. J., (SNLA)
C Kincaid, D. R., (U. of Texas)
C Krogh, F. T., (JPL)
C***DESCRIPTION
C
C B L A S Subprogram
C Description of Parameters
C
C --Input--
C DA double precision scalar
C DB double precision scalar
C
C --Output--
C DA double precision result R
C DB double precision result Z
C DC double precision result
C DS double precision result
C
C Construct the Givens transformation
C
C ( DC DS )
C G = ( ) , DC**2 + DS**2 = 1 ,
C (-DS DC )
C
C which zeros the second entry of the 2-vector (DA,DB)**T .
C
C The quantity R = (+/-)SQRT(DA**2 + DB**2) overwrites DA in
C storage. The value of DB is overwritten by a value Z which
C allows DC and DS to be recovered by the following algorithm.
C
C If Z=1 set DC=0.0 and DS=1.0
C If ABS(Z) .LT. 1 set DC=SQRT(1-Z**2) and DS=Z
C If ABS(Z) .GT. 1 set DC=1/Z and DS=SQRT(1-DC**2)
C
C Normally, the subprogram DROT(N,DX,INCX,DY,INCY,DC,DS) will
C next be called to apply the transformation to a 2 by N matrix.
C
C***REFERENCES C. L. Lawson, R. J. Hanson, D. R. Kincaid and F. T.
C Krogh, Basic linear algebra subprograms for Fortran
C usage, Algorithm No. 539, Transactions on Mathematical
C Software 5, 3 (September 1979), pp. 308-323.
C***ROUTINES CALLED (NONE)
C***REVISION HISTORY (YYMMDD)
C 791001 DATE WRITTEN
C 890531 Changed all specific intrinsics to generic. (WRB)
C 890531 REVISION DATE from Version 3.2
C 891214 Prologue converted to Version 4.0 format. (BAB)
C 920501 Reformatted the REFERENCES section. (WRB)
C***END PROLOGUE DROTG