[SciPy-user] bug in cho_factor?

Emanuele Olivetti emanuele at relativita.com
Sat Jul 19 11:29:30 EDT 2008


In scipy v0.7.0.dev4543 (svn) the documentation of
scipy.linalg.cho_factor says that cho_factor returns a tuple
made of:
----
    c : array, shape (M, M)
        Upper- or lower-triangular Cholesky factor of A
    lower : array, shape (M, M)
        Flag indicating whether the factor is lower or upper triangular
----
But the following simple example shows that 'c' is not triangular
and the result of cho_factor() is pretty different from that of
cholesky()!
----
import numpy as N
import scipy.linalg as SL
A = N.array([[2,1],[1,2]])
c_wrong,lower = SL.cho_factor(A)
print c_wrong
c_correct = SL.cholesky(A)
print c_correct
print c_wrong==c_correct
----
The output is:
----
[[ 1.41421356  0.70710678]
 [ 1.          1.22474487]]
[[ 1.41421356  0.70710678]
 [ 0.          1.22474487]]
[[ True  True]
 [False  True]]
----
Why c_wrong[1,0] is not zero? And why is it 1.0 ?

I went mad tracking this issue in my code 8-|

Regards,

Emanuele

P.S.: there is a type in cho_factor documentation: 'lower' is
not an 'array' but an 'int'.




More information about the SciPy-User mailing list