laexc(3)

πŸ’… NAME πŸ’…

okay bestie, this is laexc(3) from the Library Functions Manual, and it's literally the β€œreorder Schur form” page. Like, laexc = laexc: reorder Schur form. That's the whole vibe. ✨


✨ SYNOPSIS ✨

🌈 Functions 🌈

  • subroutine dlaexc (wantq, n, t, ldt, q, ldq, j1, n1, n2, work, info) β€” DLAEXC swaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form, by an orthogonal similarity transformation.
  • subroutine slaexc (wantq, n, t, ldt, q, ldq, j1, n1, n2, work, info) β€” SLAEXC swaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form, by an orthogonal similarity transformation.

🌸 Detailed Description 🌸

This is the auto-docs zone, bestie β€” the two subroutine glow-ups below are the main characters. 🫢


πŸ”₯ Function Documentation πŸ”₯

πŸ¦‹ subroutine dlaexc πŸ¦‹

subroutine dlaexc (logical wantq, integer n, double precision, dimension(
       ldt, * ) t, integer ldt, double precision, dimension( ldq, * ) q,
       integer ldq, integer j1, integer n1, integer n2, double precision,
       dimension( * ) work, integer info)

DLAEXC swaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form, by an orthogonal similarity transformation.

πŸ’– Purpose πŸ’–

okay so the actual mission: DLAEXC swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in an upper quasi-triangular matrix T by an orthogonal similarity transformation.

T must be in Schur canonical form, that is, block upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each 2-by-2 diagonal block has its diagonal elements equal and its off-diagonal elements of opposite sign.

That's the canon, bestie. πŸ¦‹

πŸŽ€ Parameters πŸŽ€

  • WANTQ β€” WANTQ is LOGICAL; = .TRUE.: accumulate the transformation in the matrix Q; = .FALSE.: do not accumulate the transformation.
  • N β€” N is INTEGER; the order of the matrix T. N >= 0.
  • T β€” T is DOUBLE PRECISION array, dimension (LDT,N); on entry, the upper quasi-triangular matrix T, in Schur canonical form; on exit, the updated matrix T, again in Schur canonical form.
  • LDT β€” LDT is INTEGER; the leading dimension of the array T. LDT >= max(1,N).
  • Q β€” Q is DOUBLE PRECISION array, dimension (LDQ,N); on entry, if WANTQ is .TRUE., the orthogonal matrix Q; on exit, if WANTQ is .TRUE., the updated matrix Q; if WANTQ is .FALSE., Q is not referenced.
  • LDQ β€” LDQ is INTEGER; the leading dimension of the array Q. LDQ >= 1; and if WANTQ is .TRUE., LDQ >= N.
  • J1 β€” J1 is INTEGER; the index of the first row of the first block T11.
  • N1 β€” N1 is INTEGER; the order of the first block T11. N1 = 0, 1 or 2.
  • N2 β€” N2 is INTEGER; the order of the second block T22. N2 = 0, 1 or 2.
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (N).
  • INFO β€” INFO is INTEGER; = 0: successful exit; = 1: the transformed matrix T would be too far from Schur form; the blocks are not swapped and T and Q are unchanged.

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

⭐ Definition at line ⭐

Definition at line 136 of file dlaexc.f.


πŸ¦‹ subroutine slaexc πŸ¦‹

subroutine slaexc (logical wantq, integer n, real, dimension( ldt, * ) t,
       integer ldt, real, dimension( ldq, * ) q, integer ldq, integer j1,
       integer n1, integer n2, real, dimension( * ) work, integer info)

SLAEXC swaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form, by an orthogonal similarity transformation.

πŸ’– Purpose πŸ’–

same energy, different precision: SLAEXC swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in an upper quasi-triangular matrix T by an orthogonal similarity transformation. πŸ’œ

T must be in Schur canonical form, that is, block upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each 2-by-2 diagonal block has its diagonal elements equal and its off-diagonal elements of opposite sign.

πŸŽ€ Parameters πŸŽ€

  • WANTQ β€” WANTQ is LOGICAL; = .TRUE.: accumulate the transformation in the matrix Q; = .FALSE.: do not accumulate the transformation.
  • N β€” N is INTEGER; the order of the matrix T. N >= 0.
  • T β€” T is REAL array, dimension (LDT,N); on entry, the upper quasi-triangular matrix T, in Schur canonical form; on exit, the updated matrix T, again in Schur canonical form.
  • LDT β€” LDT is INTEGER; the leading dimension of the array T. LDT >= max(1,N).
  • Q β€” Q is REAL array, dimension (LDQ,N); on entry, if WANTQ is .TRUE., the orthogonal matrix Q; on exit, if WANTQ is .TRUE., the updated matrix Q; if WANTQ is .FALSE., Q is not referenced.
  • LDQ β€” LDQ is INTEGER; the leading dimension of the array Q. LDQ >= 1; and if WANTQ is .TRUE., LDQ >= N.
  • J1 β€” J1 is INTEGER; the index of the first row of the first block T11.
  • N1 β€” N1 is INTEGER; the order of the first block T11. N1 = 0, 1 or 2.
  • N2 β€” N2 is INTEGER; the order of the second block T22. N2 = 0, 1 or 2.
  • WORK β€” WORK is REAL array, dimension (N).
  • INFO β€” INFO is INTEGER; = 0: successful exit; = 1: the transformed matrix T would be too far from Schur form; the blocks are not swapped and T and Q are unchanged.

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

⭐ Definition at line ⭐

Definition at line 136 of file slaexc.f.


πŸ’œ Author πŸ’œ

Generated automatically by Doxygen for LAPACK from the source code.


okay bestie, that's the whole laexc(3) page 🫢✨ β€” the footer is giving LAPACK Version 3.12.0 and laexc(3), and honestly? iconic. periodt. πŸ’…πŸŒˆ

πŸ“¦ where this page comes from