help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Lapack issues? (Was Re: Inverse Matrix Function appears a bit wonky)


From: Dmitri A. Sergatskov
Subject: Lapack issues? (Was Re: Inverse Matrix Function appears a bit wonky)
Date: Wed, 03 Nov 2004 15:45:12 -0700
User-agent: Mozilla Thunderbird 0.8 (X11/20040913)


Geraint Paul Bevan wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dmitri A. Sergatskov wrote:

|
| How come I do not get a warning?
| (Octave 2.1.60 / ATLAS 2.7.8)
|  octave:35> m = [1 2 3 4; 2 2 3 3; 1 2 1 2; 3 2 2 1];
| octave:36> det (m)
| ans =  -1.3323e-15

Perhaps because the answer is greater than your machine's precision?
FWIW, eps is 2.22044604925031E-16 on mine.

I am running 2.1.60, Debian package octave2.1 2.1.60-1 which is linked
against:

...

Do you know which version of atlas you have?

I recompiled octave against static ATLAS library 3.7.8.
No any other blas/lapack is involved:

address@hidden dima]$ ldd /usr/local/bin/octave
        liboctinterp.so => /usr/local/lib/octave-2.1.60/liboctinterp.so 
(0x007e2000)
        liboctave.so => /usr/local/lib/octave-2.1.60/liboctave.so (0x00f80000)
        libcruft.so => /usr/local/lib/octave-2.1.60/libcruft.so (0x00111000)
        libreadline.so.4 => /usr/lib/libreadline.so.4 (0x057a5000)
        libncurses.so.5 => /usr/lib/libncurses.so.5 (0x05763000)
        libdl.so.2 => /lib/libdl.so.2 (0x004d8000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x004dc000)
        libg2c.so.0 => /usr/lib/libg2c.so.0 (0x007ab000)
        libm.so.6 => /lib/tls/libm.so.6 (0x004ee000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00511000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x00519000)
        libc.so.6 => /lib/tls/libc.so.6 (0x005d4000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x007cb000)

I still do not get warnings for inverse an it is probably det(a) is few time 
bigger than eps:
octave:8> eps
eps =  2.22044604925031e-16
octave:9> det(a)
ans =  -1.33226762955019e-15
octave:10> a
a =

  1  2  3  4
  2  2  3  3
  1  2  1  2
  3  2  2  1


octave:12> inv(a)
ans =

   -4.50359962737050e+15    6.00479950316066e+15    1.50119987579016e+15   
-3.00239975158033e+15
    4.50359962737050e+15   -6.00479950316066e+15   -1.50119987579016e+15    
3.00239975158033e+15
    4.50359962737050e+15   -6.00479950316066e+15   -1.50119987579017e+15    
3.00239975158033e+15
   -4.50359962737050e+15    6.00479950316066e+15    1.50119987579017e+15   
-3.00239975158033e+15

---------

My other issue is timing of eig() function.
octave:15> x=randn(1000);
octave:16> tic; x*inv(x) ; toc
ans = 2.15839200094342
octave:17> tic; eig(x) ; toc
ans = 22.7398420013487

It appears that eig() does not use ATLAS (dveeg ?) at all...

--
Sincerely,
Dmitri.





-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]