complexSYauxiliary(3)
complexSYauxiliary(3) ๐ โจ
okay bestie, welcome to the LAPACK corner of the universe where we handle complex SY matrices โ auxiliary style. yes it's complexSYauxiliary(3), yes it's part of LAPACK, and yes we're gonna get through all of it together. grab a strawberry ๐ and let's go.
โจ NAME โจ
complexSYauxiliary โ the complex auxiliary crew ๐ซถ
๐ธ SYNOPSIS ๐ธ
Functions
subroutine claesy (A, B, C, RT1, RT2, EVSCAL, CS1, SN1)โ CLAESY computes the eigenvalues and eigenvectors of a 2-by-2 complex symmetric matrix. it's giving eigen-decomposition energy ๐real function clansy (NORM, UPLO, N, A, LDA, WORK)โ CLANSY returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a complex symmetric matrix.subroutine claqsy (UPLO, N, A, LDA, S, SCOND, AMAX, EQUED)โ CLAQSY scales a symmetric/Hermitian matrix, using scaling factors computed by spoequ.subroutine csymv (UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)โ CSYMV computes a matrix-vector product for a complex symmetric matrix.subroutine csyr (UPLO, N, ALPHA, X, INCX, A, LDA)โ CSYR performs the symmetric rank-1 update of a complex symmetric matrix.subroutine csyswapr (UPLO, N, A, LDA, I1, I2)โ CSYSWAPR ๐ (that's literally all it says, bestie, we're not inventing lore)subroutine ctgsy2 (TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, RDSUM, RDSCAL, INFO)โ CTGSY2 solves the generalized Sylvester equation (unblocked algorithm).
๐ Detailed Description ๐
This is the group of complex auxiliary functions for SY matrices. periodt. that's the whole vibe. ๐
๐ Function Documentation ๐
subroutine claesy (complex A, complex B, complex C, complex RT1, complex RT2, complex EVSCAL, complex CS1, complex SN1)
CLAESY computes the eigenvalues and eigenvectors of a 2-by-2 complex symmetric matrix. iconic behavior, honestly. โจ
Purpose
CLAESY computes the eigendecomposition of a 2-by-2 symmetric matrix
( ( A, B );( B, C ) )
provided the norm of the matrix of eigenvectors is larger than some threshold value.
RT1 is the eigenvalue of larger absolute value, and RT2 of smaller absolute value. If the eigenvectors are computed, then on return ( CS1, SN1 ) is the unit eigenvector for RT1, hence
[ CS1 SN1 ] . [ A B ] . [ CS1 -SN1 ] = [ RT1 0 ]
[ -SN1 CS1 ] [ B C ] [ SN1 CS1 ] [ 0 RT2 ]
Parameters
AโAisCOMPLEX. The( 1, 1 )element of input matrix.BโBisCOMPLEX. The( 1, 2 )element of input matrix. The( 2, 1 )element is also given byB, since the 2-by-2 matrix is symmetric.CโCisCOMPLEX. The( 2, 2 )element of input matrix.RT1โRT1isCOMPLEX. The eigenvalue of larger modulus.RT2โRT2isCOMPLEX. The eigenvalue of smaller modulus.EVSCALโEVSCALisCOMPLEX. The complex value by which the eigenvector matrix was scaled to make it orthonormal. IfEVSCALis zero, the eigenvectors were not computed. This means one of two things: the 2-by-2 matrix could not be diagonalized, or the norm of the matrix of eigenvectors before scaling was larger than the threshold valueTHRESH(set below). ๐ญ lowkey stressful but okayCS1โCS1isCOMPLEXSN1โSN1isCOMPLEX. IfEVSCAL .NE. 0,( CS1, SN1 )is the unit right eigenvector forRT1.
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
real function clansy (character NORM, character UPLO, integer N, complex, dimension( lda, * ) A, integer LDA, real, dimension( * ) WORK)
CLANSY returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a complex symmetric matrix. norm girlie behavior, we love her ๐
Purpose
CLANSY returns the value of the one norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a complex symmetric matrix A.
Returns
CLANSY
CLANSY = ( 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 consistent matrix norm. ๐ noted.
Parameters
NORMโNORMisCHARACTER*1. Specifies the value to be returned inCLANSYas described above.UPLOโUPLOisCHARACTER*1. Specifies whether the upper or lower triangular part of the symmetric matrixAis to be referenced.= 'U':Upper triangular part ofAis referenced= 'L':Lower triangular part ofAis referenced
NโNisINTEGER. The order of the matrixA.N >= 0. WhenN = 0,CLANSYis set to zero.AโAisCOMPLEX array, dimension (LDA,N). The symmetric matrixA. IfUPLO = 'U', the leading n by n upper triangular part ofAcontains the upper triangular part of the matrixA, and the strictly lower triangular part ofAis not referenced. IfUPLO = 'L', the leading n by n lower triangular part ofAcontains the lower triangular part of the matrixA, and the strictly upper triangular part ofAis not referenced.LDAโLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(N,1).WORKโWORKisREAL array, dimension (MAX(1,LWORK)), whereLWORK >= NwhenNORM = 'I' or '1' or 'O'; otherwise,WORKis not referenced.
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
subroutine claqsy (character UPLO, integer N, complex, dimension( lda, * ) A, integer LDA, real, dimension( * ) S, real SCOND, real AMAX, character EQUED)
CLAQSY scales a symmetric/Hermitian matrix, using scaling factors computed by spoequ. it's the equilibrate-and-slay pipeline ๐ง
Purpose
CLAQSY equilibrates a symmetric matrix A using the scaling factors in the vector S.
Parameters
UPLOโUPLOisCHARACTER*1. Specifies whether the upper or lower triangular part of the symmetric matrixAis stored.= 'U':Upper triangular= 'L':Lower triangular
NโNisINTEGER. The order of the matrixA.N >= 0.AโAisCOMPLEX array, dimension (LDA,N).
On entry, the symmetric matrix A. If UPLO = 'U', the leading n by n upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = 'L', the leading n by n lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if EQUED = 'Y', the equilibrated matrix: diag(S) * A * diag(S).
LDAโLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(N,1).SโSisREAL array, dimension (N). The scale factors forA.SCONDโSCONDisREAL. Ratio of the smallestS(i)to the largestS(i).AMAXโAMAXisREAL. Absolute value of largest matrix entry.EQUEDโEQUEDisCHARACTER*1. Specifies whether or not equilibration was done.= 'N':No equilibration.= 'Y':Equilibration was done, i.e.,Ahas been replaced bydiag(S) * A * diag(S).
Internal Parameters
THRESH is a threshold value used to decide if scaling should be done based on the ratio of the scaling factors. If SCOND < THRESH, scaling is done.
LARGE and SMALL are threshold values used to decide if scaling should be done based on the absolute size of the largest matrix element. If AMAX > LARGE or AMAX < SMALL, scaling is done.
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
subroutine csymv (character UPLO, integer N, complex ALPHA, complex, dimension( lda, * ) A, integer LDA, complex, dimension( * ) X, integer INCX, complex BETA, complex, dimension( * ) Y, integer INCY)
CSYMV computes a matrix-vector product for a complex symmetric matrix. the way it just multiplies... main character energy fr fr ๐ฅ
Purpose
CSYMV performs the matrix-vector operation
y := alpha*A*x + beta*y,
where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric matrix.
Parameters
UPLOโUPLOisCHARACTER*1.
On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = 'U' or 'u'โ Only the upper triangular part ofAis to be referenced.UPLO = 'L' or 'l'โ Only the lower triangular part ofAis to be referenced.
Unchanged on exit.
NโNisINTEGER.
On entry, N specifies the order of the matrix A. N must be at least zero. Unchanged on exit.
ALPHAโALPHAisCOMPLEX.
On entry, ALPHA specifies the scalar alpha. Unchanged on exit.
AAโ COMPLEX array, dimension( LDA, N )
Before entry, with UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced.
Before entry, with UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced.
Unchanged on exit.
LDAโ INTEGER
On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least max( 1, N ).
Unchanged on exit.
Xโ COMPLEX array, dimension at least( 1 + ( N - 1 )*abs( INCX ) )
Before entry, the incremented array X must contain the N-element vector x.
Unchanged on exit.
INCXโ INTEGER
On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Unchanged on exit.
BETAโ COMPLEX
On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input. โจ (bestie, that's a free pass, use it)
Unchanged on exit.
Yโ COMPLEX array, dimension at least( 1 + ( N - 1 )*abs( INCY ) )
Before entry, the incremented array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y. ๐
INCYโ INTEGER
On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
Unchanged on exit.
๐ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
๐ฆ subroutine csyr (character UPLO, integer N, complex ALPHA, complex, dimension( * ) X, integer INCX, complex, dimension( lda, * ) A, integer LDA)
CSYR performs the symmetric rank-1 update of a complex symmetric matrix. okay so slay, one vector, one rank, one glow-up of your matrix ๐
๐ธ Purpose
CSYR performs the symmetric rank 1 operation
A := alpha*x*x**H + A,
where alpha is a complex scalar, x is an n element vector and A is an n by n symmetric matrix.
๐ Parameters
UPLOโ CHARACTER*1
On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = 'U'or'u'โ Only the upper triangular part ofAis to be referenced.UPLO = 'L'or'l'โ Only the lower triangular part ofAis to be referenced.
Unchanged on exit.
Nโ INTEGER
On entry, N specifies the order of the matrix A. N must be at least zero.
Unchanged on exit.
ALPHAโ COMPLEX
On entry, ALPHA specifies the scalar alpha.
Unchanged on exit.
Xโ COMPLEX array, dimension at least( 1 + ( N - 1 )*abs( INCX ) )
Before entry, the incremented array X must contain the N-element vector x.
Unchanged on exit.
INCXโ INTEGER
On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Unchanged on exit.
Aโ COMPLEX array, dimension( LDA, N )
Before entry, with UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced. On exit, the upper triangular part of the array A is overwritten by the upper triangular part of the updated matrix.
Before entry, with UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. On exit, the lower triangular part of the array A is overwritten by the lower triangular part of the updated matrix.
LDAโ INTEGER
On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least max( 1, N ).
Unchanged on exit.
๐ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
๐ subroutine csyswapr (character UPLO, integer N, complex, dimension( lda, n ) A, integer LDA, integer I1, integer I2)
CSYSWAPR โ no cap, the name is the whole plot twist, but here's the official tea anyway โ
๐ฆ Purpose
CSYSWAPR applies an elementary permutation on the rows and the columns of a symmetric matrix. swapping rows and columns, keeping the vibe symmetric, iconic behavior honestly โจ
๐ Parameters
UPLOโ CHARACTER*1
Specifies whether the details of the factorization are stored as an upper or lower triangular matrix.
= 'U': Upper triangular, form isA = U*D*U**T;= 'L': Lower triangular, form isA = L*D*L**T.
Nโ INTEGER
The order of the matrix A. N >= 0.
Aโ COMPLEX array, dimension(LDA,N)
On entry, the N-by-N matrix A. On exit, the permuted matrix where the rows I1 and I2 and columns I1 and I2 are interchanged. If UPLO = 'U', the interchanges are applied to the upper triangular part and the strictly lower triangular part of A is not referenced; if UPLO = 'L', the interchanges are applied to the lower triangular part and the part of A above the diagonal is not referenced.
LDAโ INTEGER
The leading dimension of the array A. LDA >= max(1,N).
I1โ INTEGER
Index of the first row to swap
I2โ INTEGER
Index of the second row to swap
๐ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
๐ subroutine ctgsy2 (character TRANS, integer IJOB, integer M, integer N, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldc, * ) C, integer LDC, complex, dimension( ldd, * ) D, integer LDD, complex, dimension( lde, * ) E, integer LDE, complex, dimension( ldf, * ) F, integer LDF, real SCALE, real RDSUM, real RDSCAL, integer INFO)
CTGSY2 solves the generalized Sylvester equation (unblocked algorithm). the math is mathing and the matrices are triangular, bestie, we love structure ๐ญ๐
๐ Purpose
CTGSY2 solves the generalized Sylvester equation
A * R - L * B = scale * C (1)
D * R - L * E = scale * F
using Level 1 and 2 BLAS, where R and L are unknown M-by-N matrices, (A, D), (B, E) and (C, F) are given matrix pairs of size M-by-M, N-by-N and M-by-N, respectively. A, B, D and E are upper triangular (i.e., (A,D) and (B,E) in generalized Schur form).
The solution (R, L) overwrites (C, F). 0 <= SCALE <= 1 is an output scaling factor chosen to avoid overflow. ๐จ (overflow is NOT the vibe, hence the scale)
In matrix notation solving equation (1) corresponds to solve Zx = scale * b, where Z is defined as
Z = [ kron(In, A) -kron(B**H, Im) ] (2)
[ kron(In, D) -kron(E**H, Im) ],
Ik is the identity matrix of size k and X**H is the transpose of X. kron(X, Y) is the Kronecker product between the matrices X and Y.
If TRANS = 'C', y in the conjugate transposed system Z**H*y = scale*b is solved for, which is equivalent to solve for R and L in
A**H * R + D**H * L = scale * C (3)
R * B**H + L * E**H = scale * -F
This case is used to compute an estimate of Dif[(A, D), (B, E)] = = sigma_min(Z) using reverse communication with CLACON.
CTGSY2 also (IJOB >= 1) contributes to the computation in CTGSYL of an upper bound on the separation between to matrix pairs. Then the input (A, D), (B, E) are sub-pencils of two matrix pairs in CTGSYL. ๐ซถ
๐ธ Parameters
TRANSโ CHARACTER*1= 'N': solve the generalized Sylvester equation (1).= 'T': solve the 'transposed' system (3).
IJOBโ INTEGER
Specifies what kind of functionality to be performed.
= 0: solve (1) only.= 1: A contribution from this subsystem to a Frobenius norm-based estimate of the separation between two matrix pairs is computed. (look ahead strategy is used).= 2: A contribution from this subsystem to a Frobenius norm-based estimate of the separation between two matrix pairs is computed. (SGECONon sub-systems is used.)
Not referenced if TRANS = 'T'. ๐
Mโ INTEGER
On entry, M specifies the order of A and D, and the row dimension of C, F, R and L.
Nโ INTEGER
On entry, N specifies the order of B and E, and the column dimension of C, F, R and L.
Aโ COMPLEX array, dimension(LDA, M)
On entry, A contains an upper triangular matrix.
LDAโ INTEGER
The leading dimension of the matrix A. LDA >= max(1, M).
Bโ COMPLEX array, dimension(LDB, N)
On entry, B contains an upper triangular matrix.
LDBโ INTEGER
The leading dimension of the matrix B. LDB >= max(1, N).
CCโ bestie, this one is aCOMPLEX array, dimension(LDC, N). On entry,Ccontains the right-hand-side of the first matrix equation in (1). On exit, ifIJOB = 0,Chas been overwritten by the solutionR. ๐LDCโ isINTEGER. The leading dimension of the matrixC.LDC >= max(1, M). ๐Dโ is aCOMPLEX array, dimension(LDD, M). On entry,Dcontains an upper triangular matrix. ๐บLDDโ isINTEGER. The leading dimension of the matrixD.LDD >= max(1, M). ๐Eโ is aCOMPLEX array, dimension(LDE, N). On entry,Econtains an upper triangular matrix. ๐บLDEโ isINTEGER. The leading dimension of the matrixE.LDE >= max(1, N). ๐Fโ is aCOMPLEX array, dimension(LDF, N). On entry,Fcontains the right-hand-side of the second matrix equation in (1). On exit, ifIJOB = 0,Fhas been overwritten by the solutionL. ๐LDFโ isINTEGER. The leading dimension of the matrixF.LDF >= max(1, M). ๐SCALEโ isREAL. On exit,0 <= SCALE <= 1. If0 < SCALE < 1, the solutionsRandL(CandFon entry) will hold the solutions to a slightly perturbed system but the input matricesA,B,DandEhave not been changed. IfSCALE = 0,RandLwill hold the solutions to the homogeneous system withC = F = 0. Normally,SCALE = 1. โ๏ธRDSUMโ isREAL. On entry, the sum of squares of computed contributions to the Dif-estimate under computation byCTGSYL, where the scaling factorRDSCAL(see below) has been factored out. On exit, the corresponding sum of squares updated with the contributions from the current sub-system. IfTRANS = 'T'RDSUMis not touched. NOTE:RDSUMonly makes sense whenCTGSY2is called byCTGSYL. ๐งฎRDSCALโ isREAL. On entry, scaling factor used to prevent overflow inRDSUM. On exit,RDSCALis updated w.r.t. the current contributions inRDSUM. IfTRANS = 'T',RDSCALis not touched. NOTE:RDSCALonly makes sense whenCTGSY2is called byCTGSYL. ๐งฎINFOโ isINTEGER. On exit, ifINFOis set to:=0: Successful exit ๐<0: IfINFO = -i, input argument numberiis illegal. ๐จ>0: The matrix pairs(A, D)and(B, E)have common or very close eigenvalues. ๐
โจ Author โจ
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
๐ซถ Contributors: ๐ซถ
Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.
๐ธ Author ๐ธ
Generated automatically by Doxygen for LAPACK from the source code.
That's the whole page, bestie! Version 3.11.0, dated Sun Nov 27 2022, and it's literally the end of complexSYauxiliary(3). Periodt. ๐
โจ
๐ฆ where this page comes from
- debian bookworm: liblapack-doc 3.11.0-2 ยท BSD-3-Clause
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms