Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

slaref(3) [debian man page]

SLAREF(l)					      LAPACK auxiliary routine (version 1.5)						 SLAREF(l)

NAME
SLAREF - applie one or several Householder reflectors of size 3 to one or two matrices (if column is specified) on either their rows or columns SYNOPSIS
SUBROUTINE SLAREF( TYPE, A, LDA, WANTZ, Z, LDZ, BLOCK, IROW1, ICOL1, ISTART, ISTOP, ITMP1, ITMP2, LILOZ, LIHIZ, VECS, V2, V3, T1, T2, T3 ) LOGICAL BLOCK, WANTZ CHARACTER TYPE INTEGER ICOL1, IROW1, ISTART, ISTOP, ITMP1, ITMP2, LDA, LDZ, LIHIZ, LILOZ REAL T1, T2, T3, V2, V3 REAL A( LDA, * ), VECS( * ), Z( LDZ, * ) PURPOSE
SLAREF applies one or several Householder reflectors of size 3 to one or two matrices (if column is specified) on either their rows or columns. ARGUMENTS
TYPE (global input) CHARACTER*1 If 'R': Apply reflectors to the rows of the matrix (apply from left) Otherwise: Apply reflectors to the columns of the matrix Unchanged on exit. A (global input/output) REAL array, (LDA,*) On entry, the matrix to receive the reflections. The updated matrix on exit. LDA (local input) INTEGER On entry, the leading dimension of A. Unchanged on exit. WANTZ (global input) LOGICAL If .TRUE., then apply any column reflections to Z as well. If .FALSE., then do no additional work on Z. Z (global input/output) REAL array, (LDZ,*) On entry, the second matrix to receive column reflections. This is changed only if WANTZ is set. LDZ (local input) INTEGER On entry, the leading dimension of Z. Unchanged on exit. BLOCK (global input) LOGICAL If .TRUE., then apply several reflectors at once and read their data from the VECS array. If .FALSE., apply the single reflector given by V2, V3, T1, T2, and T3. IROW1 (local input/output) INTEGER On entry, the local row element of A. Undefined on output. ICOL1 (local input/output) INTEGER On entry, the local column element of A. Undefined on output. ISTART (global input) INTEGER Specifies the "number" of the first reflector. This is used as an index into VECS if BLOCK is set. ISTART is ignored if BLOCK is .FALSE.. ISTOP (global input) INTEGER Specifies the "number" of the last reflector. This is used as an index into VECS if BLOCK is set. ISTOP is ignored if BLOCK is .FALSE.. ITMP1 (local input) INTEGER Starting range into A. For rows, this is the local first column. For columns, this is the local first row. ITMP2 (local input) INTEGER Ending range into A. For rows, this is the local last column. For columns, this is the local last row. LILOZ LIHIZ (local input) INTEGER These serve the same purpose as ITMP1,ITMP2 but for Z when WANTZ is set. VECS (global input) REAL array of size 3*N (matrix size) This holds the size 3 reflectors one after another and this is only accessed when BLOCK is .TRUE. V2 V3 T1 T2 T3 (global input/output) REAL This holds information on a single size 3 Householder reflector and is read when BLOCK is .FALSE., and overwritten when BLOCK is .TRUE. Implemented by: G. Henry, May 1, 1997 LAPACK version 1.5 12 May 1997 SLAREF(l)

Check Out this Related Man Page

PDLAHRD(l)					      LAPACK auxiliary routine (version 1.5)						PDLAHRD(l)

NAME
PDLAHRD - reduce the first NB columns of a real general N-by-(N-K+1) distributed matrix A(IA:IA+N-1,JA:JA+N-K) so that elements below the k-th subdiagonal are zero SYNOPSIS
SUBROUTINE PDLAHRD( N, K, NB, A, IA, JA, DESCA, TAU, T, Y, IY, JY, DESCY, WORK ) INTEGER IA, IY, JA, JY, K, N, NB INTEGER DESCA( * ), DESCY( * ) DOUBLE PRECISION A( * ), T( * ), TAU( * ), WORK( * ), Y( * ) PURPOSE
PDLAHRD reduces the first NB columns of a real general N-by-(N-K+1) distributed matrix A(IA:IA+N-1,JA:JA+N-K) so that elements below the k- th subdiagonal are zero. The reduction is performed by an orthogo- nal similarity transformation Q' * A * Q. The routine returns the matri- ces V and T which determine Q as a block reflector I - V*T*V', and also the matrix Y = A * V * T. This is an auxiliary routine called by PDGEHRD. In the following comments sub( A ) denotes A(IA:IA+N-1,JA:JA+N-1). ARGUMENTS
N (global input) INTEGER The number of rows and columns to be operated on, i.e. the order of the distributed submatrix sub( A ). N >= 0. K (global input) INTEGER The offset for the reduction. Elements below the k-th subdiagonal in the first NB columns are reduced to zero. NB (global input) INTEGER The number of columns to be reduced. A (local input/local output) DOUBLE PRECISION pointer into the local memory to an array of dimension (LLD_A, LOCc(JA+N-K)). On entry, this array contains the the local pieces of the N-by-(N- K+1) general distributed matrix A(IA:IA+N-1,JA:JA+N-K). On exit, the elements on and above the k-th subdiagonal in the first NB columns are overwritten with the corresponding elements of the reduced distributed matrix; the elements below the k-th subdiagonal, with the array TAU, represent the matrix Q as a product of elementary reflectors. The other columns of A(IA:IA+N-1,JA:JA+N-K) are unchanged. See Further Details. IA (global input) INTEGER The row index in the global array A indicating the first row of sub( A ). JA (global input) INTEGER The column index in the global array A indicating the first column of sub( A ). DESCA (global and local input) INTEGER array of dimension DLEN_. The array descriptor for the distributed matrix A. TAU (local output) DOUBLE PRECISION array, dimension LOCc(JA+N-2) The scalar factors of the elementary reflectors (see Further Details). TAU is tied to the distributed matrix A. T (local output) DOUBLE PRECISION array, dimension (NB_A,NB_A) The upper triangular matrix T. Y (local output) DOUBLE PRECISION pointer into the local memory to an array of dimension (LLD_Y,NB_A). On exit, this array contains the local pieces of the N-by-NB distributed matrix Y. LLD_Y >= LOCr(IA+N-1). IY (global input) INTEGER The row index in the global array Y indicating the first row of sub( Y ). JY (global input) INTEGER The column index in the global array Y indicating the first column of sub( Y ). DESCY (global and local input) INTEGER array of dimension DLEN_. The array descriptor for the distributed matrix Y. WORK (local workspace) DOUBLE PRECISION array, dimension (NB) FURTHER DETAILS
The matrix Q is represented as a product of nb elementary reflectors Q = H(1) H(2) . . . H(nb). Each H(i) has the form H(i) = I - tau * v * v' where tau is a real scalar, and v is a real vector with v(1:i+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored on exit in A(ia+i+k:ia+n-1,ja+i-1), and tau in TAU(ja+i-1). The elements of the vectors v together form the (n-k+1)-by-nb matrix V which is needed, with T and Y, to apply the transformation to the unreduced part of the matrix, using an update of the form: A(ia:ia+n-1,ja:ja+n-k) := (I-V*T*V')*(A(ia:ia+n-1,ja:ja+n-k)-Y*V'). The contents of A(ia:ia+n-1,ja:ja+n-k) on exit are illustrated by the following example with n = 7, k = 3 and nb = 2: ( a h a a a ) ( a h a a a ) ( a h a a a ) ( h h a a a ) ( v1 h a a a ) ( v1 v2 a a a ) ( v1 v2 a a a ) where a denotes an element of the original matrix A(ia:ia+n-1,ja:ja+n-k), h denotes a modified element of the upper Hessenberg matrix H, and vi denotes an element of the vector defining H(i). LAPACK version 1.5 12 May 1997 PDLAHRD(l)
Man Page