DLANSF(3)

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

πŸ’… NAME

Okay bestie, so this is dlansf.f(3) from the Library Functions Manual β€” and the page is literally about the source file itself:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlansf.f

That's the whole NAME section, no cap. We're in LAPACK country now. πŸ¦‹


✨ SYNOPSIS

πŸŽ€ Functions/Subroutines

  • double precision function DLANSF (norm, transr, uplo, n, a, work) β€” DLANSF returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a symmetric matrix in RFP format.

🌸 Function/Subroutine Documentation

🫢 double precision function DLANSF (character norm, character transr, character uplo, integer n, double precision, dimension( 0: * ) a, double precision, dimension( 0: * ) work)

Not me introducing the actual main character: DLANSF returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a symmetric matrix in RFP format. πŸ‘‘

πŸ’œ Purpose:

!>
!> DLANSF returns the value of the one norm, or the Frobenius norm, or
!> the infinity norm, or the element of largest absolute value of a
!> real symmetric matrix A in RFP format.
!>

πŸ“ Returns

DLANSF

!>
!>    DLANSF = ( max(abs(A(i,j))), NORM = 'M' or 'm'
!>             (
!>             ( norm1(A),         NORM = '1', 'O' or 'o'
!>             (
!>             ( normI(A),         NORM = 'I' or 'i'
!>             (
!>             ( normF(A),         NORM = 'F', 'f', 'E' or 'e'
!>
!> where  norm1  denotes the  one norm of a matrix (maximum column sum),
!> normI  denotes the  infinity norm  of a matrix  (maximum row sum) and
!> normF  denotes the  Frobenius norm of a matrix (square root of sum of
!> squares).  Note that  max(abs(A(i,j)))  is not a  matrix norm.
!>
🚨 Heads up babe: max(abs(A(i,j))) is not a matrix norm. The manpage said it, so I'm saying it. Do not come for me.

🌈 Parameters

⭐ NORM

!>          NORM is CHARACTER*1
!>          Specifies the value to be returned in DLANSF as described
!>          above.
!>

It's a CHARACTER*1 and it picks which value comes back out of DLANSF, exactly like the block above describes. πŸ’…

⭐ TRANSR

!>          TRANSR is CHARACTER*1
!>          Specifies whether the RFP format of A is normal or
!>          transposed format.
!>          = 'N':  RFP format is Normal;
!>          = 'T':  RFP format is Transpose.
!>

Also CHARACTER*1 β€” is the RFP format of A normal or transposed? 'N' = normal, 'T' = transpose. That's the whole vibe check. ✨

⭐ UPLO

!>          UPLO is CHARACTER*1
!>           On entry, UPLO specifies whether the RFP matrix A came from
!>           an upper or lower triangular matrix as follows:
!>           = 'U': RFP A came from an upper triangular matrix;
!>           = 'L': RFP A came from a lower triangular matrix.
!>

CHARACTER*1 again, and on entry it tells you whether the RFP matrix A came from an upper ('U') or lower ('L') triangular matrix. πŸ‘‘

⭐ N

!>          N is INTEGER
!>          The order of the matrix A. N >= 0. When N = 0, DLANSF is
!>          set to zero.
!>

INTEGER, the order of matrix A, and it's gotta satisfy N >= 0. And when N = 0, DLANSF is set to zero β€” the function said "not today" and gave you a zero. πŸ’€

⭐ A

!>          A is DOUBLE PRECISION array, dimension ( N*(N+1)/2 );
!>          On entry, the upper (if UPLO = 'U') or lower (if UPLO = 'L')
!>          part of the symmetric matrix A stored in RFP format. See the
!>           below for more details.
!>          Unchanged on exit.
!>

DOUBLE PRECISION array, dimension ( N*(N+1)/2 ). On entry it holds the upper part (if UPLO = 'U') or lower part (if UPLO = 'L') of the symmetric matrix A, stored in RFP format β€” see below for the whole lore drop. And bestie, it's unchanged on exit. Untouched. Princess treatment. πŸŽ€

⭐ WORK

!>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)),
!>          where LWORK >= N when NORM = 'I' or '1' or 'O'; otherwise,
!>          WORK is not referenced.
!>

DOUBLE PRECISION array, dimension (MAX(1,LWORK)), where LWORK >= N when NORM = 'I' or '1' or 'O'. Otherwise? WORK is literally not referenced. Not even a little. πŸ™ˆ


πŸ‘‘ Author

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

🧚 Further Details:

Okay this is the part where it gets iconic β€” the RFP format lore. Sit down, grab a snack. πŸ“

!>
!>  We first consider Rectangular Full Packed (RFP) Format when N is
!>  even. We give an example where N = 6.
!>
!>      AP is Upper             AP is Lower
!>
!>   00 01 02 03 04 05       00
!>      11 12 13 14 15       10 11
!>         22 23 24 25       20 21 22
!>            33 34 35       30 31 32 33
!>               44 45       40 41 42 43 44
!>                  55       50 51 52 53 54 55
!>
!>
!>  Let TRANSR = 'N'. RFP holds AP as follows:
!>  For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last
!>  three columns of AP upper. The lower triangle A(4:6,0:2) consists of
!>  the transpose of the first three columns of AP upper.
!>  For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first
!>  three columns of AP lower. The upper triangle A(0:2,0:2) consists of
!>  the transpose of the last three columns of AP lower.
!>  This covers the case N even and TRANSR = 'N'.
!>
!>         RFP A                   RFP A
!>
!>        03 04 05                33 43 53
!>        13 14 15                00 44 54
!>        23 24 25                10 11 55
!>        33 34 35                20 21 22
!>        00 44 45                30 31 32
!>        01 11 55                40 41 42
!>        02 12 22                50 51 52
!>
!>  Now let TRANSR = 'T'. RFP A in both UPLO cases is just the
!>  transpose of RFP A above. One therefore gets:
!>
!>
!>           RFP A                   RFP A
!>
!>     03 13 23 33 00 01 02    33 00 10 20 30 40 50
!>     04 14 24 34 44 11 12    43 44 11 21 31 41 51
!>     05 15 25 35 45 55 22    53 54 55 22 32 42 52
!>
!>
!>  We then consider Rectangular Full Packed (RFP) Format when N is
!>  odd. We give an example where N = 5.
!>
!>     AP is Upper                 AP is Lower
!>
!>   00 01 02 03 04              00
!>      11 12 13 14              10 11
!>         22 23 24              20 21 22
!>            33 34              30 31 32 33
!>               44              40 41 42 43 44
!>
!>
!>  Let TRANSR = 'N'. RFP holds AP as follows:
!>  For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last
!>  three columns of AP upper. The lower triangle A(3:4,0:1) consists of
!>  the transpose of the first two columns of AP upper.
!>  For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first
!>  three columns of AP lower. The upper triangle A(0:1,1:2) consists of
!>  the transpose of the last two columns of AP lower.
!>  This covers the case N odd and TRANSR = 'N'.
!>
!>         RFP A                   RFP A
!>
!>        02 03 04                00 33 43
!>        12 13 14                10 11 44
!>        22 23 24                20 21 22
!>        00 33 34                30 31 32
!>        01 11 44                40 41 42
!>
!>  Now let TRANSR = 'T'. RFP A in both UPLO cases is just the
!>  transpose of RFP A above. One therefore gets:
!>
!>           RFP A                   RFP A
!>
!>     02 12 22 00 01             00 10 20 30 40 50
!>     03 13 23 33 11             33 11 21 31 41 51
!>     04 14 24 34 44             43 44 22 32 42 52
!>

Lowkey mesmerizing. Highkey a spreadsheet. πŸ¦‹


Definition at line 208 of file dlansf.f.


🫢 Author

Generated automatically by Doxygen for LAPACK from the source code.


That's the whole page, bestie β€” and it's brought to you by LAPACK, Version 3.12.0, straight outta /home/abui...RC/dlansf.f(3). Go forth and norm responsibly. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from