Provided by: liblapack-doc_3.12.0-3build1_all bug

NAME

       unmr3 - {un,or}mr3: step in unmrz

SYNOPSIS

   Functions
       subroutine cunmr3 (side, trans, m, n, k, l, a, lda, tau, c, ldc, work, info)
           CUNMR3 multiplies a general matrix by the unitary matrix from a RZ factorization
           determined by ctzrzf (unblocked algorithm).
       subroutine dormr3 (side, trans, m, n, k, l, a, lda, tau, c, ldc, work, info)
           DORMR3 multiplies a general matrix by the orthogonal matrix from a RZ factorization
           determined by stzrzf (unblocked algorithm).
       subroutine sormr3 (side, trans, m, n, k, l, a, lda, tau, c, ldc, work, info)
           SORMR3 multiplies a general matrix by the orthogonal matrix from a RZ factorization
           determined by stzrzf (unblocked algorithm).
       subroutine zunmr3 (side, trans, m, n, k, l, a, lda, tau, c, ldc, work, info)
           ZUNMR3 multiplies a general matrix by the unitary matrix from a RZ factorization
           determined by ctzrzf (unblocked algorithm).

Detailed Description

Function Documentation

   subroutine cunmr3 (character side, character trans, integer m, integer n, integer k, integer
       l, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) tau, complex,
       dimension( ldc, * ) c, integer ldc, complex, dimension( * ) work, integer info)
       CUNMR3 multiplies a general matrix by the unitary matrix from a RZ factorization
       determined by ctzrzf (unblocked algorithm).

       Purpose:

            CUNMR3 overwrites the general complex m by n matrix C with

                  Q * C  if SIDE = 'L' and TRANS = 'N', or

                  Q**H* C  if SIDE = 'L' and TRANS = 'C', or

                  C * Q  if SIDE = 'R' and TRANS = 'N', or

                  C * Q**H if SIDE = 'R' and TRANS = 'C',

            where Q is a complex unitary matrix defined as the product of k
            elementary reflectors

                  Q = H(1) H(2) . . . H(k)

            as returned by CTZRZF. Q is of order m if SIDE = 'L' and of order n
            if SIDE = 'R'.

       Parameters
           SIDE

                     SIDE is CHARACTER*1
                     = 'L': apply Q or Q**H from the Left
                     = 'R': apply Q or Q**H from the Right

           TRANS

                     TRANS is CHARACTER*1
                     = 'N': apply Q  (No transpose)
                     = 'C': apply Q**H (Conjugate transpose)

           M

                     M is INTEGER
                     The number of rows of the matrix C. M >= 0.

           N

                     N is INTEGER
                     The number of columns of the matrix C. N >= 0.

           K

                     K is INTEGER
                     The number of elementary reflectors whose product defines
                     the matrix Q.
                     If SIDE = 'L', M >= K >= 0;
                     if SIDE = 'R', N >= K >= 0.

           L

                     L is INTEGER
                     The number of columns of the matrix A containing
                     the meaningful part of the Householder reflectors.
                     If SIDE = 'L', M >= L >= 0, if SIDE = 'R', N >= L >= 0.

           A

                     A is COMPLEX array, dimension
                                          (LDA,M) if SIDE = 'L',
                                          (LDA,N) if SIDE = 'R'
                     The i-th row must contain the vector which defines the
                     elementary reflector H(i), for i = 1,2,...,k, as returned by
                     CTZRZF in the last k rows of its array argument A.
                     A is modified by the routine but restored on exit.

           LDA

                     LDA is INTEGER
                     The leading dimension of the array A. LDA >= max(1,K).

           TAU

                     TAU is COMPLEX array, dimension (K)
                     TAU(i) must contain the scalar factor of the elementary
                     reflector H(i), as returned by CTZRZF.

           C

                     C is COMPLEX array, dimension (LDC,N)
                     On entry, the m-by-n matrix C.
                     On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.

           LDC

                     LDC is INTEGER
                     The leading dimension of the array C. LDC >= max(1,M).

           WORK

                     WORK is COMPLEX array, dimension
                                              (N) if SIDE = 'L',
                                              (M) if SIDE = 'R'

           INFO

                     INFO is INTEGER
                     = 0: successful exit
                     < 0: if INFO = -i, the i-th argument had an illegal value

       Author
           Univ. of Tennessee

           Univ. of California Berkeley

           Univ. of Colorado Denver

           NAG Ltd.

       Contributors:
           A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

       Further Details:

   subroutine dormr3 (character side, character trans, integer m, integer n, integer k, integer
       l, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * )
       tau, double precision, dimension( ldc, * ) c, integer ldc, double precision, dimension( *
       ) work, integer info)
       DORMR3 multiplies a general matrix by the orthogonal matrix from a RZ factorization
       determined by stzrzf (unblocked algorithm).

       Purpose:

            DORMR3 overwrites the general real m by n matrix C with

                  Q * C  if SIDE = 'L' and TRANS = 'N', or

                  Q**T* C  if SIDE = 'L' and TRANS = 'C', or

                  C * Q  if SIDE = 'R' and TRANS = 'N', or

                  C * Q**T if SIDE = 'R' and TRANS = 'C',

            where Q is a real orthogonal matrix defined as the product of k
            elementary reflectors

                  Q = H(1) H(2) . . . H(k)

            as returned by DTZRZF. Q is of order m if SIDE = 'L' and of order n
            if SIDE = 'R'.

       Parameters
           SIDE

                     SIDE is CHARACTER*1
                     = 'L': apply Q or Q**T from the Left
                     = 'R': apply Q or Q**T from the Right

           TRANS

                     TRANS is CHARACTER*1
                     = 'N': apply Q  (No transpose)
                     = 'T': apply Q**T (Transpose)

           M

                     M is INTEGER
                     The number of rows of the matrix C. M >= 0.

           N

                     N is INTEGER
                     The number of columns of the matrix C. N >= 0.

           K

                     K is INTEGER
                     The number of elementary reflectors whose product defines
                     the matrix Q.
                     If SIDE = 'L', M >= K >= 0;
                     if SIDE = 'R', N >= K >= 0.

           L

                     L is INTEGER
                     The number of columns of the matrix A containing
                     the meaningful part of the Householder reflectors.
                     If SIDE = 'L', M >= L >= 0, if SIDE = 'R', N >= L >= 0.

           A

                     A is DOUBLE PRECISION array, dimension
                                          (LDA,M) if SIDE = 'L',
                                          (LDA,N) if SIDE = 'R'
                     The i-th row must contain the vector which defines the
                     elementary reflector H(i), for i = 1,2,...,k, as returned by
                     DTZRZF in the last k rows of its array argument A.
                     A is modified by the routine but restored on exit.

           LDA

                     LDA is INTEGER
                     The leading dimension of the array A. LDA >= max(1,K).

           TAU

                     TAU is DOUBLE PRECISION array, dimension (K)
                     TAU(i) must contain the scalar factor of the elementary
                     reflector H(i), as returned by DTZRZF.

           C

                     C is DOUBLE PRECISION array, dimension (LDC,N)
                     On entry, the m-by-n matrix C.
                     On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q.

           LDC

                     LDC is INTEGER
                     The leading dimension of the array C. LDC >= max(1,M).

           WORK

                     WORK is DOUBLE PRECISION array, dimension
                                              (N) if SIDE = 'L',
                                              (M) if SIDE = 'R'

           INFO

                     INFO is INTEGER
                     = 0: successful exit
                     < 0: if INFO = -i, the i-th argument had an illegal value

       Author
           Univ. of Tennessee

           Univ. of California Berkeley

           Univ. of Colorado Denver

           NAG Ltd.

       Contributors:
           A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

       Further Details:

   subroutine sormr3 (character side, character trans, integer m, integer n, integer k, integer
       l, real, dimension( lda, * ) a, integer lda, real, dimension( * ) tau, real, dimension(
       ldc, * ) c, integer ldc, real, dimension( * ) work, integer info)
       SORMR3 multiplies a general matrix by the orthogonal matrix from a RZ factorization
       determined by stzrzf (unblocked algorithm).

       Purpose:

            SORMR3 overwrites the general real m by n matrix C with

                  Q * C  if SIDE = 'L' and TRANS = 'N', or

                  Q**T* C  if SIDE = 'L' and TRANS = 'C', or

                  C * Q  if SIDE = 'R' and TRANS = 'N', or

                  C * Q**T if SIDE = 'R' and TRANS = 'C',

            where Q is a real orthogonal matrix defined as the product of k
            elementary reflectors

                  Q = H(1) H(2) . . . H(k)

            as returned by STZRZF. Q is of order m if SIDE = 'L' and of order n
            if SIDE = 'R'.

       Parameters
           SIDE

                     SIDE is CHARACTER*1
                     = 'L': apply Q or Q**T from the Left
                     = 'R': apply Q or Q**T from the Right

           TRANS

                     TRANS is CHARACTER*1
                     = 'N': apply Q  (No transpose)
                     = 'T': apply Q**T (Transpose)

           M

                     M is INTEGER
                     The number of rows of the matrix C. M >= 0.

           N

                     N is INTEGER
                     The number of columns of the matrix C. N >= 0.

           K

                     K is INTEGER
                     The number of elementary reflectors whose product defines
                     the matrix Q.
                     If SIDE = 'L', M >= K >= 0;
                     if SIDE = 'R', N >= K >= 0.

           L

                     L is INTEGER
                     The number of columns of the matrix A containing
                     the meaningful part of the Householder reflectors.
                     If SIDE = 'L', M >= L >= 0, if SIDE = 'R', N >= L >= 0.

           A

                     A is REAL array, dimension
                                          (LDA,M) if SIDE = 'L',
                                          (LDA,N) if SIDE = 'R'
                     The i-th row must contain the vector which defines the
                     elementary reflector H(i), for i = 1,2,...,k, as returned by
                     STZRZF in the last k rows of its array argument A.
                     A is modified by the routine but restored on exit.

           LDA

                     LDA is INTEGER
                     The leading dimension of the array A. LDA >= max(1,K).

           TAU

                     TAU is REAL array, dimension (K)
                     TAU(i) must contain the scalar factor of the elementary
                     reflector H(i), as returned by STZRZF.

           C

                     C is REAL array, dimension (LDC,N)
                     On entry, the m-by-n matrix C.
                     On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q.

           LDC

                     LDC is INTEGER
                     The leading dimension of the array C. LDC >= max(1,M).

           WORK

                     WORK is REAL array, dimension
                                              (N) if SIDE = 'L',
                                              (M) if SIDE = 'R'

           INFO

                     INFO is INTEGER
                     = 0: successful exit
                     < 0: if INFO = -i, the i-th argument had an illegal value

       Author
           Univ. of Tennessee

           Univ. of California Berkeley

           Univ. of Colorado Denver

           NAG Ltd.

       Contributors:
           A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

       Further Details:

   subroutine zunmr3 (character side, character trans, integer m, integer n, integer k, integer
       l, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) tau,
       complex*16, dimension( ldc, * ) c, integer ldc, complex*16, dimension( * ) work, integer
       info)
       ZUNMR3 multiplies a general matrix by the unitary matrix from a RZ factorization
       determined by ctzrzf (unblocked algorithm).

       Purpose:

            ZUNMR3 overwrites the general complex m by n matrix C with

                  Q * C  if SIDE = 'L' and TRANS = 'N', or

                  Q**H* C  if SIDE = 'L' and TRANS = 'C', or

                  C * Q  if SIDE = 'R' and TRANS = 'N', or

                  C * Q**H if SIDE = 'R' and TRANS = 'C',

            where Q is a complex unitary matrix defined as the product of k
            elementary reflectors

                  Q = H(1) H(2) . . . H(k)

            as returned by ZTZRZF. Q is of order m if SIDE = 'L' and of order n
            if SIDE = 'R'.

       Parameters
           SIDE

                     SIDE is CHARACTER*1
                     = 'L': apply Q or Q**H from the Left
                     = 'R': apply Q or Q**H from the Right

           TRANS

                     TRANS is CHARACTER*1
                     = 'N': apply Q  (No transpose)
                     = 'C': apply Q**H (Conjugate transpose)

           M

                     M is INTEGER
                     The number of rows of the matrix C. M >= 0.

           N

                     N is INTEGER
                     The number of columns of the matrix C. N >= 0.

           K

                     K is INTEGER
                     The number of elementary reflectors whose product defines
                     the matrix Q.
                     If SIDE = 'L', M >= K >= 0;
                     if SIDE = 'R', N >= K >= 0.

           L

                     L is INTEGER
                     The number of columns of the matrix A containing
                     the meaningful part of the Householder reflectors.
                     If SIDE = 'L', M >= L >= 0, if SIDE = 'R', N >= L >= 0.

           A

                     A is COMPLEX*16 array, dimension
                                          (LDA,M) if SIDE = 'L',
                                          (LDA,N) if SIDE = 'R'
                     The i-th row must contain the vector which defines the
                     elementary reflector H(i), for i = 1,2,...,k, as returned by
                     ZTZRZF in the last k rows of its array argument A.
                     A is modified by the routine but restored on exit.

           LDA

                     LDA is INTEGER
                     The leading dimension of the array A. LDA >= max(1,K).

           TAU

                     TAU is COMPLEX*16 array, dimension (K)
                     TAU(i) must contain the scalar factor of the elementary
                     reflector H(i), as returned by ZTZRZF.

           C

                     C is COMPLEX*16 array, dimension (LDC,N)
                     On entry, the m-by-n matrix C.
                     On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.

           LDC

                     LDC is INTEGER
                     The leading dimension of the array C. LDC >= max(1,M).

           WORK

                     WORK is COMPLEX*16 array, dimension
                                              (N) if SIDE = 'L',
                                              (M) if SIDE = 'R'

           INFO

                     INFO is INTEGER
                     = 0: successful exit
                     < 0: if INFO = -i, the i-th argument had an illegal value

       Author
           Univ. of Tennessee

           Univ. of California Berkeley

           Univ. of Colorado Denver

           NAG Ltd.

       Contributors:
           A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

       Further Details:

Author

       Generated automatically by Doxygen for LAPACK from the source code.