This paper presents a new algorithm for accurate floating-point computation
of the singular value decomposition (SVD) of the product A = (BSC)-S-tau,
where B is an element of R-pxm, C is an element of R-qxn, S is an element o
f R-pxq, and p less than or equal to m, q less than or equal to n. The new
algorithm uses diagonal scalings, the QR factorization with complete pivoti
ng, the QR factorization with column pivoting, and matrix multiplication to
replace A by A' = B'(tau) S' C', where A and A have the same singular valu
es and the matrix A is computed explicitly. The singular values of A are co
mputed using the Jacobi SVD algorithm. It is shown that the accuracy of the
new algorithm is determined by (i) the accuracy of the QR factorizations o
f B-tau and C; ( ii) the accuracy of the LU factorization with complete piv
oting of S; and( iii) the accuracy of the computation of the SVD of a matri
x A' with moderate min(D=diag) k(2) (A'D). Theoretical analysis and numeric
al evidence show that, in the case of rank(B) = rank(C) = p and full rank S
, the accuracy of the new algorithm is unaffected by replacing B, S, C with
, respectively, D1B, D2S D-3, D4C, where D-i, i = 1,..., 4, are arbitrary d
iagonal matrices. As an application, the paper proposes new accurate algori
thms for computing the (H, K)-SVD and (H-1, K)-SVD of S.