Diff for /rpl/lapack/blas/zdrot.f between versions 1.3 and 1.9

version 1.3, 2010/08/06 15:32:20 version 1.9, 2012/08/22 09:36:41
Line 1 Line 1
   *> \brief \b ZDROT
   *
   *  =========== DOCUMENTATION ===========
   *
   * Online html documentation available at 
   *            http://www.netlib.org/lapack/explore-html/ 
   *
   *  Definition:
   *  ===========
   *
   *       SUBROUTINE ZDROT( N, CX, INCX, CY, INCY, C, S )
   * 
   *       .. Scalar Arguments ..
   *       INTEGER            INCX, INCY, N
   *       DOUBLE PRECISION   C, S
   *       ..
   *       .. Array Arguments ..
   *       COMPLEX*16         CX( * ), CY( * )
   *       ..
   *  
   *
   *> \par Purpose:
   *  =============
   *>
   *> \verbatim
   *>
   *> Applies a plane rotation, where the cos and sin (c and s) are real
   *> and the vectors cx and cy are complex.
   *> jack dongarra, linpack, 3/11/78.
   *> \endverbatim
   *
   *  Arguments:
   *  ==========
   *
   *> \param[in] N
   *> \verbatim
   *>          N is INTEGER
   *>           On entry, N specifies the order of the vectors cx and cy.
   *>           N must be at least zero.
   *> \endverbatim
   *>
   *> \param[in,out] CX
   *> \verbatim
   *>          CX is COMPLEX*16 array, dimension at least
   *>           ( 1 + ( N - 1 )*abs( INCX ) ).
   *>           Before entry, the incremented array CX must contain the n
   *>           element vector cx. On exit, CX is overwritten by the updated
   *>           vector cx.
   *> \endverbatim
   *>
   *> \param[in] INCX
   *> \verbatim
   *>          INCX is INTEGER
   *>           On entry, INCX specifies the increment for the elements of
   *>           CX. INCX must not be zero.
   *> \endverbatim
   *>
   *> \param[in,out] CY
   *> \verbatim
   *>          CY is COMPLEX*16 array, dimension at least
   *>           ( 1 + ( N - 1 )*abs( INCY ) ).
   *>           Before entry, the incremented array CY must contain the n
   *>           element vector cy. On exit, CY is overwritten by the updated
   *>           vector cy.
   *> \endverbatim
   *>
   *> \param[in] INCY
   *> \verbatim
   *>          INCY is INTEGER
   *>           On entry, INCY specifies the increment for the elements of
   *>           CY. INCY must not be zero.
   *> \endverbatim
   *>
   *> \param[in] C
   *> \verbatim
   *>          C is DOUBLE PRECISION
   *>           On entry, C specifies the cosine, cos.
   *> \endverbatim
   *>
   *> \param[in] S
   *> \verbatim
   *>          S is DOUBLE PRECISION
   *>           On entry, S specifies the sine, sin.
   *> \endverbatim
   *
   *  Authors:
   *  ========
   *
   *> \author Univ. of Tennessee 
   *> \author Univ. of California Berkeley 
   *> \author Univ. of Colorado Denver 
   *> \author NAG Ltd. 
   *
   *> \date November 2011
   *
   *> \ingroup complex16_blas_level1
   *
   *  =====================================================================
       SUBROUTINE ZDROT( N, CX, INCX, CY, INCY, C, S )        SUBROUTINE ZDROT( N, CX, INCX, CY, INCY, C, S )
 *  *
   *  -- Reference BLAS level1 routine (version 3.4.0) --
   *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
   *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
   *     November 2011
   *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       INTEGER            INCX, INCY, N        INTEGER            INCX, INCY, N
       DOUBLE PRECISION   C, S        DOUBLE PRECISION   C, S
Line 8 Line 111
       COMPLEX*16         CX( * ), CY( * )        COMPLEX*16         CX( * ), CY( * )
 *     ..  *     ..
 *  *
 *  Purpose  
 *  =======  
 *  
 *  Applies a plane rotation, where the cos and sin (c and s) are real  
 *  and the vectors cx and cy are complex.  
 *  jack dongarra, linpack, 3/11/78.  
 *  
 *  Arguments  
 *  ==========  
 *  
 *  N        (input) INTEGER  
 *           On entry, N specifies the order of the vectors cx and cy.  
 *           N must be at least zero.  
 *           Unchanged on exit.  
 *  
 *  CX       (input) COMPLEX*16 array, dimension at least  
 *           ( 1 + ( N - 1 )*abs( INCX ) ).  
 *           Before entry, the incremented array CX must contain the n  
 *           element vector cx. On exit, CX is overwritten by the updated  
 *           vector cx.  
 *  
 *  INCX     (input) INTEGER  
 *           On entry, INCX specifies the increment for the elements of  
 *           CX. INCX must not be zero.  
 *           Unchanged on exit.  
 *  
 *  CY       (input) COMPLEX*16 array, dimension at least  
 *           ( 1 + ( N - 1 )*abs( INCY ) ).  
 *           Before entry, the incremented array CY must contain the n  
 *           element vector cy. On exit, CY is overwritten by the updated  
 *           vector cy.  
 *  
 *  INCY     (input) INTEGER  
 *           On entry, INCY specifies the increment for the elements of  
 *           CY. INCY must not be zero.  
 *           Unchanged on exit.  
 *  
 *  C        (input) DOUBLE PRECISION  
 *           On entry, C specifies the cosine, cos.  
 *           Unchanged on exit.  
 *  
 *  S        (input) DOUBLE PRECISION  
 *           On entry, S specifies the sine, sin.  
 *           Unchanged on exit.  
 *  
 * =====================================================================  * =====================================================================
 *  *
 *     .. Local Scalars ..  *     .. Local Scalars ..
Line 63 Line 121
 *  *
       IF( N.LE.0 )        IF( N.LE.0 )
      $   RETURN       $   RETURN
       IF( INCX.EQ.1 .AND. INCY.EQ.1 )        IF( INCX.EQ.1 .AND. INCY.EQ.1 ) THEN
      $   GO TO 20  
 *  *
 *        code for unequal increments or equal increments not equal  *        code for both increments equal to 1
 *          to 1  
 *  *
       IX = 1           DO I = 1, N
       IY = 1              CTEMP = C*CX( I ) + S*CY( I )
       IF( INCX.LT.0 )              CY( I ) = C*CY( I ) - S*CX( I )
      $   IX = ( -N+1 )*INCX + 1              CX( I ) = CTEMP
       IF( INCY.LT.0 )           END DO
      $   IY = ( -N+1 )*INCY + 1        ELSE
       DO 10 I = 1, N  
          CTEMP = C*CX( IX ) + S*CY( IY )  
          CY( IY ) = C*CY( IY ) - S*CX( IX )  
          CX( IX ) = CTEMP  
          IX = IX + INCX  
          IY = IY + INCY  
    10 CONTINUE  
       RETURN  
 *  *
 *        code for both increments equal to 1  *        code for unequal increments or equal increments not equal
   *          to 1
 *  *
    20 CONTINUE           IX = 1
       DO 30 I = 1, N           IY = 1
          CTEMP = C*CX( I ) + S*CY( I )           IF( INCX.LT.0 )
          CY( I ) = C*CY( I ) - S*CX( I )       $      IX = ( -N+1 )*INCX + 1
          CX( I ) = CTEMP           IF( INCY.LT.0 )
    30 CONTINUE       $      IY = ( -N+1 )*INCY + 1
            DO I = 1, N
               CTEMP = C*CX( IX ) + S*CY( IY )
               CY( IY ) = C*CY( IY ) - S*CX( IX )
               CX( IX ) = CTEMP
               IX = IX + INCX
               IY = IY + INCY
            END DO
         END IF
       RETURN        RETURN
       END        END

Removed from v.1.3  
changed lines
  Added in v.1.9


CVSweb interface <joel.bertrand@systella.fr>