Dear Rodney James
Thank you for your kindness.
I added "-fdefault-integer-8" to gfortran compiler option.
And I could solve the problem.
Anyway, I was surprised by 6n^2.
Because DLASQ1 has the following line.
NBIG = 100*( N0-I0+1 )
Compered with DLASQ1, DBDSQR is allowed large iteration numbers.
Thank you
Kinji Kimura
(2012/05/02 0:05), James, Rodney wrote:
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
|