TESTING/EIG/ccsdts.f(3) Library Functions Manual TESTING/EIG/ccsdts.f(3) NAME TESTING/EIG/ccsdts.f SYNOPSIS Functions/Subroutines subroutine ccsdts (m, p, q, x, xf, ldx, u1, ldu1, u2, ldu2, v1t, ldv1t, v2t, ldv2t, theta, iwork, work, lwork, rwork, result) CCSDTS Function/Subroutine Documentation subroutine ccsdts (integer m, integer p, integer q, complex, dimension( ldx, * ) x, complex, dimension( ldx, * ) xf, integer ldx, complex, dimension( ldu1, * ) u1, integer ldu1, complex, dimension( ldu2, * ) u2, integer ldu2, complex, dimension( ldv1t, * ) v1t, integer ldv1t, complex, dimension( ldv2t, * ) v2t, integer ldv2t, real, dimension( * ) theta, integer, dimension( * ) iwork, complex, dimension( lwork ) work, integer lwork, real, dimension( * ) rwork, real, dimension( 15 ) result) CCSDTS Purpose: CCSDTS tests CUNCSD, which, given an M-by-M partitioned unitary matrix X, Q M-Q X = [ X11 X12 ] P , [ X21 X22 ] M-P computes the CSD [ U1 ]**T * [ X11 X12 ] * [ V1 ] [ U2 ] [ X21 X22 ] [ V2 ] [ I 0 0 | 0 0 0 ] [ 0 C 0 | 0 -S 0 ] [ 0 0 0 | 0 0 -I ] = [---------------------] = [ D11 D12 ] . [ 0 0 0 | I 0 0 ] [ D21 D22 ] [ 0 S 0 | 0 C 0 ] [ 0 0 I | 0 0 0 ] and also SORCSD2BY1, which, given Q [ X11 ] P , [ X21 ] M-P computes the 2-by-1 CSD [ I 0 0 ] [ 0 C 0 ] [ 0 0 0 ] [ U1 ]**T * [ X11 ] * V1 = [----------] = [ D11 ] , [ U2 ] [ X21 ] [ 0 0 0 ] [ D21 ] [ 0 S 0 ] [ 0 0 I ] Parameters M M is INTEGER The number of rows of the matrix X. M >= 0. P P is INTEGER The number of rows of the matrix X11. P >= 0. Q Q is INTEGER The number of columns of the matrix X11. Q >= 0. X X is COMPLEX array, dimension (LDX,M) The M-by-M matrix X. XF XF is COMPLEX array, dimension (LDX,M) Details of the CSD of X, as returned by CUNCSD; see CUNCSD for further details. LDX LDX is INTEGER The leading dimension of the arrays X and XF. LDX >= max( 1,M ). U1 U1 is COMPLEX array, dimension(LDU1,P) The P-by-P unitary matrix U1. LDU1 LDU1 is INTEGER The leading dimension of the array U1. LDU >= max(1,P). U2 U2 is COMPLEX array, dimension(LDU2,M-P) The (M-P)-by-(M-P) unitary matrix U2. LDU2 LDU2 is INTEGER The leading dimension of the array U2. LDU >= max(1,M-P). V1T V1T is COMPLEX array, dimension(LDV1T,Q) The Q-by-Q unitary matrix V1T. LDV1T LDV1T is INTEGER The leading dimension of the array V1T. LDV1T >= max(1,Q). V2T V2T is COMPLEX array, dimension(LDV2T,M-Q) The (M-Q)-by-(M-Q) unitary matrix V2T. LDV2T LDV2T is INTEGER The leading dimension of the array V2T. LDV2T >= max(1,M-Q). THETA THETA is REAL array, dimension MIN(P,M-P,Q,M-Q) The CS values of X; the essentially diagonal matrices C and S are constructed from THETA; see subroutine CUNCSD for details. IWORK IWORK is INTEGER array, dimension (M) WORK WORK is COMPLEX array, dimension (LWORK) LWORK LWORK is INTEGER The dimension of the array WORK RWORK RWORK is REAL array RESULT RESULT is REAL array, dimension (15) The test ratios: First, the 2-by-2 CSD: RESULT(1) = norm( U1'*X11*V1 - D11 ) / ( MAX(1,P,Q)*EPS2 ) RESULT(2) = norm( U1'*X12*V2 - D12 ) / ( MAX(1,P,M-Q)*EPS2 ) RESULT(3) = norm( U2'*X21*V1 - D21 ) / ( MAX(1,M-P,Q)*EPS2 ) RESULT(4) = norm( U2'*X22*V2 - D22 ) / ( MAX(1,M-P,M-Q)*EPS2 ) RESULT(5) = norm( I - U1'*U1 ) / ( MAX(1,P)*ULP ) RESULT(6) = norm( I - U2'*U2 ) / ( MAX(1,M-P)*ULP ) RESULT(7) = norm( I - V1T'*V1T ) / ( MAX(1,Q)*ULP ) RESULT(8) = norm( I - V2T'*V2T ) / ( MAX(1,M-Q)*ULP ) RESULT(9) = 0 if THETA is in increasing order and all angles are in [0,pi/2]; = ULPINV otherwise. Then, the 2-by-1 CSD: RESULT(10) = norm( U1'*X11*V1 - D11 ) / ( MAX(1,P,Q)*EPS2 ) RESULT(11) = norm( U2'*X21*V1 - D21 ) / ( MAX(1,M-P,Q)*EPS2 ) RESULT(12) = norm( I - U1'*U1 ) / ( MAX(1,P)*ULP ) RESULT(13) = norm( I - U2'*U2 ) / ( MAX(1,M-P)*ULP ) RESULT(14) = norm( I - V1T'*V1T ) / ( MAX(1,Q)*ULP ) RESULT(15) = 0 if THETA is in increasing order and all angles are in [0,pi/2]; = ULPINV otherwise. ( EPS2 = MAX( norm( I - X'*X ) / M, ULP ). ) Author Univ. of Tennessee Univ. of California Berkeley Univ. of Colorado Denver NAG Ltd. Definition at line 226 of file ccsdts.f. Author Generated automatically by Doxygen for LAPACK from the source code. LAPACK Version 3.12.0 TESTING/EIG/ccsdts.f(3)