DSYL01(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… dsyl01.f(3) β€” Library Functions Manual πŸŽ€

okay bestie, buckle up β€” this is the manual page for /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/dsyl01.f, straight out of the Library Functions Manual and served fresh from the LAPACK kitchen. it's a Fortran test routine, it's a little unhinged, and honestly? iconic. πŸ¦‹


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/dsyl01.f

like yes, that IS the whole name. she's giving "full government name" energy and we respect it πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine DSYL01 (thresh, nfail, rmax, ninfo, knt)

DSYL01 β€” that's her. that's the whole vibe. 🫢


πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

subroutine DSYL01 (double precision thresh, integer, dimension( 3 ) nfail,
    double precision, dimension( 2 ) rmax, integer, dimension( 2 ) ninfo,
    integer knt)

DSYL01 (yes, again, she's that girl)

⭐ Purpose:

!>
!> DSYL01 tests DTRSYL and DTRSYL3, routines for solving the Sylvester matrix
!> equation
!>
!>    op(A)*X + ISGN*X*op(B) = scale*C,
!>
!> A and B are assumed to be in Schur canonical form, op() represents an
!> optional transpose, and ISGN can be -1 or +1.  Scale is an output
!> less than or equal to 1, chosen to avoid overflow in X.
!>
!> The test code verifies that the following residual does not exceed
!> the provided threshold:
!>
!>    norm(op(A)*X + ISGN*X*op(B) - scale*C) /
!>        (EPS*max(norm(A),norm(B))*norm(X))
!>
!> This routine complements DGET35 by testing with larger,
!> random matrices, of which some require rescaling of X to avoid overflow.
!>
!>

so real talk πŸ’€ β€” DSYL01 is the vibe checker for DTRSYL and DTRSYL3, the routines that solve the Sylvester matrix equation up there. A and B are assumed to already be in Schur canonical form (no cap, that's just the requirement), op() means "maybe transposed, maybe not," and ISGN can be -1 or +1. Scale is an output that's less than or equal to 1, picked specifically so X doesn't overflow β€” she's doing it for the plot, but she's also doing it for safety 🧚

the test code then checks that this residual stays under the threshold you handed her:

norm(op(A)*X + ISGN*X*op(B) - scale*C) /
    (EPS*max(norm(A),norm(B))*norm(X))

and she's the upgrade arc to DGET35: she tests with larger, random matrices, and some of those literally need X rescaled so it doesn't overflow. main character test energy. πŸ”₯


πŸŽ€ Parameters πŸŽ€

  • THRESH β€” THRESH is DOUBLE PRECISION. a test will count as (and yes, the source really does just drop a word there, we love a typo moment 😭) if the residual, computed as described above, exceeds THRESH.
  • NFAIL β€” NFAIL is INTEGER array, dimension (3), and she keeps receipts three ways:
    • NFAIL(1) = No. of times residual DTRSYL exceeds threshold THRESH
    • NFAIL(2) = No. of times residual DTRSYL3 exceeds threshold THRESH
    • NFAIL(3) = No. of times DTRSYL3 and DTRSYL deviate
  • RMAX β€” RMAX is DOUBLE PRECISION, dimension (2), i.e. the personal bests (worst-case division):
    • RMAX(1) = Value of the largest test ratio of DTRSYL
    • RMAX(2) = Value of the largest test ratio of DTRSYL3
  • NINFO β€” NINFO is INTEGER array, dimension (2), the "she said what we expected her to say" counter:
    • NINFO(1) = No. of times DTRSYL returns an expected INFO
    • NINFO(2) = No. of times DTRSYL3 returns an expected INFO
  • KNT β€” KNT is INTEGER, and it's just the grand total number of examples tested. the group-chat headcount, if you will πŸ’–
fr fr β€” Definition at line 88 of file dsyl01.f. don't lose that, it's her address 🏑

🌈 Author 🌈

Generated automatically by Doxygen for LAPACK from the source code. (no human author to stan, the robots did this one themselves πŸ€–βœ¨)


πŸ’œ a lil sign-off πŸ’œ

this page is LAPACK, Version 3.12.0, and the header/footer stamp on it reads /home/abui...IG/dsyl01.f(3) (yes, truncated with the ..., she's mysterious like that πŸ™ˆ). bye bestie, go test some Sylvester equations, slay, periodt. πŸ“πŸ’…

πŸ“¦ where this page comes from