aboutsummaryrefslogtreecommitdiff
path: root/SRC/sla_lin_berr.f
diff options
context:
space:
mode:
authorjulie <julielangou@users.noreply.github.com>2009-03-17 19:12:22 +0000
committerjulie <julielangou@users.noreply.github.com>2009-03-17 19:12:22 +0000
commit1d4ed33a5cfc65afcd46a0babb74979dfbed73f3 (patch)
tree7fcf48bfd5b51cf542f3483949a17eeae17ffa6e /SRC/sla_lin_berr.f
parent81026de8b0352a8e1bca3fb0755886ce80a51c77 (diff)
fix bug :: in DGESDD, workspace query gives a value smaller than the minimal value given in the header to run the routine
o reported by Guy Bencteux on Sat Dec 06 2008 o see forum topic 846 : https://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=846 remove a min(M,N) in the minimal workspace formula when JOBZ='O' and JOBZ = 'S' or 'A'. Note Julie on minimal value: Case: M > N IF( M > N*5.0D0 ) THEN PATH 1 -> FOR JOBZ=N : MINWORK = 7*N + N PATH 2 -> FOR JOBZ=O: MINWORK = 5*N*N + 7*N PATH 3 -> FOR JOBZ=S: MINWORK = 4*N*N + 7*N PATH 4 -> FOR JOBZ=A: MINWORK = 4*N*N + 7*N IF M>N (but not too large) PATH 5 -> FOR JOBZ=N : MINWORK = MAX(7*N,M) + 3*N PATH 6 -> FOR JOBZ=O: MINWORK = 3*N + MAX (M,4*N*N + 4*N) PATH 7 -> FOR JOBZ=S : MINWORK = 3*N + MAX (M,3*N*N + 4*N) PATH 8 -> FOR JOBZ=A : MINWORK = 3*N + MAX (M,3*N*N + 4*N) GENERAL FORMULA FROM THE TWO CASES WHEN M>N FOR N LWORK >= 3*N + max (M,7*N) FOR O LWORK >= 3*N + max (M,5*N*N + 4*N) [instead of 3*N*N + max (M,5*N*N + 4*N) ] FOR S ET A LWORK >= 3*N + max(M,4*N*N + 4*N) [instead of 3*N*N + max(M,4*N*N + 4*N) ]
Diffstat (limited to 'SRC/sla_lin_berr.f')
0 files changed, 0 insertions, 0 deletions