DLANSF(3)
π 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
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms