Dear Kinji Kimura,
The problem you are seeing is due to the iteration counter exceeding the
capacity of the default 32-bit fortran integer type. The maximum iteration is
set internally to 6n^2, so when 6n^2 > 2^31, (which happens for n>18918) the
max iteration count is negative, and the routine exits with info > 0 due to
failed convergence. One way to address this problem is to recompile the
LAPACK and BLAS libraries to use a 64-bit default integer type, which can
usually be done with a compiler option. Another possibility is to change line
415 in dbddsqr.f
MAXIT = MAXITR*N*N
so that MAXIT is set to an integer value less than 2^31.
Best regards,
Rodney James
University of Colorado Denver
On Apr 30, 2012, at 6:53 PM, Kinji Kimura wrote:
Dear LAPACK team
I made the program which is attached in this e-mail.
The result is the following.
./test 10000
INFO=0
./test 30000
INFO=0
./test 50000
INFO=0
./test 100000
INFO=99999
./test 300000
INFO=299999
./test 500000
INFO=499297
./test 1000000
INFO=999999
./test 3000000
INFO=2999999
Therefore, DBDSQR has bug.
Kinji Kimura.
<test.c>_______________________________________________
Lapack mailing list
Lapack@Domain.Removed
http://lists.eecs.utk.edu/mailman/listinfo/lapack
|