|
From: | Dmitri A. Sergatskov |
Subject: | Re: Cholesky and non-definite |
Date: | Thu, 18 Nov 2004 12:50:47 -0700 |
User-agent: | Mozilla Thunderbird 0.8 (X11/20041020) |
E. Joshua Rigler wrote:
I'm getting an error from the cholesky function (chol.oct) about a non-positive definite matrix, even though I check the matrix with isdefinite.m beforehand. This happens with both the default and octave-forge chol.oct. I looked at the source code briefly, and chol.cc calls a function called "fact" that returns a variable called "info", which when non-zero apparently means the matrix is not positive definite. 1) Can someone point me to the source code that contains the function "fact", so that I can see how it determines whether or not a matrix is positive definite? 2) Is there a tolerance I can specify for the isdefinite.m function that will ensure that I always pass a suitably positive definite matrix to the chol.oct function?
What is you configuration? I had some funny problems whith chol() running much slower with gcc3.3.x and bombing with 3.4.x. Now it looks to me that it was the problem with overoptimization of lapack by recent gcc. You have to make sure that lapack libraries are compiled either with "-O" flag or with "-O2 -ffloat-store" (I think "-O3 -ffloat-store" will work as well). See http://www.octave.org/octave-lists/archive/octave-maintainers.2004/msg00817.html thread as well as: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=138683
Thanks. -EJR
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 -------------------------------------------------------------
[Prev in Thread] | Current Thread | [Next in Thread] |