DLAVSP(3)

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

πŸ’… DLAVSP(3) β€” bestie, it's a LAPACK page

Okay so before anything else: this is dlavsp.f(3), it lives in the Library Functions Manual, and the file it documents is /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/dlavsp.f. That's the whole NAME situation, no notes. 🫢


✨ SYNOPSIS ✨

Functions/Subroutines

  • subroutine DLAVSP (uplo, trans, diag, n, nrhs, a, ipiv, b, ldb, info) β€” literally DLAVSP, that's the whole pitch πŸŽ€

🌸 Function/Subroutine Documentation 🌸

subroutine DLAVSP (character uplo, character trans, character diag, integer
    n, integer nrhs, double precision, dimension( * ) a, integer, dimension(
    * ) ipiv, double precision, dimension( ldb, * ) b, integer ldb, integer
    info)

DLAVSP. That's her. πŸ‘‘

πŸ’– Purpose:

!>
!> DLAVSP  performs one of the matrix-vector operations
!>    x := A*x  or  x := A'*x,
!> where x is an N element vector and  A is one of the factors
!> from the block U*D*U' or L*D*L' factorization computed by DSPTRF.
!>
!> If TRANS = 'N', multiplies by U  or U * D  (or L  or L * D)
!> If TRANS = 'T', multiplies by U' or D * U' (or L' or D * L' )
!> If TRANS = 'C', multiplies by U' or D * U' (or L' or D * L' )
!>

So like, DLAVSP does one of the matrix-vector operations x := A*x or x := A'*x, where x is an N element vector and A is one of the factors from the block U*D*U' or L*D*L' factorization computed by DSPTRF. It's giving "I'm the multiplication half of the story." ✨

To recap the switch-up, fr fr:

  • If TRANS = 'N', it multiplies by U or U * D (or L or L * D)
  • If TRANS = 'T', it multiplies by U' or D * U' (or L' or D * L')
  • If TRANS = 'C', it multiplies by U' or D * U' (or L' or D * L')

πŸŽ€ Parameters πŸŽ€

  • UPLO β€” UPLO is CHARACTER*1. Specifies whether the factor stored in A is upper or lower triangular.
    • = 'U': Upper triangular
    • = 'L': Lower triangular
  • TRANS β€” TRANS is CHARACTER*1. Specifies the operation to be performed:
    • = 'N': x := A*x
    • = 'T': x := A'*x
    • = 'C': x := A'*x
  • DIAG β€” DIAG is CHARACTER*1. Specifies whether or not the diagonal blocks are unit matrices. If the diagonal blocks are assumed to be unit, then A = U or A = L, otherwise A = U*D or A = L*D.
    • = 'U': Diagonal blocks are assumed to be unit matrices.
    • = 'N': Diagonal blocks are assumed to be non-unit matrices.
  • N β€” N is INTEGER. The number of rows and columns of the matrix A. N >= 0. 🌈
  • NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of vectors x to be multiplied by A. NRHS >= 0. (So many vectors, so little time.)
  • A β€” A is DOUBLE PRECISION array, dimension (N*(N+1)/2). The block diagonal matrix D and the multipliers used to obtain the factor U or L, stored as a packed triangular matrix as computed by DSPTRF. Iconic storage choice, honestly. πŸ’…
  • IPIV β€” IPIV is INTEGER array, dimension (N). The pivot indices from DSPTRF. πŸ¦‹
  • B β€” B is DOUBLE PRECISION array, dimension (LDB,NRHS). On entry, B contains NRHS vectors of length N. On exit, B is overwritten with the product A * B. Heads up bestie, she will eat your input β€” that's the whole point. 😭
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N). Respect the bound or perish.
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -k, the k-th argument had an illegal value
Lowkey the INFO < 0 case is the vibe check failing β€” the k-th argument showed up illegal and got called out by number. No cap.

πŸ‘‘ Author

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

Definition at line 128 of file dlavsp.f. ⭐


🌈 Author (yes, again)

Generated automatically by Doxygen for LAPACK from the source code. Not a human, just a very diligent robot doing its little documentation dance. πŸ€–βœ¨


Keep A, IPIV, B and LDB consistent with what DSPTRF gave you β€” this routine is downstream of it and does not re-derive anything for you. 🧚

Okay that's the whole page, mwah πŸ’– β€” this was dlavsp.f(3) from LAPACK, Version 3.12.0. Go multiply something responsibly. πŸ“πŸ”₯

πŸ“¦ where this page comes from