Annotation of rpl/lapack/blas/zrotg.f, revision 1.14

1.8       bertrand    1: *> \brief \b ZROTG
                      2: *
                      3: *  =========== DOCUMENTATION ===========
                      4: *
1.13      bertrand    5: * Online html documentation available at
                      6: *            http://www.netlib.org/lapack/explore-html/
1.8       bertrand    7: *
                      8: *  Definition:
                      9: *  ===========
                     10: *
                     11: *       SUBROUTINE ZROTG(CA,CB,C,S)
1.13      bertrand   12: *
1.8       bertrand   13: *       .. Scalar Arguments ..
                     14: *       COMPLEX*16 CA,CB,S
                     15: *       DOUBLE PRECISION C
                     16: *       ..
1.13      bertrand   17: *
1.8       bertrand   18: *
                     19: *> \par Purpose:
                     20: *  =============
                     21: *>
                     22: *> \verbatim
                     23: *>
                     24: *>    ZROTG determines a double complex Givens rotation.
                     25: *> \endverbatim
                     26: *
1.14    ! bertrand   27: *  Arguments:
        !            28: *  ==========
        !            29: *
        !            30: *> \param[in] CA
        !            31: *> \verbatim
        !            32: *>          CA is COMPLEX*16
        !            33: *> \endverbatim
        !            34: *>
        !            35: *> \param[in] CB
        !            36: *> \verbatim
        !            37: *>          CB is COMPLEX*16
        !            38: *> \endverbatim
        !            39: *>
        !            40: *> \param[out] C
        !            41: *> \verbatim
        !            42: *>          C is DOUBLE PRECISION
        !            43: *> \endverbatim
        !            44: *>
        !            45: *> \param[out] S
        !            46: *> \verbatim
        !            47: *>          S is COMPLEX*16
        !            48: *> \endverbatim
        !            49: *
1.8       bertrand   50: *  Authors:
                     51: *  ========
                     52: *
1.13      bertrand   53: *> \author Univ. of Tennessee
                     54: *> \author Univ. of California Berkeley
                     55: *> \author Univ. of Colorado Denver
                     56: *> \author NAG Ltd.
1.8       bertrand   57: *
1.14    ! bertrand   58: *> \date November 2017
1.8       bertrand   59: *
                     60: *> \ingroup complex16_blas_level1
                     61: *
                     62: *  =====================================================================
1.1       bertrand   63:       SUBROUTINE ZROTG(CA,CB,C,S)
1.8       bertrand   64: *
1.14    ! bertrand   65: *  -- Reference BLAS level1 routine (version 3.8.0) --
1.8       bertrand   66: *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
                     67: *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
1.14    ! bertrand   68: *     November 2017
1.8       bertrand   69: *
1.1       bertrand   70: *     .. Scalar Arguments ..
1.8       bertrand   71:       COMPLEX*16 CA,CB,S
1.1       bertrand   72:       DOUBLE PRECISION C
                     73: *     ..
                     74: *
                     75: *  =====================================================================
                     76: *
                     77: *     .. Local Scalars ..
1.8       bertrand   78:       COMPLEX*16 ALPHA
1.1       bertrand   79:       DOUBLE PRECISION NORM,SCALE
                     80: *     ..
                     81: *     .. Intrinsic Functions ..
                     82:       INTRINSIC CDABS,DCMPLX,DCONJG,DSQRT
                     83: *     ..
1.7       bertrand   84:       IF (CDABS(CA).EQ.0.0d0) THEN
                     85:          C = 0.0d0
                     86:          S = (1.0d0,0.0d0)
                     87:          CA = CB
                     88:       ELSE
                     89:          SCALE = CDABS(CA) + CDABS(CB)
                     90:          NORM = SCALE*DSQRT((CDABS(CA/DCMPLX(SCALE,0.0d0)))**2+
                     91:      $       (CDABS(CB/DCMPLX(SCALE,0.0d0)))**2)
                     92:          ALPHA = CA/CDABS(CA)
                     93:          C = CDABS(CA)/NORM
                     94:          S = ALPHA*DCONJG(CB)/NORM
                     95:          CA = ALPHA*NORM
                     96:       END IF
1.1       bertrand   97:       RETURN
                     98:       END

CVSweb interface <joel.bertrand@systella.fr>