CLATM4(3)

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

CLATM4(3) πŸ’…βœ¨

okay so bestie, this one lives in the Library Functions Manual section (the (3) at the end of the name is literally the whole vibe check for "this is a library function"), and it's a Fortran subroutine out of LAPACK. Buckle up πŸŽ€


🌸 NAME 🌸

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

like, that's the literal file, no cap. it's a Fortran source file, the whole page is about it 🫢


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine CLATM4 (itype, n, nz1, nz2, rsign, amagn, rcond, triang,
    idist, iseed, a, lda)

CLATM4


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine CLATM4 (integer itype, integer n, integer nz1, integer nz2,
    logical rsign, real amagn, real rcond, real triang, integer idist,
    integer, dimension( 4 ) iseed, complex, dimension( lda, * ) a, integer
    lda)

CLATM4

πŸ’– Purpose:

CLATM4 generates basic square matrices, which may later be multiplied by others in order to produce test matrices. It is intended mainly to be used to test the generalized eigenvalue routines.
It first generates the diagonal and (possibly) subdiagonal, according to the value of ITYPE, NZ1, NZ2, RSIGN, AMAGN, and RCOND. It then fills in the upper triangle with random numbers, if TRIANG is non-zero.

so basically: it builds you a starter matrix, then (maybe) sprinkles random numbers all over the upper triangle. main character energy for test suites πŸ”₯

πŸ‘‘ Parameters

  • ITYPE β€” ITYPE is INTEGER. This is the type of matrix you want on the diagonal and sub-diagonal. And listen, the negative-number thing is kinda iconic:

If ITYPE < 0, then type abs(ITYPE) is generated and then swapped end for end (A(I,J) := A'(N-J,N-I).). See also the description of AMAGN and RSIGN πŸ’«

Special types, bestie, memorize these:

  • = 0: the zero matrix.
  • = 1: the identity.
  • = 2: a transposed Jordan block.
  • = 3: If N is odd, then a k+1 x k+1 transposed Jordan block followed by a k x k identity block, where k=(N-1)/2. If N is even, then k=(N-2)/2, and a zero diagonal entry is tacked onto the end.

Diagonal types β€” the diagonal consists of NZ1 zeros, then k=N-NZ1-NZ2 nonzeros. The subdiagonal is zero. ITYPE specifies the nonzero diagonal entries like this:

  • = 4: 1, ..., k
  • = 5: 1, RCOND, ..., RCOND
  • = 6: 1, ..., 1, RCOND
  • = 7: 1, a, a^2, ..., a^(k-1)=RCOND
  • = 8: 1, 1-d, 1-2*d, ..., 1-(k-1)*d=RCOND
  • = 9: random numbers chosen from (RCOND,1)
  • = 10: random numbers with distribution IDIST (see CLARND.)
  • N β€” N is INTEGER. The order of the matrix. that's it, that's the whole thing πŸ’…
  • NZ1 β€” NZ1 is INTEGER. If abs(ITYPE) > 3, then the first NZ1 diagonal entries will be zero.
  • NZ2 β€” NZ2 is INTEGER. If abs(ITYPE) > 3, then the last NZ2 diagonal entries will be zero.
  • RSIGN β€” RSIGN is LOGICAL. Two moods:
    • = .TRUE.: The diagonal and subdiagonal entries will be multiplied by random numbers of magnitude 1.
    • = .FALSE.: The diagonal and subdiagonal entries will be left as they are (usually non-negative real.)
  • AMAGN β€” AMAGN is REAL. The diagonal and subdiagonal entries will be multiplied by AMAGN. it's giving "scale everything" 🌈
  • RCOND β€” RCOND is REAL. If abs(ITYPE) > 4, then the smallest diagonal entry will be RCOND. RCOND must be between 0 and 1. ⭐
  • TRIANG β€” TRIANG is REAL. The entries above the diagonal will be random numbers with magnitude bounded by TRIANG (i.e., random numbers multiplied by TRIANG).
  • IDIST β€” IDIST is INTEGER. On entry, DIST specifies the type of distribution to be used to generate a random matrix . (yes the original says DIST, we're all just vibing with it πŸ™ˆ)
    • = 1: real and imaginary parts each UNIFORM( 0, 1 )
    • = 2: real and imaginary parts each UNIFORM( -1, 1 )
    • = 3: real and imaginary parts each NORMAL( 0, 1 )
    • = 4: complex number uniform in DISK( 0, 1 )
  • ISEED β€” ISEED is INTEGER array, dimension (4). On entry ISEED specifies the seed of the random number generator. The values of ISEED are changed on exit, and can be used in the next call to CLATM4 to continue the same random number sequence.
⚠️ Note: ISEED(4) should be odd, for the random number generator used at present. don't skip this, bestie, the RNG is picky πŸ’€
  • A β€” A is COMPLEX array, dimension (LDA, N). Array to be computed. the actual output, the main event ✨
  • LDA β€” LDA is INTEGER. Leading dimension of A. Must be at least 1 and at least N. πŸ”₯

🧚 Author

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

Definition at line 169 of file clatm4.f.


πŸ“ Author πŸ“

Generated automatically by Doxygen for LAPACK from the source code.


and that's the page, babe 🫢 this whole thing was generated automatically by Doxygen for LAPACK straight from the source code β€” LAPACK, Version 3.12.0, and the file was /home/abui...IG/clatm4.f(3). slay, go build some test matrices πŸ’–

πŸ“¦ where this page comes from