realSYauxiliary(3)
β¨ NAME β¨
Okay bestie, welcome to realSYauxiliary(3) β the manual page for the real auxiliary squad that handles SY matrices. It's giving "real" and it's giving iconic. π
π¦ SYNOPSIS π¦
Functions
real function slansy (NORM, UPLO, N, A, LDA, WORK)β SLANSY returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a real symmetric matrix.subroutine slaqsy (UPLO, N, A, LDA, S, SCOND, AMAX, EQUED)β SLAQSY scales a symmetric/Hermitian matrix, using scaling factors computed by spoequ.subroutine slasy2 (LTRANL, LTRANR, ISGN, N1, N2, TL, LDTL, TR, LDTR, B, LDB, SCALE, X, LDX, XNORM, INFO)β SLASY2 solves the Sylvester matrix equation where the matrices are of order 1 or 2.subroutine ssyswapr (UPLO, N, A, LDA, I1, I2)β SSYSWAPR applies an elementary permutation on the rows and columns of a symmetric matrix.subroutine stgsy2 (TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, RDSUM, RDSCAL, IWORK, PQ, INFO)β STGSY2 solves the generalized Sylvester equation (unblocked algorithm).
πΈ DETAILED DESCRIPTION πΈ
This is the group of real auxiliary functions for SY matrices. That's the whole vibe check, bestie. π
π FUNCTION DOCUMENTATION π
π real function slansy (character NORM, character UPLO, integer N, real, dimension( lda, * ) A, integer LDA, real, dimension( * ) WORK)
SLANSY returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a real symmetric matrix.
π Purpose:
SLANSY 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. Periodt. β¨
β¨ Returns
SLANSY is set to one of these, depending on NORM:
SLANSY = ( 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. No cap. π
π«Ά Parameters
NORMβNORMisCHARACTER*1. Specifies the value to be returned inSLANSYas 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,SLANSYis set to zero.AβAisREAL 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 slaqsy (character UPLO, integer N, real, dimension( lda, * ) A, integer LDA, real, dimension( * ) S, real SCOND, real AMAX, character EQUED)
SLAQSY scales a symmetric/Hermitian matrix, using scaling factors computed by spoequ.
π Purpose:
SLAQSY 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βAisREAL array, dimension (LDA,N). On entry, 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. On exit, ifEQUED = '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 slasy2 (logical LTRANL, logical LTRANR, integer ISGN, integer N1, integer N2, real, dimension( ldtl, * ) TL, integer LDTL, real, dimension( ldtr, * ) TR, integer LDTR, real, dimension( ldb, * ) B, integer LDB, real SCALE, real, dimension( ldx, * ) X, integer LDX, real XNORM, integer INFO)
SLASY2 solves the Sylvester matrix equation where the matrices are of order 1 or 2.
π Purpose:
SLASY2 solves for the N1 by N2 matrix X, 1 <= N1,N2 <= 2, in
op(TL)*X + ISGN*X*op(TR) = SCALE*B,
where TL is N1 by N1, TR is N2 by N2, B is N1 by N2, and ISGN = 1 or -1. op(T) = T or T**T, where T**T denotes the transpose of T. β¨
π«Ά Parameters
LTRANLβLTRANLisLOGICAL. On entry,LTRANLspecifies theop(TL):= .FALSE., op(TL) = TL,= .TRUE., op(TL) = TL**T.
LTRANRβLTRANRisLOGICAL. On entry,LTRANRspecifies theop(TR):= .FALSE., op(TR) = TR,= .TRUE., op(TR) = TR**T.
ISGNβISGNisINTEGER. On entry,ISGNspecifies the sign of the equation as described before.ISGNmay only be1or-1.N1βN1isINTEGER. On entry,N1specifies the order of matrixTL.N1may only be0,1or2.N2βN2isINTEGER. On entry,N2specifies the order of matrixTR.N2may only be0,1or2.TLβTLisREAL array, dimension (LDTL,2). On entry,TLcontains anN1byN1matrix.LDTLβLDTLisINTEGER. The leading dimension of the matrixTL.LDTL >= max(1,N1).TRβTRisREAL array, dimension (LDTR,2). On entry,TRcontains anN2byN2matrix.LDTRβLDTRisINTEGER. The leading dimension of the matrixTR.LDTR >= max(1,N2).BβBisREAL array, dimension (LDB,2). On entry, theN1byN2matrixBcontains the right-hand side of the equation.LDBβLDBisINTEGER. The leading dimension of the matrixB.LDB >= max(1,N1).SCALEβSCALEisREAL. On exit,SCALEcontains the scale factor.SCALEis chosen less than or equal to1to prevent the solution overflowing.XβXisREAL array, dimension (LDX,2). On exit,Xcontains theN1byN2solution.LDXβLDXisINTEGER. The leading dimension of the matrixX.LDX >= max(1,N1).XNORMβXNORMisREAL. On exit,XNORMis the infinity-norm of the solution.INFOβINFOisINTEGER. On exit,INFOis set to0: successful exit.1:TLandTRhave too close eigenvalues, soTLorTRis perturbed to get a nonsingular equation.
NOTE: In the interests of speed, this routine does not check the inputs for errors. π¨
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
π subroutine ssyswapr (character UPLO, integer N, real, dimension( lda, * ) A, integer LDA, integer I1, integer I2)
SSYSWAPR applies an elementary permutation on the rows and columns of a symmetric matrix.
π Purpose:
SSYSWAPR applies an elementary permutation on the rows and the columns of a symmetric matrix. β¨
π«Ά Parameters
UPLOβUPLOisCHARACTER*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βNisINTEGER. The order of the matrixA.N >= 0.AβAβ okay bestie, this is aREAL array, dimension (LDA,*). On entry, it's theN-by-NmatrixA. On exit, it's the permuted matrix where the rowsI1andI2and columnsI1andI2are interchanged. IfUPLO = 'U', the interchanges are applied to the upper triangular part and the strictly lower triangular part ofAis not referenced π«; ifUPLO = 'L', the interchanges are applied to the lower triangular part and the part ofAabove the diagonal is not referenced π«.LDAβINTEGER. The leading dimension of the arrayA.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 stgsy2
subroutine stgsy2 (character TRANS, integer IJOB, integer M, integer N,
real, dimension( lda, * ) A, integer LDA, real, dimension( ldb, * ) B,
integer LDB, real, dimension( ldc, * ) C, integer LDC, real, dimension(
ldd, * ) D, integer LDD, real, dimension( lde, * ) E, integer LDE, real,
dimension( ldf, * ) F, integer LDF, real SCALE, real RDSUM, real RDSCAL,
integer, dimension( * ) IWORK, integer PQ, integer INFO)
STGSY2 solves the generalized Sylvester equation (unblocked algorithm). β¨
Purpose
Okay so here's the tea β β STGSY2 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, with real entries. (A, D) and (B, E) must be in generalized Schur canonical form, i.e. A, B are upper quasi triangular and D, E are upper triangular. The solution (R, L) overwrites (C, F). 0 <= SCALE <= 1 is an output scaling factor chosen to avoid overflow.
In matrix notation solving equation (1) corresponds to solve Z*x = scale*b, where Z is defined as:
Z = [ kron(In, A) -kron(B**T, Im) ] (2)
[ kron(In, D) -kron(E**T, Im) ],
Ik is the identity matrix of size k and X**T is the transpose of X. kron(X, Y) is the Kronecker product between the matrices X and Y. In the process of solving (1), we solve a number of such systems where Dim(In), Dim(In) = 1 or 2.
If TRANS = 'T', solve the transposed system Z**T*y = scale*b for y, which is equivalent to solve for R and L in:
A**T * R + D**T * L = scale * C (3)
R * B**T + L * E**T = scale * -F
This case is used to compute an estimate of Dif[(A, D), (B, E)] = sigma_min(Z) using reverse communication with SLACON.
STGSY2 also (IJOB >= 1) contributes to the computation in STGSYL of an upper bound on the separation between to matrix pairs. Then the input (A, D), (B, E) are sub-pencils of the matrix pair in STGSYL. See STGSYL for details.
Parameters
TRANSβTRANS is CHARACTER*1= 'N': solve the generalized Sylvester equation (1).= 'T': solve the 'transposed' system (3).
IJOBβIJOB is 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. (SGECON on sub-systems is used.)- Not referenced if
TRANS = 'T'.
MβM is INTEGER. On entry,Mspecifies the order ofAandD, and the row dimension ofC,F,RandL.NβN is INTEGER. On entry,Nspecifies the order ofBandE, and the column dimension ofC,F,RandL.AβA is REAL array, dimension (LDA, M). On entry,Acontains an upper quasi triangular matrix.LDAβLDA is INTEGER. The leading dimension of the matrixA.LDA >= max(1, M).BβB is REAL array, dimension (LDB, N). On entry,Bcontains an upper quasi triangular matrix.LDBβLDB is INTEGER. The leading dimension of the matrixB.LDB >= max(1, N).CβC is REAL 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βLDC is INTEGER. The leading dimension of the matrixC.LDC >= max(1, M).DβD is REAL array, dimension (LDD, M). On entry,Dcontains an upper triangular matrix.LDDβLDD is INTEGER. The leading dimension of the matrixD.LDD >= max(1, M).EβE is REAL array, dimension (LDE, N). On entry,Econtains an upper triangular matrix.LDEβLDE is INTEGER. The leading dimension of the matrixE.LDE >= max(1, N).FβF is REAL 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βLDF is INTEGER. The leading dimension of the matrixF.LDF >= max(1, M).SCALEβSCALE is REAL. 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βRDSUM is REAL. On entry, the sum of squares of computed contributions to theDif-estimate under computation bySTGSYL, 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 whenSTGSY2is called bySTGSYL.RDSCALβRDSCAL is REAL. 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 whenSTGSY2is called bySTGSYL.IWORKβIWORK is INTEGER array, dimension (M+N+2).PQβPQ is INTEGER. On exit, the number of subsystems (of size2-by-2,4-by-4and8-by-8) solved by this routine.INFOβINFO is INTEGER. On exit, ifINFOis set to=0: Successful exit<0: If INFO = -i, the i-th argument had an illegal value.>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.
And that's the whole vibe, bestie! π This page is from LAPACK version 3.11.0, dated Sun Nov 27 2022, and it's the realSYauxiliary(3) man page. Stay slay, keep your matrices in Schur form, and don't let SCALE hit zero unless you're ready for the homogeneous tea. π«Άβ¨
π¦ 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