TESTING/EIG/dgsvts3.f(3)
π TESTING/EIG/dgsvts3.f(3) π
okay so bestie, this page comes from the Library Functions Manual, and itβs all about TESTING/EIG/dgsvts3.f. Itβs the test-routine page for the GSVD vibe check, and we are keeping every parameter, constraint, formula, and author credit exactly intact. No cap. π
β¨ NAME β¨
TESTING/EIG/dgsvts3.f
π¦ SYNOPSIS π¦
π§ Functions/Subroutines π§
subroutine dgsvts3 (...)β the full signature is right here, and then it saysDGSVTS3. Iconic, honestly.
subroutine dgsvts3 (integer m, integer p, integer n, double precision,
dimension( lda, * ) a, double precision, dimension( lda, * ) af, integer
lda, double precision, dimension( ldb, * ) b, double precision,
dimension( ldb, * ) bf, integer ldb, double precision, dimension( ldu, *
) u, integer ldu, double precision, dimension( ldv, * ) v, integer ldv,
double precision, dimension( ldq, * ) q, integer ldq, double precision,
dimension( * ) alpha, double precision, dimension( * ) beta, double
precision, dimension( ldr, * ) r, integer ldr, integer, dimension( * )
iwork, double precision, dimension( lwork ) work, integer lwork, double
precision, dimension( * ) rwork, double precision, dimension( 6 )
result)
DGSVTS3
π Function/Subroutine Documentation π
okay so hereβs the signature again, because this page is thorough like that, plus the DGSVTS3 label. We love consistency. π«Ά
subroutine dgsvts3 (integer m, integer p, integer n, double precision,
dimension( lda, * ) a, double precision, dimension( lda, * ) af, integer
lda, double precision, dimension( ldb, * ) b, double precision,
dimension( ldb, * ) bf, integer ldb, double precision, dimension( ldu, *
) u, integer ldu, double precision, dimension( ldv, * ) v, integer ldv,
double precision, dimension( ldq, * ) q, integer ldq, double precision,
dimension( * ) alpha, double precision, dimension( * ) beta, double
precision, dimension( ldr, * ) r, integer ldr, integer, dimension( * )
iwork, double precision, dimension( lwork ) work, integer lwork, double
precision, dimension( * ) rwork, double precision, dimension( 6 )
result)
DGSVTS3
π Purpose π
DGSVTS3 tests DGGSVD3, which computes the GSVD of an M-by-N matrix A and a P-by-N matrix B:
U'*A*Q = D1*R and V'*B*Q = D2*R.
πΈ Parameters πΈ
MβMisINTEGER. The number of rows of the matrixA.M >= 0.PβPisINTEGER. The number of rows of the matrixB.P >= 0.NβNisINTEGER. The number of columns of the matricesAandB.N >= 0.AβAisDOUBLE PRECISIONarray, dimension(LDA,M). TheM-by-NmatrixA.AFβAFisDOUBLE PRECISIONarray, dimension(LDA,N). Details of the GSVD ofAandB, as returned byDGGSVD3; seeDGGSVD3for further details.LDAβLDAisINTEGER. The leading dimension of the arraysAandAF.LDA >= max( 1,M ).BβBisDOUBLE PRECISIONarray, dimension(LDB,P). On entry, theP-by-NmatrixB.BFβBFisDOUBLE PRECISIONarray, dimension(LDB,N). Details of the GSVD ofAandB, as returned byDGGSVD3; seeDGGSVD3for further details.LDBβLDBisINTEGER. The leading dimension of the arraysBandBF.LDB >= max(1,P).UβUisDOUBLE PRECISIONarray, dimension(LDU,M). TheMbyMorthogonal matrixU.LDUβLDUisINTEGER. The leading dimension of the arrayU.LDU >= max(1,M).VβVisDOUBLE PRECISIONarray, dimension(LDV,M). ThePbyPorthogonal matrixV.LDVβLDVisINTEGER. The leading dimension of the arrayV.LDV >= max(1,P).QβQisDOUBLE PRECISIONarray, dimension(LDQ,N). TheNbyNorthogonal matrixQ.LDQβLDQisINTEGER. The leading dimension of the arrayQ.LDQ >= max(1,N).ALPHAβALPHAisDOUBLE PRECISIONarray, dimension(N).BETAβBETAisDOUBLE PRECISIONarray, dimension(N). The generalized singular value pairs ofAandB; the ``diagonal'' matricesD1andD2are constructed fromALPHAandBETA, see subroutineDGGSVD3for details.RβRisDOUBLE PRECISIONarray, dimension(LDQ,N). The upper triangular matrixR.LDRβLDRisINTEGER. The leading dimension of the arrayR.LDR >= max(1,N).IWORKβIWORKisINTEGERarray, dimension(N).WORKβWORKisDOUBLE PRECISIONarray, dimension(LWORK).LWORKβLWORKisINTEGER. The dimension of the arrayWORK,LWORK >= max(M,P,N)*max(M,P,N).RWORKβRWORKisDOUBLE PRECISIONarray, dimension(max(M,P,N)).RESULTβRESULTisDOUBLE PRECISIONarray, dimension(6). The test ratios:
RESULT(1) = norm( U'*A*Q - D1*R ) / ( MAX(M,N)*norm(A)*ULP)
RESULT(2) = norm( V'*B*Q - D2*R ) / ( MAX(P,N)*norm(B)*ULP)
RESULT(3) = norm( I - U'*U ) / ( M*ULP )
RESULT(4) = norm( I - V'*V ) / ( P*ULP )
RESULT(5) = norm( I - Q'*Q ) / ( N*ULP )
RESULT(6) = 0 if ALPHA is in decreasing order;
= ULPINV otherwise.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 207 of file dgsvts3.f.
π«Ά Author π«Ά
Generated automatically by Doxygen for LAPACK from the source code.
okay thatβs the whole page, bestie! Source/version: LAPACK Version 3.12.0, and the footer also has TESTING/EIG/dgsvts3.f(3). Date on the footer? Not listed, so weβre not making one up. Bye πβ¨
π¦ 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