99 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
*> \brief \b ZROTG
 | 
						|
*
 | 
						|
*  =========== DOCUMENTATION ===========
 | 
						|
*
 | 
						|
* Online html documentation available at
 | 
						|
*            http://www.netlib.org/lapack/explore-html/
 | 
						|
*
 | 
						|
*  Definition:
 | 
						|
*  ===========
 | 
						|
*
 | 
						|
*       SUBROUTINE ZROTG(CA,CB,C,S)
 | 
						|
*
 | 
						|
*       .. Scalar Arguments ..
 | 
						|
*       COMPLEX*16 CA,CB,S
 | 
						|
*       DOUBLE PRECISION C
 | 
						|
*       ..
 | 
						|
*
 | 
						|
*
 | 
						|
*> \par Purpose:
 | 
						|
*  =============
 | 
						|
*>
 | 
						|
*> \verbatim
 | 
						|
*>
 | 
						|
*>    ZROTG determines a double complex Givens rotation.
 | 
						|
*> \endverbatim
 | 
						|
*
 | 
						|
*  Arguments:
 | 
						|
*  ==========
 | 
						|
*
 | 
						|
*> \param[in] CA
 | 
						|
*> \verbatim
 | 
						|
*>          CA is COMPLEX*16
 | 
						|
*> \endverbatim
 | 
						|
*>
 | 
						|
*> \param[in] CB
 | 
						|
*> \verbatim
 | 
						|
*>          CB is COMPLEX*16
 | 
						|
*> \endverbatim
 | 
						|
*>
 | 
						|
*> \param[out] C
 | 
						|
*> \verbatim
 | 
						|
*>          C is DOUBLE PRECISION
 | 
						|
*> \endverbatim
 | 
						|
*>
 | 
						|
*> \param[out] S
 | 
						|
*> \verbatim
 | 
						|
*>          S is COMPLEX*16
 | 
						|
*> \endverbatim
 | 
						|
*
 | 
						|
*  Authors:
 | 
						|
*  ========
 | 
						|
*
 | 
						|
*> \author Univ. of Tennessee
 | 
						|
*> \author Univ. of California Berkeley
 | 
						|
*> \author Univ. of Colorado Denver
 | 
						|
*> \author NAG Ltd.
 | 
						|
*
 | 
						|
*> \date November 2017
 | 
						|
*
 | 
						|
*> \ingroup complex16_blas_level1
 | 
						|
*
 | 
						|
*  =====================================================================
 | 
						|
      SUBROUTINE ZROTG(CA,CB,C,S)
 | 
						|
*
 | 
						|
*  -- Reference BLAS level1 routine (version 3.8.0) --
 | 
						|
*  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
 | 
						|
*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 | 
						|
*     November 2017
 | 
						|
*
 | 
						|
*     .. Scalar Arguments ..
 | 
						|
      COMPLEX*16 CA,CB,S
 | 
						|
      DOUBLE PRECISION C
 | 
						|
*     ..
 | 
						|
*
 | 
						|
*  =====================================================================
 | 
						|
*
 | 
						|
*     .. Local Scalars ..
 | 
						|
      COMPLEX*16 ALPHA
 | 
						|
      DOUBLE PRECISION NORM,SCALE
 | 
						|
*     ..
 | 
						|
*     .. Intrinsic Functions ..
 | 
						|
      INTRINSIC CDABS,DCMPLX,DCONJG,DSQRT
 | 
						|
*     ..
 | 
						|
      IF (CDABS(CA).EQ.0.0d0) THEN
 | 
						|
         C = 0.0d0
 | 
						|
         S = (1.0d0,0.0d0)
 | 
						|
         CA = CB
 | 
						|
      ELSE
 | 
						|
         SCALE = CDABS(CA) + CDABS(CB)
 | 
						|
         NORM = SCALE*DSQRT((CDABS(CA/DCMPLX(SCALE,0.0d0)))**2+
 | 
						|
     $       (CDABS(CB/DCMPLX(SCALE,0.0d0)))**2)
 | 
						|
         ALPHA = CA/CDABS(CA)
 | 
						|
         C = CDABS(CA)/NORM
 | 
						|
         S = ALPHA*DCONJG(CB)/NORM
 | 
						|
         CA = ALPHA*NORM
 | 
						|
      END IF
 | 
						|
      RETURN
 | 
						|
      END
 |