TESTING/EIG/ccsdts.f(3)
π¦ TESTING/EIG/ccsdts.f π¦
okay bestie, this is the Library Functions Manual page for TESTING/EIG/ccsdts.f, and the function CCSDTS is absolutely the main character. She's a test routine, she's got fifteen ratios, and she's not afraid to use them. β¨
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
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
okay so CCSDTS tests CUNCSD. CUNCSD, given an M-by-M partitioned unitary matrix X that looks like this:
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 it also tests 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βINTEGER. The number of rows of the matrixX.M >= 0.PβINTEGER. The number of rows of the matrixX11.P >= 0.QβINTEGER. The number of columns of the matrixX11.Q >= 0.XβCOMPLEX array, dimension (LDX,M). The M-by-M matrixX.XFβCOMPLEX array, dimension (LDX,M). Details of the CSD ofX, as returned byCUNCSD; seeCUNCSDfor further details.LDXβINTEGER. The leading dimension of the arraysXandXF.LDX >= max( 1,M ).U1βCOMPLEX array, dimension(LDU1,P). The P-by-P unitary matrixU1.LDU1βINTEGER. The leading dimension of the arrayU1.LDU >= max(1,P).U2βCOMPLEX array, dimension(LDU2,M-P). The (M-P)-by-(M-P) unitary matrixU2.LDU2βINTEGER. The leading dimension of the arrayU2.LDU >= max(1,M-P).V1TβCOMPLEX array, dimension(LDV1T,Q). The Q-by-Q unitary matrixV1T.LDV1TβINTEGER. The leading dimension of the arrayV1T.LDV1T >= max(1,Q).V2TβCOMPLEX array, dimension(LDV2T,M-Q). The (M-Q)-by-(M-Q) unitary matrixV2T.LDV2TβINTEGER. The leading dimension of the arrayV2T.LDV2T >= max(1,M-Q).THETAβREAL array, dimension MIN(P,M-P,Q,M-Q). The CS values ofX; the essentially diagonal matricesCandSare constructed fromTHETA; see subroutineCUNCSDfor details.IWORKβINTEGER array, dimension (M).WORKβCOMPLEX array, dimension (LWORK).LWORKβINTEGER. The dimension of the arrayWORK.RWORKβREAL array.RESULTβREAL array, dimension (15). The test ratios.
The RESULT receipts
First up, 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.
And the supporting character:
( 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.
mwah π that's the whole page, bestie. Source/version tea: LAPACK Version 3.12.0, and the page is TESTING/EIG/ccsdts.f(3). π«Άβ¨
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms