logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

lasd4 - lasd4: D&C step: secular equation nonlinear solver

Author

Generated automatically by Doxygen for LAPACK from the source code. Version 3.12.0 Thu Aug 7 2025 17:26:25 lasd4(3)

Detailed Description

Function Documentation

subroutinedlasd4(integern,integeri,doubleprecision,dimension(*)d,doubleprecision,dimension(*)z,doubleprecision,dimension(*)delta,doubleprecisionrho,doubleprecisionsigma,doubleprecision,dimension(*)work,integerinfo)DLASD4 computes the square root of the i-th updated eigenvalue of a positive symmetric rank-one modification to a positive diagonal matrix. Used by dbdsdc. Purpose: This subroutine computes the square root of the I-th updated eigenvalue of a positive symmetric rank-one modification to a positive diagonal matrix whose entries are given as the squares of the corresponding entries in the array d, and that 0 <= D(i) < D(j) for i < j and that RHO > 0. This is arranged by the calling routine, and is no loss in generality. The rank-one modified system is thus diag( D ) * diag( D ) + RHO * Z * Z_transpose. where we assume the Euclidean norm of Z is 1. The method consists of approximating the rational functions in the secular equation by simpler interpolating rational functions. ParametersN N is INTEGER The length of all arrays. I I is INTEGER The index of the eigenvalue to be computed. 1 <= I <= N. D D is DOUBLE PRECISION array, dimension ( N ) The original eigenvalues. It is assumed that they are in order, 0 <= D(I) < D(J) for I < J. Z Z is DOUBLE PRECISION array, dimension ( N ) The components of the updating vector. DELTA DELTA is DOUBLE PRECISION array, dimension ( N ) If N .ne. 1, DELTA contains (D(j) - sigma_I) in its j-th component. If N = 1, then DELTA(1) = 1. The vector DELTA contains the information necessary to construct the (singular) eigenvectors. RHO RHO is DOUBLE PRECISION The scalar in the symmetric updating formula. SIGMA SIGMA is DOUBLE PRECISION The computed sigma_I, the I-th updated eigenvalue. WORK WORK is DOUBLE PRECISION array, dimension ( N ) If N .ne. 1, WORK contains (D(j) + sigma_I) in its j-th component. If N = 1, then WORK( 1 ) = 1. INFO INFO is INTEGER = 0: successful exit > 0: if INFO = 1, the updating process failed. InternalParameters: Logical variable ORGATI (origin-at-i?) is used for distinguishing whether D(i) or D(i+1) is treated as the origin. ORGATI = .true. origin at i ORGATI = .false. origin at i+1 Logical variable SWTCH3 (switch-for-3-poles?) is for noting if we are working with THREE poles! MAXIT is the maximum number of iterations allowed for each eigenvalue. Author Univ. of Tennessee Univ. of California Berkeley Univ. of Colorado Denver NAG Ltd. Contributors: Ren-Cang Li, Computer Science Division, University of California at Berkeley, USA subroutineslasd4(integern,integeri,real,dimension(*)d,real,dimension(*)z,real,dimension(*)delta,realrho,realsigma,real,dimension(*)work,integerinfo)SLASD4 computes the square root of the i-th updated eigenvalue of a positive symmetric rank-one modification to a positive diagonal matrix. Used by sbdsdc. Purpose: This subroutine computes the square root of the I-th updated eigenvalue of a positive symmetric rank-one modification to a positive diagonal matrix whose entries are given as the squares of the corresponding entries in the array d, and that 0 <= D(i) < D(j) for i < j and that RHO > 0. This is arranged by the calling routine, and is no loss in generality. The rank-one modified system is thus diag( D ) * diag( D ) + RHO * Z * Z_transpose. where we assume the Euclidean norm of Z is 1. The method consists of approximating the rational functions in the secular equation by simpler interpolating rational functions. ParametersN N is INTEGER The length of all arrays. I I is INTEGER The index of the eigenvalue to be computed. 1 <= I <= N. D D is REAL array, dimension ( N ) The original eigenvalues. It is assumed that they are in order, 0 <= D(I) < D(J) for I < J. Z Z is REAL array, dimension ( N ) The components of the updating vector. DELTA DELTA is REAL array, dimension ( N ) If N .ne. 1, DELTA contains (D(j) - sigma_I) in its j-th component. If N = 1, then DELTA(1) = 1. The vector DELTA contains the information necessary to construct the (singular) eigenvectors. RHO RHO is REAL The scalar in the symmetric updating formula. SIGMA SIGMA is REAL The computed sigma_I, the I-th updated eigenvalue. WORK WORK is REAL array, dimension ( N ) If N .ne. 1, WORK contains (D(j) + sigma_I) in its j-th component. If N = 1, then WORK( 1 ) = 1. INFO INFO is INTEGER = 0: successful exit > 0: if INFO = 1, the updating process failed. InternalParameters: Logical variable ORGATI (origin-at-i?) is used for distinguishing whether D(i) or D(i+1) is treated as the origin. ORGATI = .true. origin at i ORGATI = .false. origin at i+1 Logical variable SWTCH3 (switch-for-3-poles?) is for noting if we are working with THREE poles! MAXIT is the maximum number of iterations allowed for each eigenvalue. Author Univ. of Tennessee Univ. of California Berkeley Univ. of Colorado Denver NAG Ltd. Contributors: Ren-Cang Li, Computer Science Division, University of California at Berkeley, USA

Name

lasd4 - lasd4: D&C step: secular equation nonlinear solver

Synopsis

Functions subroutine dlasd4 (n, i, d, z, delta, rho, sigma, work, info) DLASD4 computes the square root of the i-th updated eigenvalue of a positive symmetric rank-one modification to a positive diagonal matrix. Used by dbdsdc. subroutine slasd4 (n, i, d, z, delta, rho, sigma, work, info) SLASD4 computes the square root of the i-th updated eigenvalue of a positive symmetric rank-one modification to a positive diagonal matrix. Used by sbdsdc.

See Also