Note: this is a BLAS routine and is not in libslatec.a
*DECK DROTG 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