logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

upmtr - {up,op}mtr: multiply by Q from hptrd

Author

Generated automatically by Doxygen for LAPACK from the source code. Version 3.12.0 Thu Aug 7 2025 17:26:25 upmtr(3)

Detailed Description

Function Documentation

subroutinecupmtr(characterside,characteruplo,charactertrans,integerm,integern,complex,dimension(*)ap,complex,dimension(*)tau,complex,dimension(ldc,*)c,integerldc,complex,dimension(*)work,integerinfo)CUPMTRPurpose: CUPMTR overwrites the general complex M-by-N matrix C with SIDE = 'L' SIDE = 'R' TRANS = 'N': Q * C C * Q TRANS = 'C': Q**H * C C * Q**H where Q is a complex unitary matrix of order nq, with nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of nq-1 elementary reflectors, as returned by CHPTRD using packed storage: if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1); if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1). ParametersSIDE SIDE is CHARACTER*1 = 'L': apply Q or Q**H from the Left; = 'R': apply Q or Q**H from the Right. UPLO UPLO is CHARACTER*1 = 'U': Upper triangular packed storage used in previous call to CHPTRD; = 'L': Lower triangular packed storage used in previous call to CHPTRD. TRANS TRANS is CHARACTER*1 = 'N': No transpose, apply Q; = 'C': Conjugate transpose, apply Q**H. 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. AP AP is COMPLEX array, dimension (M*(M+1)/2) if SIDE = 'L' (N*(N+1)/2) if SIDE = 'R' The vectors which define the elementary reflectors, as returned by CHPTRD. AP is modified by the routine but restored on exit. TAU TAU is COMPLEX array, dimension (M-1) if SIDE = 'L' or (N-1) if SIDE = 'R' TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by CHPTRD. 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. subroutinedopmtr(characterside,characteruplo,charactertrans,integerm,integern,doubleprecision,dimension(*)ap,doubleprecision,dimension(*)tau,doubleprecision,dimension(ldc,*)c,integerldc,doubleprecision,dimension(*)work,integerinfo)DOPMTRPurpose: DOPMTR overwrites the general real M-by-N matrix C with SIDE = 'L' SIDE = 'R' TRANS = 'N': Q * C C * Q TRANS = 'T': Q**T * C C * Q**T where Q is a real orthogonal matrix of order nq, with nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of nq-1 elementary reflectors, as returned by DSPTRD using packed storage: if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1); if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1). ParametersSIDE SIDE is CHARACTER*1 = 'L': apply Q or Q**T from the Left; = 'R': apply Q or Q**T from the Right. UPLO UPLO is CHARACTER*1 = 'U': Upper triangular packed storage used in previous call to DSPTRD; = 'L': Lower triangular packed storage used in previous call to DSPTRD. TRANS TRANS is CHARACTER*1 = 'N': No transpose, apply Q; = 'T': Transpose, apply Q**T. 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. AP AP is DOUBLE PRECISION array, dimension (M*(M+1)/2) if SIDE = 'L' (N*(N+1)/2) if SIDE = 'R' The vectors which define the elementary reflectors, as returned by DSPTRD. AP is modified by the routine but restored on exit. TAU TAU is DOUBLE PRECISION array, dimension (M-1) if SIDE = 'L' or (N-1) if SIDE = 'R' TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by DSPTRD. 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. subroutinesopmtr(characterside,characteruplo,charactertrans,integerm,integern,real,dimension(*)ap,real,dimension(*)tau,real,dimension(ldc,*)c,integerldc,real,dimension(*)work,integerinfo)SOPMTRPurpose: SOPMTR overwrites the general real M-by-N matrix C with SIDE = 'L' SIDE = 'R' TRANS = 'N': Q * C C * Q TRANS = 'T': Q**T * C C * Q**T where Q is a real orthogonal matrix of order nq, with nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of nq-1 elementary reflectors, as returned by SSPTRD using packed storage: if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1); if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1). ParametersSIDE SIDE is CHARACTER*1 = 'L': apply Q or Q**T from the Left; = 'R': apply Q or Q**T from the Right. UPLO UPLO is CHARACTER*1 = 'U': Upper triangular packed storage used in previous call to SSPTRD; = 'L': Lower triangular packed storage used in previous call to SSPTRD. TRANS TRANS is CHARACTER*1 = 'N': No transpose, apply Q; = 'T': Transpose, apply Q**T. 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. AP AP is REAL array, dimension (M*(M+1)/2) if SIDE = 'L' (N*(N+1)/2) if SIDE = 'R' The vectors which define the elementary reflectors, as returned by SSPTRD. AP is modified by the routine but restored on exit. TAU TAU is REAL array, dimension (M-1) if SIDE = 'L' or (N-1) if SIDE = 'R' TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by SSPTRD. 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. subroutinezupmtr(characterside,characteruplo,charactertrans,integerm,integern,complex*16,dimension(*)ap,complex*16,dimension(*)tau,complex*16,dimension(ldc,*)c,integerldc,complex*16,dimension(*)work,integerinfo)ZUPMTRPurpose: ZUPMTR overwrites the general complex M-by-N matrix C with SIDE = 'L' SIDE = 'R' TRANS = 'N': Q * C C * Q TRANS = 'C': Q**H * C C * Q**H where Q is a complex unitary matrix of order nq, with nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of nq-1 elementary reflectors, as returned by ZHPTRD using packed storage: if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1); if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1). ParametersSIDE SIDE is CHARACTER*1 = 'L': apply Q or Q**H from the Left; = 'R': apply Q or Q**H from the Right. UPLO UPLO is CHARACTER*1 = 'U': Upper triangular packed storage used in previous call to ZHPTRD; = 'L': Lower triangular packed storage used in previous call to ZHPTRD. TRANS TRANS is CHARACTER*1 = 'N': No transpose, apply Q; = 'C': Conjugate transpose, apply Q**H. 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. AP AP is COMPLEX*16 array, dimension (M*(M+1)/2) if SIDE = 'L' (N*(N+1)/2) if SIDE = 'R' The vectors which define the elementary reflectors, as returned by ZHPTRD. AP is modified by the routine but restored on exit. TAU TAU is COMPLEX*16 array, dimension (M-1) if SIDE = 'L' or (N-1) if SIDE = 'R' TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by ZHPTRD. 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.

Name

upmtr - {up,op}mtr: multiply by Q from hptrd

Synopsis

Functions subroutine cupmtr (side, uplo, trans, m, n, ap, tau, c, ldc, work, info) CUPMTR subroutine dopmtr (side, uplo, trans, m, n, ap, tau, c, ldc, work, info) DOPMTR subroutine sopmtr (side, uplo, trans, m, n, ap, tau, c, ldc, work, info) SOPMTR subroutine zupmtr (side, uplo, trans, m, n, ap, tau, c, ldc, work, info) ZUPMTR

See Also