lar1v(3)

πŸŽ€ NAME πŸŽ€

lar1v β€” okay bestie, here's the whole vibe: it's a step in larrv, hence stemr & stegr. That's the name section, short and iconic. πŸ’…βœ¨


✨ SYNOPSIS ✨

🌸 Functions 🌸

  • clar1v β€” CLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - Ξ»I. 🫢
subroutine clar1v (n, b1, bn, lambda, d, l, ld, lld, pivmin, gaptol, z,
    wantnc, negcnt, ztz, mingma, r, isuppz, nrminv, resid, rqcorr, work)
  • dlar1v β€” DLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - Ξ»I. πŸ’–
subroutine dlar1v (n, b1, bn, lambda, d, l, ld, lld, pivmin, gaptol, z,
    wantnc, negcnt, ztz, mingma, r, isuppz, nrminv, resid, rqcorr, work)
  • slar1v β€” SLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - Ξ»I. 🌈
subroutine slar1v (n, b1, bn, lambda, d, l, ld, lld, pivmin, gaptol, z,
    wantnc, negcnt, ztz, mingma, r, isuppz, nrminv, resid, rqcorr, work)
  • zlar1v β€” ZLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - Ξ»I. πŸ‘‘
subroutine zlar1v (n, b1, bn, lambda, d, l, ld, lld, pivmin, gaptol, z,
    wantnc, negcnt, ztz, mingma, r, isuppz, nrminv, resid, rqcorr, work)

πŸ’« Detailed Description πŸ’«

The source page keeps this bit super chill: no extra prose before the function docs, just the section heading and then we're moving. No cap. ✨


πŸ“– Function Documentation πŸ“–

🌸 subroutine clar1v 🌸

subroutine clar1v (integer n, integer b1, integer bn, real lambda, real,
dimension( * ) d, real, dimension( * ) l, real, dimension( * ) ld, real,
dimension( * ) lld, real pivmin, real gaptol, complex, dimension( * ) z,
logical wantnc, integer negcnt, real ztz, real mingma, integer r,
integer, dimension( * ) isuppz, real nrminv, real resid, real rqcorr,
real, dimension( * ) work)

CLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - Ξ»I. πŸ’…

Purpose πŸ’«

CLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows B1 through BN of the tridiagonal matrix L D L**T - sigma I. When sigma is close to an eigenvalue, the computed vector is an accurate eigenvector. Usually, r corresponds to the index where the eigenvector is largest in magnitude. 🫢

The following steps accomplish this computation:

  1. Stationary qd transform: L D L**T - sigma I = L(+) D(+) L(+)**T
  2. Progressive qd transform: L D L**T - sigma I = U(-) D(-) U(-)**T
  3. Computation of the diagonal elements of the inverse of L D L**T - sigma I by combining the above transforms, and choosing r as the index where the diagonal of the inverse is (one of the) largest in magnitude.
  4. Computation of the (scaled) r-th column of the inverse using the twisted factorization obtained by combining the top part of the stationary and the bottom part of the progressive transform. ✨

Parameters 🧸

  • N β€” N is INTEGER. The order of the matrix L D L**T.
  • B1 β€” B1 is INTEGER. First index of the submatrix of L D L**T.
  • BN β€” BN is INTEGER. Last index of the submatrix of L D L**T.
  • LAMBDA β€” LAMBDA is REAL. The shift. In order to compute an accurate eigenvector, LAMBDA should be a good approximation to an eigenvalue of L D L**T. πŸŽ€
  • L β€” L is REAL array, dimension (N-1). The (n-1) subdiagonal elements of the unit bidiagonal matrix L, in elements 1 to N-1.
  • D β€” D is REAL array, dimension (N). The n diagonal elements of the diagonal matrix D.
  • LD β€” LD is REAL array, dimension (N-1). The n-1 elements L(i)*D(i).
  • LLD β€” LLD is REAL array, dimension (N-1). The n-1 elements L(i)*L(i)*D(i).
  • PIVMIN β€” PIVMIN is REAL. The minimum pivot in the Sturm sequence.
  • GAPTOL β€” GAPTOL is REAL. Tolerance that indicates when eigenvector entries are negligible w.r.t. their contribution to the residual.
  • Z β€” Z is COMPLEX array, dimension (N). On input, all entries of Z must be set to 0. On output, Z contains the (scaled) r-th column of the inverse. The scaling is such that Z(R) equals 1. πŸ‘‘
  • WANTNC β€” WANTNC is LOGICAL. Specifies whether NEGCNT has to be computed.
  • NEGCNT β€” NEGCNT is INTEGER. If WANTNC is .TRUE. then NEGCNT = the number of pivots < pivmin in the matrix factorization L D L**T, and NEGCNT = -1 otherwise. πŸ’€
  • ZTZ β€” ZTZ is REAL. The square of the 2-norm of Z.
  • MINGMA β€” MINGMA is REAL. The reciprocal of the largest (in magnitude) diagonal element of the inverse of L D L**T - sigma I.
  • R β€” R is INTEGER. The twist index for the twisted factorization used to compute Z. On input, 0 <= R <= N. If R is input as 0, R is set to the index where (L D L**T - sigma I)^{-1} is largest in magnitude. If 1 <= R <= N, R is unchanged. On output, R contains the twist index used to compute Z. Ideally, R designates the position of the maximum entry in the eigenvector. 🌟
  • ISUPPZ β€” ISUPPZ is INTEGER array, dimension (2). The support of the vector in Z, i.e., the vector Z is nonzero only in elements ISUPPZ(1) through ISUPPZ( 2 ).
  • NRMINV β€” NRMINV is REAL. NRMINV = 1/SQRT( ZTZ )
  • RESID β€” RESID is REAL. The residual of the FP vector. RESID = ABS( MINGMA )/SQRT( ZTZ )
  • RQCORR β€” RQCORR is REAL. The Rayleigh Quotient correction to LAMBDA. RQCORR = MINGMA*TMP
  • WORK β€” WORK is REAL array, dimension (4*N).

Author πŸ–‹οΈ

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

Contributors 🫢

  • Beresford Parlett, University of California, Berkeley, USA
  • Jim Demmel, University of California, Berkeley, USA
  • Inderjit Dhillon, University of Texas, Austin, USA
  • Osni Marques, LBNL/NERSC, USA
  • Christof Voemel, University of California, Berkeley, USA

Definition at line 227 of file clar1v.f. πŸ“Œ


πŸ’– subroutine dlar1v πŸ’–

subroutine dlar1v (integer n, integer b1, integer bn, double precision
lambda, double precision, dimension( * ) d, double precision, dimension(
* ) l, double precision, dimension( * ) ld, double precision, dimension(
* ) lld, double precision pivmin, double precision gaptol, double
precision, dimension( * ) z, logical wantnc, integer negcnt, double
precision ztz, double precision mingma, integer r, integer, dimension( *
) isuppz, double precision nrminv, double precision resid, double
precision rqcorr, double precision, dimension( * ) work)

DLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - Ξ»I. πŸ’œ

Purpose πŸ’«

DLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows B1 through BN of the tridiagonal matrix L D L**T - sigma I. When sigma is close to an eigenvalue, the computed vector is an accurate eigenvector. Usually, r corresponds to the index where the eigenvector is largest in magnitude. πŸ¦‹

The following steps accomplish this computation:

  1. Stationary qd transform: L D L**T - sigma I = L(+) D(+) L(+)**T
  2. Progressive qd transform: L D L**T - sigma I = U(-) D(-) U(-)**T
  3. Computation of the diagonal elements of the inverse of L D L**T - sigma I by combining the above transforms, and choosing r as the index where the diagonal of the inverse is (one of the) largest in magnitude.
  4. Computation of the (scaled) r-th column of the inverse using the twisted factorization obtained by combining the top part of the stationary and the bottom part of the progressive transform. ✨

Parameters 🧸

  • N β€” N is INTEGER. The order of the matrix L D L**T.
  • B1 β€” B1 is INTEGER. First index of the submatrix of L D L**T.
  • BN β€” BN is INTEGER. Last index of the submatrix of L D L**T.
  • LAMBDA β€” LAMBDA is DOUBLE PRECISION. The shift. In order to compute an accurate eigenvector, LAMBDA should be a good approximation to an eigenvalue of L D L**T. πŸŽ€
  • L β€” L is DOUBLE PRECISION array, dimension (N-1). The (n-1) subdiagonal elements of the unit bidiagonal matrix L, in elements 1 to N-1.
  • D β€” D is DOUBLE PRECISION array, dimension (N). The n diagonal elements of the diagonal matrix D.
  • LD β€” LD is DOUBLE PRECISION array, dimension (N-1). The n-1 elements L(i)*D(i).
  • LLD β€” LLD is DOUBLE PRECISION array, dimension (N-1). The n-1 elements L(i)*L(i)*D(i).
  • PIVMIN β€” PIVMIN is DOUBLE PRECISION. The minimum pivot in the Sturm sequence.
  • GAPTOL β€” GAPTOL is DOUBLE PRECISION. Tolerance that indicates when eigenvector entries are negligible w.r.t. their contribution to the residual.
  • Z β€” Z is DOUBLE PRECISION array, dimension (N). On input, all entries of Z must be set to 0. On output, Z contains the (scaled) r-th column of the inverse. The scaling is such that Z(R) equals 1. πŸ‘‘
  • WANTNC β€” the part 1 source cuts off right after this label, bestie; part 2 picks up the rest. No invented deets. 🫢
  • WANTNC β€” LOGICAL. Tells us whether NEGCNT actually needs to be computed. Like, do we care, or nah πŸ’…
  • NEGCNT β€” INTEGER. If WANTNC is .TRUE. then NEGCNT = the number of pivots < pivmin in the matrix factorization L D L**T, and NEGCNT = -1 otherwise.
  • ZTZ β€” DOUBLE PRECISION. The square of the 2-norm of Z. that's the whole vibe 🫢
  • MINGMA β€” DOUBLE PRECISION. The reciprocal of the largest (in magnitude) diagonal element of the inverse of L D L**T - sigma I.
  • R β€” INTEGER. The twist index for the twisted factorization used to compute Z. Lowkey the main character of this whole routine, fr:
    • On input, 0 <= R <= N. If R is input as 0, R is set to the index where (L D L**T - sigma I)^{-1} is largest in magnitude. If 1 <= R <= N, R is unchanged.
    • On output, R contains the twist index used to compute Z.
    • Ideally, R designates the position of the maximum entry in the eigenvector.
  • ISUPPZ β€” INTEGER array, dimension (2). The support of the vector in Z, i.e., the vector Z is nonzero only in elements ISUPPZ(1) through ISUPPZ( 2 ). outside that range it's giving absolutely nothing πŸ”₯
  • NRMINV β€” DOUBLE PRECISION. NRMINV = 1/SQRT( ZTZ )
  • RESID β€” DOUBLE PRECISION. The residual of the FP vector. RESID = ABS( MINGMA )/SQRT( ZTZ )
  • RQCORR β€” DOUBLE PRECISION. The Rayleigh Quotient correction to LAMBDA. RQCORR = MINGMA*TMP
  • WORK β€” DOUBLE PRECISION array, dimension (4*N). scratch space, it's a whole thing ✨

🫢 Author 🫢

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

🌈 Contributors 🌈

  • Beresford Parlett, University of California, Berkeley, USA
  • Jim Demmel, University of California, Berkeley, USA
  • Inderjit Dhillon, University of Texas, Austin, USA
  • Osni Marques, LBNL/NERSC, USA
  • Christof Voemel, University of California, Berkeley, USA

πŸ“ Definition at line 227 of file dlar1v.f.


πŸ’– subroutine slar1v πŸ’–

okay so same routine, single precision era. iconic of her honestly. here's the signature, verbatim, no cap:

subroutine slar1v (integer n, integer b1, integer bn, real lambda, real,
    dimension( * ) d, real, dimension( * ) l, real, dimension( * ) ld, real,
    dimension( * ) lld, real pivmin, real gaptol, real, dimension( * ) z,
    logical wantnc, integer negcnt, real ztz, real mingma, integer r,
    integer, dimension( * ) isuppz, real nrminv, real resid, real rqcorr,
    real, dimension( * ) work)

SLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - Ξ»I.

πŸŽ€ Purpose πŸŽ€

!> !> SLAR1V computes the (scaled) r-th column of the inverse of !> the sumbmatrix in rows B1 through BN of the tridiagonal matrix !> L D L**T - sigma I. When sigma is close to an eigenvalue, the !> computed vector is an accurate eigenvector. Usually, r corresponds !> to the index where the eigenvector is largest in magnitude.

so bestie, the tea β˜•: when sigma gets close to an eigenvalue, the vector it spits out is a genuinely accurate eigenvector. and usually r lines up with wherever the eigenvector is biggest in magnitude. slay.

!> The following steps accomplish this computation : !> (a) Stationary qd transform, L D L**T - sigma I = L(+) D(+) L(+)**T, !> (b) Progressive qd transform, L D L**T - sigma I = U(-) D(-) U(-)**T, !> (c) Computation of the diagonal elements of the inverse of !> L D L**T - sigma I by combining the above transforms, and choosing !> r as the index where the diagonal of the inverse is (one of the) !> largest in magnitude. !> (d) Computation of the (scaled) r-th column of the inverse using the !> twisted factorization obtained by combining the top part of the !> the stationary and the bottom part of the progressive transform.

like literally four steps, all of them ate:

  1. stationary qd transform
  2. progressive qd transform
  3. combine them to get the diagonal of the inverse, then pick r where that diagonal is (one of the) biggest in magnitude
  4. twisted factorization time β€” top half from the stationary transform, bottom half from the progressive one β€” and that gives you the (scaled) r-th column of the inverse πŸ¦‹

✨ Parameters ✨

  • N β€” INTEGER. The order of the matrix L D L**T.
  • B1 β€” INTEGER. First index of the submatrix of L D L**T.
  • BN β€” INTEGER. Last index of the submatrix of L D L**T.
  • LAMBDA β€” REAL. The shift. In order to compute an accurate eigenvector, LAMBDA should be a good approximation to an eigenvalue of L D L**T. like, be a good approximation, bestie, that's the whole assignment πŸ™ˆ
  • L β€” REAL array, dimension (N-1). The (n-1) subdiagonal elements of the unit bidiagonal matrix L, in elements 1 to N-1.
  • D β€” REAL array, dimension (N). The n diagonal elements of the diagonal matrix D.
  • LD β€” REAL array, dimension (N-1). The n-1 elements L(i)*D(i).
  • LLD β€” REAL array, dimension (N-1). The n-1 elements L(i)*L(i)*D(i).
  • PIVMIN β€” REAL. The minimum pivot in the Sturm sequence.
  • GAPTOL β€” REAL. Tolerance that indicates when eigenvector entries are negligible w.r.t. their contribution to the residual. i.e. at what point an entry is contributing nothing and can be politely ignored πŸ’€
  • Z β€” REAL array, dimension (N). On input, all entries of Z must be set to 0. On output, Z contains the (scaled) r-th column of the inverse. The scaling is such that Z(R) equals 1.
heads up bestie: Z has to come in as all zeros. that's not a suggestion, that's the contract 🫢
  • WANTNC β€” LOGICAL. Specifies whether NEGCNT has to be computed.
  • NEGCNT β€” INTEGER. If WANTNC is .TRUE. then NEGCNT = the number of pivots < pivmin in the matrix factorization L D L**T, and NEGCNT = -1 otherwise.
  • ZTZ β€” REAL. The square of the 2-norm of Z.
  • MINGMA β€” REAL. The reciprocal of the largest (in magnitude) diagonal element of the inverse of L D L**T - sigma I.
  • R β€” INTEGER. The twist index for the twisted factorization used to compute Z.
    • On input, 0 <= R <= N. If R is input as 0, R is set to the index where (L D L**T - sigma I)^{-1} is largest in magnitude. If 1 <= R <= N, R is unchanged.
    • On output, R contains the twist index used to compute Z.
    • Ideally, R designates the position of the maximum entry in the eigenvector.
  • ISUPPZ β€” INTEGER array, dimension (2). The support of the vector in Z, i.e., the vector Z is nonzero only in elements ISUPPZ(1) through ISUPPZ( 2 ).
  • NRMINV β€” REAL. NRMINV = 1/SQRT( ZTZ )
  • RESID β€” REAL. The residual of the FP vector. RESID = ABS( MINGMA )/SQRT( ZTZ )
  • RQCORR β€” REAL. The Rayleigh Quotient correction to LAMBDA. RQCORR = MINGMA*TMP
  • WORK β€” REAL array, dimension (4*N)

🫢 Author 🫢

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

🌈 Contributors 🌈

  • Beresford Parlett, University of California, Berkeley, USA
  • Jim Demmel, University of California, Berkeley, USA
  • Inderjit Dhillon, University of Texas, Austin, USA
  • Osni Marques, LBNL/NERSC, USA
  • Christof Voemel, University of California, Berkeley, USA

πŸ“ Definition at line 227 of file slar1v.f.


πŸ‘‘ subroutine zlar1v πŸ‘‘

and now for the complex*16 girlypop of the family. signature, again verbatim, do not touch:

subroutine zlar1v (integer n, integer b1, integer bn, double precision
    lambda, double precision, dimension( * ) d, double precision, dimension(
    * ) l, double precision, dimension( * ) ld, double precision, dimension(
    * ) lld, double precision pivmin, double precision gaptol, complex*16,
    dimension( * ) z, logical wantnc, integer negcnt, double precision ztz,
    double precision mingma, integer r, integer, dimension( * ) isuppz,
    double precision nrminv, double precision resid, double precision
    rqcorr, double precision, dimension( * ) work)

ZLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - Ξ»I.

πŸŽ€ Purpose πŸŽ€

!> !> ZLAR1V computes the (scaled) r-th column of the inverse of !> the sumbmatrix in rows B1 through BN of the tridiagonal matrix !> L D L**T - sigma I. When sigma is close to an eigenvalue, the !> computed vector is an accurate eigenvector. Usually, r corresponds !> to the index where the eigenvector is largest in magnitude.

same deal as her sisters, no cap β€” sigma close to an eigenvalue means the computed vector is an accurate eigenvector, and r usually lands on the index where the eigenvector is largest in magnitude. obsessed 🌸

!> The following steps accomplish this computation : !> (a) Stationary qd transform, L D L**T - sigma I = L(+) D(+) L(+)**T, !> (b) Progressive qd transform, L D L**T - sigma I = U(-) D(-) U(-)**T, !> (c) Computation of the diagonal elements of the inverse of !> L D L**T - sigma I by combining the above transforms, and choosing !> r as the index where the diagonal of the inverse is (one of the) !> largest in magnitude. !> (d) Computation of the (scaled) r-th column of the inverse using the !> twisted factorization obtained by combining the top part of the !> the stationary and the bottom part of the progressive transform.

same four steps, same energy:

  1. stationary qd transform
  2. progressive qd transform
  3. smash them together for the diagonal of the inverse, pick r where it's (one of the) biggest in magnitude
  4. twisted factorization β€” top from stationary, bottom from progressive β€” and you get the (scaled) r-th column of the inverse ✨

🌟 Parameters 🌟

  • N β€” INTEGER. The order of the matrix L D L**T.
  • B1 β€” INTEGER. First index of the submatrix of L D L**T.
  • BN β€” INTEGER. Last index of the submatrix of L D L**T.
  • LAMBDA β€” DOUBLE PRECISION. The shift. In order to compute an accurate eigenvector, LAMBDA should be a good approximation to an eigenvalue of L D L**T.

okay bestie we're still in the parameter list and these next ones are literally the rest of the arguments β€” stay with me, we're almost at the glow-up finish line πŸ’–

  • L β€” DOUBLE PRECISION array, dimension (N-1). the (n-1) subdiagonal elements of the unit bidiagonal matrix L, in elements 1 to N-1. she's giving "the lower lane" energy ✨
  • D β€” DOUBLE PRECISION array, dimension (N). the n diagonal elements of the diagonal matrix D. main character diagonal, no cap πŸ’…
  • LD β€” DOUBLE PRECISION array, dimension (N-1). the n-1 elements L(i)*D(i). yes bestie, multiplication is real πŸ”₯
  • LLD β€” DOUBLE PRECISION array, dimension (N-1). the n-1 elements L(i)*L(i)*D(i). that's L squared times D, periodt πŸ’€
  • PIVMIN β€” DOUBLE PRECISION. the minimum pivot in the Sturm sequence. tiny but iconic πŸŽ€
  • GAPTOL β€” DOUBLE PRECISION. tolerance that indicates when eigenvector entries are negligible w.r.t. their contribution to the residual. basically the "girl, that's close enough to zero" threshold πŸ™ˆ
  • Z β€” COMPLEX*16 array, dimension (N). on input, all entries of Z must be set to 0 (not me stressing this, but fr fr do it). on output, Z contains the (scaled) r-th column of the inverse. the scaling is such that Z(R) equals 1. she's serving scaled inverse column realness πŸ‘‘
  • WANTNC β€” LOGICAL. specifies whether NEGCNT has to be computed. a little yes/no vibe check πŸ¦‹
  • NEGCNT β€” INTEGER. if WANTNC is .TRUE. then NEGCNT = the number of pivots < pivmin in the matrix factorization L D L**T, and NEGCNT = -1 otherwise. math said "count the tiny pivots" and we said slay πŸ’…
  • ZTZ β€” DOUBLE PRECISION. the square of the 2-norm of Z. norm squared, cute ✨
  • MINGMA β€” DOUBLE PRECISION. the reciprocal of the largest (in magnitude) diagonal element of the inverse of L D L**T - sigma I. yes that's a whole sentence, but it's literally the definition, so 🫢
  • R β€” INTEGER. the twist index for the twisted factorization used to compute Z. on input, 0 <= R <= N. if R is input as 0, R is set to the index where (L D L**T - sigma I)^{-1} is largest in magnitude. if 1 <= R <= N, R is unchanged. on output, R contains the twist index used to compute Z. ideally, R designates the position of the maximum entry in the eigenvector. she's the twist index, the main character of the factorization πŸ’ƒ
  • ISUPPZ β€” INTEGER array, dimension (2). the support of the vector in Z, i.e., the vector Z is nonzero only in elements ISUPPZ(1) through ISUPPZ( 2 ). support system but make it math 🌸
  • NRMINV β€” DOUBLE PRECISION. NRMINV = 1/SQRT( ZTZ ). that's a whole formula, keep it exact bestie 🧚
  • RESID β€” DOUBLE PRECISION. the residual of the FP vector. RESID = ABS( MINGMA )/SQRT( ZTZ ). residual said "I'm the error term" and we said iconic 😭
  • RQCORR β€” DOUBLE PRECISION. the Rayleigh Quotient correction to LAMBDA. RQCORR = MINGMA*TMP. correction era πŸ’œ
  • WORK β€” DOUBLE PRECISION array, dimension (4*N). workspace, but make it spacious πŸŽ€

πŸ‘‘ Author πŸ‘‘

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

🌟 Contributors 🌟

  • Beresford Parlett, University of California, Berkeley, USA
  • Jim Demmel, University of California, Berkeley, USA
  • Inderjit Dhillon, University of Texas, Austin, USA
  • Osni Marques, LBNL/NERSC, USA
  • Christof Voemel, University of California, Berkeley, USA

Definition at line 227 of file zlar1v.f.

πŸ‘‘ Author (again, bestie) πŸ‘‘

Generated automatically by Doxygen for LAPACK from the source code.


later bestie! this was LAPACK version 3.12.0, page lar1v(3), and you ate that whole parameter list up πŸ’…βœ¨

πŸ“¦ where this page comes from