DROTM(3)        BLAS routine of NEC Numeric Library Collection        DROTM(3)



NAME
       DROTM - BLAS level one. Applies a modified Givens rotation.

SYNOPSIS
       SUBROUTINE DROTM    ( n, x, incx, y, incy, rparam )

           INTEGER           n, incx, incy

           DOUBLE PRECISION  x, y, rparam


DESCRIPTION
       DROTM applies the modified Givens plane rotation constructed by DROTMG.


ARGUMENTS
       n       INTEGER. (input)
               Number of ordered pairs (planar points in DROTM) to be rotated.
               If n <= 0, this routine returns without computation.

       x       DOUBLE PRECISION, (input and output)
               Array  of dimension (n-1) * |incx| + 1.  On input, array x con-
               tains the x-coordinate of each planar point to be rotated.   On
               output,  array x contains the x-coordinate of each rotated pla-
               nar point.

       incx    INTEGER. (input)
               Increment between elements of x.  If incx = 0, the results will
               be unpredictable.

       y       DOUBLE PRECISION, (input and output)
               Array of dimension (n-1) * |incy| + 1.
               On  input,  array  y  contains  the y-coordinate of each planar
               point to be rotated.  On output, array y contains the y-coordi-
               nate of each rotated planar point.

       incy    INTEGER. (input)
               Increment between elements of y.  If incy = 0, the results will
               be unpredictable.

       rparam  DOUBLE PRECISION array of dimension 5. (input)
               Contains rotation matrix information.

NOTES
       This routine computes a planar rotation, with possible scaling oreflec-
       tion, as follows:

            _      _     _               _  _      _
            | x(i) |     | h(1,1) h(1,2) |  | x(i) |
            | y(i) | <-- | h(2,1) h(2,2) |  | y(i) |
            -      -     -               -  -      -

            for i = 1,...,n
       where the matrix that contains the elements h(1,1), h(2,1), h(1,2),
       and h(2,2) is called a rotation matrix.

       The rparam array determines the contents of the rotation matrix, as
       follows:

       The key parameter, rparam(1), may have one of four values:
            1.0,  0.0,  -1.0,  or -2.0

       If rparam(1) = 1.0:

            _               _   _                      _
            | h(1,1) h(1,2) | = | rparam(2)      1.0   |
            | h(2,1) h(2,2) |   |    -1.0    rparam(5) |
            -               -   -                      -

       and rparam(3) and rparam(4) are ignored.

       If rparam(1) = 0.0:

            _               _   _                      _
            | h(1,1) h(1,2) | = |       1.0  rparam(4) |
            | h(2,1) h(2,2) |   | rparam(3)        1.0 |
            -               -   -                      -

       and rparam(2) and rparam(5) are ignored.

       If rparam(1)=-1.0 (rescaling case):

            _               _   _                      _
            | h(1,1) h(1,2) | = | rparam(2)  rparam(4) |
            | h(2,1) h(2,2) |   | rparam(3)  rparam(5) |
            -               -   -                      -

       This is a full matrix multiplication.

       If rparam(1) = -2.0:

            _               _   _          _
            | h(1,1) h(1,2) | = | 1.0  0.0 | = I
            | h(2,1) h(2,2) |   | 0.0  1.0 |
            -               -   -          -

       where I is the identity matrix.  In this case, rparam(2), rparam(3),
       rparam(4), and rparam(5) are ignored.

       If n <=  0, or if the rotation matrix is the identity matrix (for
       example, when rparam(1) = -2.0), this routine returns with no
       operation on input arrays x and y.


SEE ALSO
       DROTMG(3)  for further details about the modified Givens transformation
       and array rparam.



BLAS routine                                                          DROTM(3)