TESTING/EIG/dort01.f(3)
π TESTING/EIG/dort01.f
okay so bestie, buckle up, because we're diving into dort01 β a whole entire little testing subroutine that lives in the LAPACK manual (that's the manual name, yeah, we're fancy) and honestly? it's giving "quality control queen." she checks whether your matrix is actually orthogonal or if you're just saying that. π
β¨ SYNOPSIS β¨
πΈ Functions/Subroutines
subroutine dort01 (rowcol, m, n, u, ldu, work, lwork, resid)β literally the whole thing, this is her
π¦ Function/Subroutine Documentation π¦
π subroutine dort01
subroutine dort01 (character rowcol, integer m, integer n, double precision,
dimension( ldu, * ) u, integer ldu, double precision, dimension( * )
work, integer lwork, double precision resid)
DORT01 β say it with me: DORT-zero-one. iconic name, no notes. π
β Purpose
no cap, here's the whole vibe. DORT01 checks that the matrix U is orthogonal by computing the ratio:
RESID = norm( I - U*U' ) / ( n * EPS ), if ROWCOL = 'R',
or
RESID = norm( I - U'*U ) / ( m * EPS ), if ROWCOL = 'C'.
and alternatively β because sometimes life gives you a tiny workspace and you just gotta adapt, bestie β if there isn't sufficient workspace to form I - U*U' or I - U'*U, the ratio gets computed as:
RESID = abs( I - U*U' ) / ( n * EPS ), if ROWCOL = 'R',
or
RESID = abs( I - U'*U ) / ( m * EPS ), if ROWCOL = 'C'.
where EPS is the machine precision. π«Ά
also, important lore:ROWCOLis used only ifm = n. ifm > n,ROWCOLis assumed to be'C', and ifm < n,ROWCOLis assumed to be'R'. so like, she'll pick for you if you don't match. main character energy fr fr.
π Parameters
ROWCOLβ isCHARACTER, obviously π
Specifies whether the rows or columns of U should be checked for orthogonality. Used only if M = N.
= 'R': check for orthogonal rows ofU= 'C': check for orthogonal columns ofU
Mβ isINTEGER
The number of rows of the matrix U. (yes, m for rows, we don't make the rules)
Nβ isINTEGER
The number of columns of the matrix U. (and n for columns, slay)
Uβ isDOUBLE PRECISION array, dimension (LDU,N)
The orthogonal matrix U. she's the star of the show π U is checked for orthogonal columns if m > n or if m = n and ROWCOL = 'C'. U is checked for orthogonal rows if m < n or if m = n and ROWCOL = 'R'.
LDUβ isINTEGER
The leading dimension of the array U. constraint check: LDU >= max(1,M). don't test her on this, she will know π₯
WORKβ isDOUBLE PRECISION array, dimension (LWORK)
that's the scratch space, the little helper bestie, the emotional support array π§
LWORKβ isINTEGER
The length of the array WORK. for best performance, LWORK should be at least N*(N+1) if ROWCOL = 'C' or M*(M+1) if ROWCOL = 'R' β but the test will be done even if LWORK is 0. she's flexible like that, periodt. π
RESIDβ isDOUBLE PRECISION
the moment of truth, the final score, the vibe check result: RESID = norm( I - U * U' ) / ( n * EPS ), if ROWCOL = 'R', or RESID = norm( I - U' * U ) / ( m * EPS ), if ROWCOL = 'C'.
π Author
this masterpiece was brought to you by:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
collab of the century, honestly π
Definition at line 115 of file dort01.f. yes, line 115, she's got receipts. π
πΈ Author (again, but make it metadata)
Generated automatically by Doxygen for LAPACK from the source code. not a human author this time, just the automation doing its thing π
π cute sign-off: this page is from LAPACK, Version 3.12.0, and was auto-generated by Doxygen for LAPACK from the source code β so if you ever need to cite her, you know exactly where she came from, bestie. go forth and verify those orthogonal matrices, you absolute icon π β¨π
π¦ 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