--- rpl/lapack/lapack/zgelsd.f 2010/08/06 15:32:38 1.4 +++ rpl/lapack/lapack/zgelsd.f 2010/08/07 13:18:08 1.5 @@ -114,11 +114,11 @@ * * RWORK (workspace) DOUBLE PRECISION array, dimension (MAX(1,LRWORK)) * LRWORK >= -* 10*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS + -* (SMLSIZ+1)**2 +* 10*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS + +* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS ) * if M is greater than or equal to N or * 10*M + 2*M*SMLSIZ + 8*M*NLVL + 3*SMLSIZ*NRHS + -* (SMLSIZ+1)**2 +* MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS ) * if M is less than N, the code will execute correctly. * SMLSIZ is returned by ILAENV and is equal to the maximum * size of the subproblems at the bottom of the computation @@ -229,7 +229,7 @@ * Path 1 - overdetermined or exactly determined. * LRWORK = 10*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS + - $ ( SMLSIZ + 1 )**2 + $ MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS ) MAXWRK = MAX( MAXWRK, 2*N + ( MM + N )*ILAENV( 1, $ 'ZGEBRD', ' ', MM, N, -1, -1 ) ) MAXWRK = MAX( MAXWRK, 2*N + NRHS*ILAENV( 1, 'ZUNMBR', @@ -241,7 +241,7 @@ END IF IF( N.GT.M ) THEN LRWORK = 10*M + 2*M*SMLSIZ + 8*M*NLVL + 3*SMLSIZ*NRHS + - $ ( SMLSIZ + 1 )**2 + $ MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS ) IF( N.GE.MNTHR ) THEN * * Path 2a - underdetermined, with many more columns