diff options
author | julie <julielangou@users.noreply.github.com> | 2010-06-24 14:38:30 +0000 |
---|---|---|
committer | julie <julielangou@users.noreply.github.com> | 2010-06-24 14:38:30 +0000 |
commit | 82f05f2dd3e11ff479cfba13b5e5f0e80249abb3 (patch) | |
tree | 15d102d9b6bbfc062f92e0205603b2c9ca9628ee /SRC/zlalsa.f | |
parent | ef920e099dd173ef2fe241cbc452530bd4e0a06e (diff) | |
download | lapack-82f05f2dd3e11ff479cfba13b5e5f0e80249abb3.tar.gz lapack-82f05f2dd3e11ff479cfba13b5e5f0e80249abb3.tar.bz2 lapack-82f05f2dd3e11ff479cfba13b5e5f0e80249abb3.zip |
Fix Bug0059
bug report and fix sent by Alexander Kobotov (Intel) on Wed, 23 June 2010 to "lapack@cs.utk.edu".
ZGELSD crashes on large matrices (eq M=N=NHRS>=88), if real workspace allocated exactly as reported on workspace query.
Root cause is wrong estimation of real workspace size in ZLALSA (on path zgelsd->zlalsd->zlalsa). It assumes that RWORK array length should be max( N, (SMLSZ+1)*NRHS*3 ), where SMLSIZ=25. But in fact the function calls zlals0 which requires RWORK to be ( K*(1+NRHS) + 2*NRHS ), where K could be as large as number of columns in matrix A.
The same is actual for CGELSD.
Diffstat (limited to 'SRC/zlalsa.f')
-rw-r--r-- | SRC/zlalsa.f | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/SRC/zlalsa.f b/SRC/zlalsa.f index e41be325..41ff70d6 100644 --- a/SRC/zlalsa.f +++ b/SRC/zlalsa.f @@ -137,7 +137,7 @@ * the right null space of the I-th subproblem. * * RWORK (workspace) DOUBLE PRECISION array, dimension at least -* max ( N, (SMLSZ+1)*NRHS*3 ). +* MAX( (SMLSZ+1)*NRHS*3, N*(1+NRHS) + 2*NRHS ). * * IWORK (workspace) INTEGER array. * The dimension must be at least 3 * N |