LAPACK Archives

[Lapack] Scaling in xSTEQR, xSTERF

Hello Pat,

Thanks for the bug report. I have added your bug report to the LAPACK
Errata file. See: , bug0036. We will
try to have a look at some points.

Best wishes,

On Fri, 24 Jul 2009, Pat Quillen wrote:

Dear LAPACKers:

During the process of upgrading to LAPACK 3.2, we noticed that the routines 
xSTEQR and xSTERF are calling xLANST to compute the infinity norm of the 
input matrix, and using this value to scale.  It seems that these routines 
should probably use xLANST with first input 'M' and scale by the element with 
maximum absolute value.  This would be consistent with the driver routines 
xSTEVy, as well as with the xSTEMR and xSTEDC routines.  Changing the 
appropriate calls to xLANST would probably also necessitate changing the 
constants SSFMIN and SSFMAX.  For example, one might replace the scaling 
logic in xSTEQR to be similar to that found in xSTEV.

We were motivated to look at this as one of our tests for eigs began to fail 
with the recent change to xLASCL to handle CFROM == Inf.  eigs is based on 
ARPACK, which ultimately calls xSTEQR.  Our test executes eigs on the matrix

A = [0 realmax; realmax 0]

The Lanczos process produces a tridiagonal matrix whose infinity norm 
overflows, and for which the current version of DSTEQR will produce NaNs.  By 
replacing the scaling logic as outlined above, DSTEQR will produce the 
eigenvalues +/-realmax.  Of course, there will be matrices for which +/-Inf 
are returned (use a different starting vector in Lanczos), but that is more 
acceptable than NaN.

I have attached a copy of dsteqr.f with a proposed change, and I'd appreciate 
any feedback you have.


<Prev in Thread] Current Thread [Next in Thread>

For additional information you may use the LAPACK/ScaLAPACK Forum.
Or one of the mailing lists, or