[SciPy-user] bug in cho_factor?

Warren Weckesser warren.weckesser at gmail.com
Sat Jul 19 12:28:55 EDT 2008


It appears that cho_factor is a wrapper for the lapack routine potrf.
This function doesn't zero out the irrelevant part of the matrix; it
appears to leave it untouched.  In your case, the upper triangular
part of your answer is correct; the subdiagonal part is irrelevant
(and is apparently left over from the input matrix).

Apparently this is not a problem, since the output of cho_factor is
intended to be used in cho_solve (as the docstring states).  Presumably
cho_solve ignores the irrelevant parts of the input matrix.

Warren

On Sat, Jul 19, 2008 at 11:29 AM, Emanuele Olivetti <emanuele at relativita.com>
wrote:

> 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'.
>
> _______________________________________________
> SciPy-user mailing list
> SciPy-user at scipy.org
> http://projects.scipy.org/mailman/listinfo/scipy-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20080719/0cb6493f/attachment.html>


More information about the SciPy-User mailing list