[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 2.9.12 (2.9.13) chol broken with --enable-64?
From: |
Fredrik Lingvall |
Subject: |
Re: 2.9.12 (2.9.13) chol broken with --enable-64? |
Date: |
Sat, 11 Aug 2007 18:17:12 +0200 |
User-agent: |
Thunderbird 2.0.0.6 (X11/20070804) |
John W. Eaton wrote:
On 9-Aug-2007, Fredrik Lingvall wrote:
| Hi,
|
| chol seems to be broken in 2.9.12 and perhaps 2.9.13 (I can't test
| 2.9.13 since the 2.9.13 build fails with --enable-64)
|
| octave:1> A=rand(100,100);
| octave:2> A=A'*A;
| octave:3> chol(A);
| octave:4> chol(A);
| error: chol: matrix not positive definite
| octave:4> chol(A);
| error: chol: matrix not positive definite
|
| Octave was configured with:
|
| fllap5 octave-2.9.12 # ./configure CFLAGS="-O3 -pipe -m64 -mtune=nocona
| -march=nocona -mfpmath=sse -msse2 -msse3 -fomit-frame-pointer
| -funroll-loops -fprefetch-loop-arrays -pthread" CXXFLAGS="-O3 -pipe -m64
| -fpermissive -mtune=nocona -march=nocona -mfpmath=sse -msse2 -msse3
| -fomit-frame-pointer -funroll-loops -fprefetch-loop-arrays -pthread"
| FFLAGS="-O3 -pipe -m64 -mtune=nocona -march=nocona -mfpmath=sse -msse2
| -msse3 -fomit-frame-pointer -funroll-loops -fprefetch-loop-arrays
| -pthread" --enable-64 --prefix=/usr/local/
| --with-blas=/usr/local/lib/libBLAS.so
| --with-lapack=/usr/local/lib/libLAPACK.so --enable-shared --without-hdf5
Were /usr/local/lib/libBLAS.so and /usr/local/lib/libLAPACK.so
compiled such that integers are signed 8-byte values, as Octave
expects when using --enable-64?
jwe
I have compiled LAPACK (3.0.1) with -m64 and -march=nocona and I use
GOTO BLAS with
BINARY64 = 1 in the Makefile.rule file.
To test I created an oct file that calls the LAPACK routines,
dpotrf_(upper_or_lower, &N, Y, &lda, &info); (cholesky factorization)
and
dpotri_(upper_or_lower, &N, Y, &lda, &info); (positive triangualar
inverse)
which should do the same thing as cholinv (I guess). The result is
octave:1> A=rand(100,100);
octave:2> A=A'*A;
octave:3> C = potri(A);
octave:4> C = potri(A);
octave:5> C = potri(A);
octave:6> cholinv(A);
octave:7> cholinv(A);
error: cholinv: matrix not positive definite
I test the info parameter after both calls above and the info parameter
is always = 0 (no error).
(the test above was done with octave 2.9.13+ from 20070810)
/Fredrik