SRC/zlascl.f(3)

πŸ’… SRC/zlascl.f

okay so this is a page from the LAPACK manual β€” Library Functions Manual energy β€” and honestly? it's a little icon. let's get into it 🫢


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine zlascl (type, kl, ku, cfrom, cto, m, n, a, lda, info)

ZLASCL multiplies a general rectangular matrix by a real scalar defined as cto/cfrom. that's the whole vibe. πŸ’«


🌸 Function/Subroutine Documentation 🌸

subroutine zlascl (character type, integer kl, integer ku, double precision
    cfrom, double precision cto, integer m, integer n, complex*16,
    dimension( lda, * ) a, integer lda, integer info)

ZLASCL multiplies a general rectangular matrix by a real scalar defined as cto/cfrom. bestie it literally says it twice, they really wanted us to know 😭

πŸŽ€ Purpose πŸŽ€

ZLASCL multiplies the M by N complex matrix A by the real scalar CTO/CFROM. This is done without over/underflow as long as the final result CTO*A(I,J)/CFROM does not over/underflow. TYPE specifies that A may be full, upper triangular, lower triangular, upper Hessenberg, or banded.

so the whole point is: do the scaling safely, no nasty overflow/underflow situations, no cap. ✨ and TYPE is the main character that tells it what kind of storage A is rocking. πŸ’…


πŸ‘‘ Parameters πŸ‘‘

  • TYPE β€” TYPE is CHARACTER*1. it indices the storage type of the input matrix (yes, "indices", that's what it says, we love a quirky verb πŸ¦‹):
    • = 'G': A is a full matrix.
    • = 'L': A is a lower triangular matrix.
    • = 'U': A is an upper triangular matrix.
    • = 'H': A is an upper Hessenberg matrix.
    • = 'B': A is a symmetric band matrix with lower bandwidth KL and upper bandwidth KU and with the only the lower half stored.
    • = 'Q': A is a symmetric band matrix with lower bandwidth KL and upper bandwidth KU and with the only the upper half stored.
    • = 'Z': A is a band matrix with lower bandwidth KL and upper bandwidth KU. See ZGBTRF for storage details.
  • KL β€” KL is INTEGER. the lower bandwidth of A. referenced only if TYPE = 'B', 'Q' or 'Z'. otherwise she's just sitting there, unbothered. πŸ’€
  • KU β€” KU is INTEGER. the upper bandwidth of A. also referenced only if TYPE = 'B', 'Q' or 'Z'. twins fr fr. 🫢
  • CFROM β€” CFROM is DOUBLE PRECISION.
  • CTO β€” CTO is DOUBLE PRECISION. the matrix A is multiplied by CTO/CFROM. A(I,J) is computed without over/underflow if the final result CTO*A(I,J)/CFROM can be represented without over/underflow. and ⚠️ CFROM must be nonzero β€” like, genuinely, don't do that. 🚨
  • M β€” M is INTEGER. the number of rows of the matrix A. M >= 0.
  • N β€” N is INTEGER. the number of columns of the matrix A. N >= 0.
  • A β€” A is COMPLEX*16 array, dimension (LDA,N). the matrix to be multiplied by CTO/CFROM. see TYPE for the storage type. she's the star of the show, obviously. ⭐
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. the rules, gorgeous:
    • If TYPE = 'G', 'L', 'U', 'H', LDA >= max(1,M);
    • TYPE = 'B', LDA >= KL+1;
    • TYPE = 'Q', LDA >= KU+1;
    • TYPE = 'Z', LDA >= 2*KL+KU+1.
  • INFO β€” INFO is INTEGER. the vibe check at the end:
    • 0 β€” successful exit πŸŽ‰
    • <0 β€” if INFO = -i, the i-th argument had an illegal value. πŸ™ˆ

πŸ¦‹ Author πŸ¦‹

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

Definition at line 142 of file zlascl.f.


πŸ’– Author πŸ’–

Generated automatically by Doxygen for LAPACK from the source code. she was built by the machines, no notes. πŸ€–βœ¨


aaaand that's the whole page, bestie β€” literally every line accounted for, ate and left no crumbs. πŸ’…

LAPACK β€” Version 3.12.0 β€” SRC/zlascl.f(3) πŸŽ€ mwah, go scale some matrices responsibly πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from