hptrd(3)

NAME
hptrd - {hp,sp}trd: reduction to tridiagonal

SYNOPSIS

  Functions

subroutine chptrd (uplo, n, ap, d, e, tau, info)
CHPTRD
subroutine dsptrd (uplo, n, ap, d, e, tau, info)
DSPTRD
subroutine ssptrd (uplo, n, ap, d, e, tau, info)
SSPTRD
subroutine zhptrd (uplo, n, ap, d, e, tau, info)
ZHPTRD

Detailed Description

Function Documentation

  subroutine chptrd (character uplo, integer n, complex, dimension( * ) ap, real, dimension( * ) d, real, dimension( * ) e, complex, dimension( * ) tau, integer info)

CHPTRD

Purpose:

    !>
    !> CHPTRD reduces a complex Hermitian matrix A stored in packed form to
    !> real symmetric tridiagonal form T by a unitary similarity
    !> transformation: Q**H * A * Q = T.
    !>

Parameters
    UPLO

    !>          UPLO is CHARACTER*1
    !>          = 'U':  Upper triangle of A is stored;
    !>          = 'L':  Lower triangle of A is stored.
    !>

    N

    !>          N is INTEGER
    !>          The order of the matrix A.  N >= 0.
    !>

    AP

    !>          AP is COMPLEX array, dimension (N*(N+1)/2)
    !>          On entry, the upper or lower triangle of the Hermitian matrix
    !>          A, packed columnwise in a linear array.  The j-th column of A
    !>          is stored in the array AP as follows:
    !>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
    !>          if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
    !>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
    !>          of A are overwritten by the corresponding elements of the
    !>          tridiagonal matrix T, and the elements above the first
    !>          superdiagonal, with the array TAU, represent the unitary
    !>          matrix Q as a product of elementary reflectors; if UPLO
    !>          = 'L', the diagonal and first subdiagonal of A are over-
    !>          written by the corresponding elements of the tridiagonal
    !>          matrix T, and the elements below the first subdiagonal, with
    !>          the array TAU, represent the unitary matrix Q as a product
    !>          of elementary reflectors. See Further Details.
    !>

    D

    !>          D is REAL array, dimension (N)
    !>          The diagonal elements of the tridiagonal matrix T:
    !>          D(i) = A(i,i).
    !>

    E

    !>          E is REAL array, dimension (N-1)
    !>          The off-diagonal elements of the tridiagonal matrix T:
    !>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
    !>

    TAU

    !>          TAU is COMPLEX array, dimension (N-1)
    !>          The scalar factors of the elementary reflectors (see Further
    !>          Details).
    !>

    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.

Further Details:

    !>
    !>  If UPLO = 'U', the matrix Q is represented as a product of elementary
    !>  reflectors
    !>
    !>     Q = H(n-1) . . . H(2) H(1).
    !>
    !>  Each H(i) has the form
    !>
    !>     H(i) = I - tau * v * v**H
    !>
    !>  where tau is a complex scalar, and v is a complex vector with
    !>  v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in AP,
    !>  overwriting A(1:i-1,i+1), and tau is stored in TAU(i).
    !>
    !>  If UPLO = 'L', the matrix Q is represented as a product of elementary
    !>  reflectors
    !>
    !>     Q = H(1) H(2) . . . H(n-1).
    !>
    !>  Each H(i) has the form
    !>
    !>     H(i) = I - tau * v * v**H
    !>
    !>  where tau is a complex scalar, and v is a complex vector with
    !>  v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in AP,
    !>  overwriting A(i+2:n,i), and tau is stored in TAU(i).
    !>

  subroutine dsptrd (character uplo, integer n, double precision, dimension( * ) ap, double precision, dimension( * ) d, double precision, dimension( * ) e, double precision, dimension( * ) tau, integer info)

DSPTRD

Purpose:

    !>
    !> DSPTRD reduces a real symmetric matrix A stored in packed form to
    !> symmetric tridiagonal form T by an orthogonal similarity
    !> transformation: Q**T * A * Q = T.
    !>

Parameters
    UPLO

    !>          UPLO is CHARACTER*1
    !>          = 'U':  Upper triangle of A is stored;
    !>          = 'L':  Lower triangle of A is stored.
    !>

    N

    !>          N is INTEGER
    !>          The order of the matrix A.  N >= 0.
    !>

    AP

    !>          AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
    !>          On entry, the upper or lower triangle of the symmetric matrix
    !>          A, packed columnwise in a linear array.  The j-th column of A
    !>          is stored in the array AP as follows:
    !>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
    !>          if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
    !>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
    !>          of A are overwritten by the corresponding elements of the
    !>          tridiagonal matrix T, and the elements above the first
    !>          superdiagonal, with the array TAU, represent the orthogonal
    !>          matrix Q as a product of elementary reflectors; if UPLO
    !>          = 'L', the diagonal and first subdiagonal of A are over-
    !>          written by the corresponding elements of the tridiagonal
    !>          matrix T, and the elements below the first subdiagonal, with
    !>          the array TAU, represent the orthogonal matrix Q as a product
    !>          of elementary reflectors. See Further Details.
    !>

    D

    !>          D is DOUBLE PRECISION array, dimension (N)
    !>          The diagonal elements of the tridiagonal matrix T:
    !>          D(i) = A(i,i).
    !>

    E

    !>          E is DOUBLE PRECISION array, dimension (N-1)
    !>          The off-diagonal elements of the tridiagonal matrix T:
    !>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
    !>

    TAU

    !>          TAU is DOUBLE PRECISION array, dimension (N-1)
    !>          The scalar factors of the elementary reflectors (see Further
    !>          Details).
    !>

    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.

Further Details:

    !>
    !>  If UPLO = 'U', the matrix Q is represented as a product of elementary
    !>  reflectors
    !>
    !>     Q = H(n-1) . . . H(2) H(1).
    !>
    !>  Each H(i) has the form
    !>
    !>     H(i) = I - tau * v * v**T
    !>
    !>  where tau is a real scalar, and v is a real vector with
    !>  v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in AP,
    !>  overwriting A(1:i-1,i+1), and tau is stored in TAU(i).
    !>
    !>  If UPLO = 'L', the matrix Q is represented as a product of elementary
    !>  reflectors
    !>
    !>     Q = H(1) H(2) . . . H(n-1).
    !>
    !>  Each H(i) has the form
    !>
    !>     H(i) = I - tau * v * v**T
    !>
    !>  where tau is a real scalar, and v is a real vector with
    !>  v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in AP,
    !>  overwriting A(i+2:n,i), and tau is stored in TAU(i).
    !>

  subroutine ssptrd (character uplo, integer n, real, dimension( * ) ap, real, dimension( * ) d, real, dimension( * ) e, real, dimension( * ) tau, integer info)

SSPTRD

Purpose:

    !>
    !> SSPTRD reduces a real symmetric matrix A stored in packed form to
    !> symmetric tridiagonal form T by an orthogonal similarity
    !> transformation: Q**T * A * Q = T.
    !>

Parameters
    UPLO

    !>          UPLO is CHARACTER*1
    !>          = 'U':  Upper triangle of A is stored;
    !>          = 'L':  Lower triangle of A is stored.
    !>

    N

    !>          N is INTEGER
    !>          The order of the matrix A.  N >= 0.
    !>

    AP

    !>          AP is REAL array, dimension (N*(N+1)/2)
    !>          On entry, the upper or lower triangle of the symmetric matrix
    !>          A, packed columnwise in a linear array.  The j-th column of A
    !>          is stored in the array AP as follows:
    !>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
    !>          if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
    !>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
    !>          of A are overwritten by the corresponding elements of the
    !>          tridiagonal matrix T, and the elements above the first
    !>          superdiagonal, with the array TAU, represent the orthogonal
    !>          matrix Q as a product of elementary reflectors; if UPLO
    !>          = 'L', the diagonal and first subdiagonal of A are over-
    !>          written by the corresponding elements of the tridiagonal
    !>          matrix T, and the elements below the first subdiagonal, with
    !>          the array TAU, represent the orthogonal matrix Q as a product
    !>          of elementary reflectors. See Further Details.
    !>

    D

    !>          D is REAL array, dimension (N)
    !>          The diagonal elements of the tridiagonal matrix T:
    !>          D(i) = A(i,i).
    !>

    E

    !>          E is REAL array, dimension (N-1)
    !>          The off-diagonal elements of the tridiagonal matrix T:
    !>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
    !>

    TAU

    !>          TAU is REAL array, dimension (N-1)
    !>          The scalar factors of the elementary reflectors (see Further
    !>          Details).
    !>

    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.

Further Details:

    !>
    !>  If UPLO = 'U', the matrix Q is represented as a product of elementary
    !>  reflectors
    !>
    !>     Q = H(n-1) . . . H(2) H(1).
    !>
    !>  Each H(i) has the form
    !>
    !>     H(i) = I - tau * v * v**T
    !>
    !>  where tau is a real scalar, and v is a real vector with
    !>  v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in AP,
    !>  overwriting A(1:i-1,i+1), and tau is stored in TAU(i).
    !>
    !>  If UPLO = 'L', the matrix Q is represented as a product of elementary
    !>  reflectors
    !>
    !>     Q = H(1) H(2) . . . H(n-1).
    !>
    !>  Each H(i) has the form
    !>
    !>     H(i) = I - tau * v * v**T
    !>
    !>  where tau is a real scalar, and v is a real vector with
    !>  v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in AP,
    !>  overwriting A(i+2:n,i), and tau is stored in TAU(i).
    !>

  subroutine zhptrd (character uplo, integer n, complex*16, dimension( * ) ap, double precision, dimension( * ) d, double precision, dimension( * ) e, complex*16, dimension( * ) tau, integer info)

ZHPTRD

Purpose:

    !>
    !> ZHPTRD reduces a complex Hermitian matrix A stored in packed form to
    !> real symmetric tridiagonal form T by a unitary similarity
    !> transformation: Q**H * A * Q = T.
    !>

Parameters
    UPLO

    !>          UPLO is CHARACTER*1
    !>          = 'U':  Upper triangle of A is stored;
    !>          = 'L':  Lower triangle of A is stored.
    !>

    N

    !>          N is INTEGER
    !>          The order of the matrix A.  N >= 0.
    !>

    AP

    !>          AP is COMPLEX*16 array, dimension (N*(N+1)/2)
    !>          On entry, the upper or lower triangle of the Hermitian matrix
    !>          A, packed columnwise in a linear array.  The j-th column of A
    !>          is stored in the array AP as follows:
    !>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
    !>          if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
    !>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
    !>          of A are overwritten by the corresponding elements of the
    !>          tridiagonal matrix T, and the elements above the first
    !>          superdiagonal, with the array TAU, represent the unitary
    !>          matrix Q as a product of elementary reflectors; if UPLO
    !>          = 'L', the diagonal and first subdiagonal of A are over-
    !>          written by the corresponding elements of the tridiagonal
    !>          matrix T, and the elements below the first subdiagonal, with
    !>          the array TAU, represent the unitary matrix Q as a product
    !>          of elementary reflectors. See Further Details.
    !>

    D

    !>          D is DOUBLE PRECISION array, dimension (N)
    !>          The diagonal elements of the tridiagonal matrix T:
    !>          D(i) = A(i,i).
    !>

    E

    !>          E is DOUBLE PRECISION array, dimension (N-1)
    !>          The off-diagonal elements of the tridiagonal matrix T:
    !>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
    !>

    TAU

    !>          TAU is COMPLEX*16 array, dimension (N-1)
    !>          The scalar factors of the elementary reflectors (see Further
    !>          Details).
    !>

    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.

Further Details:

    !>
    !>  If UPLO = 'U', the matrix Q is represented as a product of elementary
    !>  reflectors
    !>
    !>     Q = H(n-1) . . . H(2) H(1).
    !>
    !>  Each H(i) has the form
    !>
    !>     H(i) = I - tau * v * v**H
    !>
    !>  where tau is a complex scalar, and v is a complex vector with
    !>  v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in AP,
    !>  overwriting A(1:i-1,i+1), and tau is stored in TAU(i).
    !>
    !>  If UPLO = 'L', the matrix Q is represented as a product of elementary
    !>  reflectors
    !>
    !>     Q = H(1) H(2) . . . H(n-1).
    !>
    !>  Each H(i) has the form
    !>
    !>     H(i) = I - tau * v * v**H
    !>
    !>  where tau is a complex scalar, and v is a complex vector with
    !>  v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in AP,
    !>  overwriting A(i+2:n,i), and tau is stored in TAU(i).
    !>

Author

Generated automatically by Doxygen for LAPACK from the source code.