Purpose
To reduce a 2-by-2 general, formal matrix product A of length K, A_K^s(K) * A_K-1^s(K-1) * ... * A_1^s(1), to the periodic Hessenberg-triangular form using a K-periodic sequence of elementary reflectors (Householder matrices). The matrices A_k, k = 1, ..., K, are stored in the N-by-N-by-K array A starting in the R-th row and column, and N can be 3 or 4. Each elementary reflector H_k is represented as H_k = I - tau_k * v_k * v_k', (1) where I is the 2-by-2 identity, tau_k is a real scalar, and v_k is a vector of length 2, k = 1,...,K, and it is constructed such that the following holds for k = 1,...,K: H_{k+1} * A_k * H_k = T_k, if s(k) = 1, (2) H_k * A_k * H_{k+1} = T_k, if s(k) = -1, with H_{K+1} = H_1 and all T_k upper triangular except for T_{khess} which is full. Clearly, T_K^s(K) *...* T_1^s(1) = H_1 * A_K^s(K) *...* A_1^s(1) * H_1. The reflectors are suitably applied to the whole, extended N-by-N matrices Ae_k, not only to the submatrices A_k, k = 1, ..., K.Specification
SUBROUTINE MB03KC( K, KHESS, N, R, S, A, LDA, V, TAU ) C .. Scalar Arguments .. INTEGER K, KHESS, LDA, N, R C .. Array Arguments .. INTEGER S( * ) DOUBLE PRECISION A( * ), TAU( * ), V( * )Arguments
Input/Output Parameters
K (input) INTEGER The number of matrices in the sequence A_k. K >= 2. KHESS (input) INTEGER The index for which the returned matrix A_khess should be in the Hessenberg form on output. 1 <= KHESS <= K. N (input) INTEGER The order of the extended matrices. N = 3 or N = 4. R (input) INTEGER The starting row and column index for the 2-by-2 submatrices. R = 1, or R = N-1. S (input) INTEGER array, dimension (K) The leading K elements of this array must contain the signatures of the factors. Each entry in S must be either 1 or -1; the value S(k) = -1 corresponds to using the inverse of the factor A_k. A (input/output) DOUBLE PRECISION array, dimension (*) On entry, this array must contain at position IXA(k) = (k-1)*N*LDA+1 the N-by-N matrix Ae_k stored with leading dimension LDA. On exit, this array contains at position IXA(k) the N-by-N matrix Te_k stored with leading dimension LDA. LDA INTEGER Leading dimension of the matrices Ae_k and Te_k in the one-dimensional array A. LDA >= N. V (output) DOUBLE PRECISION array, dimension (2*K) On exit, this array contains the K vectors v_k, k = 1,...,K, defining the elementary reflectors H_k as in (1). The k-th reflector is stored in V(2*k-1:2*k). TAU (output) DOUBLE PRECISION array, dimension (K) On exit, this array contains the K values of tau_k, k = 1,...,K, defining the elementary reflectors H_k as in (1).Method
A K-periodic sequence of elementary reflectors (Householder matrices) is used. The computations start for k = khess with the left reflector in (1), which is the identity matrix.Numerical Aspects
The implemented method is numerically backward stable.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None