Hey,

Couldn't find the documentation - all I found was
https://github.com/JuliaLang/julia/blob/27c3a5b7ed66bee509fc4a81aa54ba09aec1b2ee/base/linalg/exceptions.jl#L19-L21
and
http://docs.julialang.org/en/latest/stdlib/linalg/?highlight=posdefexception#Base.cholfact

I know rand(4,4) isn't symmetric :)
I was just trying to figure out if the error code was always 4 or there was 
some deeper meaning.

My solution is to use cholfact and set pivot to true. Would it be a good 
idea for chol to use pivot by default? Or is the cost unacceptable?

Cheers,
Iain


On Monday, April 7, 2014 4:41:38 PM UTC-4, Douglas Bates wrote:
>
>
>
> On Monday, April 7, 2014 3:24:32 PM UTC-5, Iain Dunning wrote:
>>
>> Hi all,
>>
>> I have the following matrix (in a copy-pasteable format)
>>
>> X = [1.00000000753845    -.9999999962147147  -1.0000000052345246 
>> -1.0000000048451771;
>> -.9999999962147147  .9999999849183356   .9999999938533486   
>> .9999999932021346;
>> -1.0000000052345246 .9999999938533486   1.0000000081826723 
>>  1.0000000034216714;
>> -1.0000000048451771 .9999999932021346   1.0000000034216714 
>>  1.0000000058875202]
>>
>> and I have
>> println(eig(X))
>>
>> telling me
>> [8.01744247656805e-17, 2.6859121865768767e-9, 3.823536365571658e-9, 
>> 4.000000000017529]
>> (i.e. that it is PSD)
>>
>> but
>> println(chol(X))
>>
>> giving me
>> ERROR: PosDefException(4)
>>
>> Two questions:
>> 1) How do I make chol try harder? Do I want to use cholfact and increase 
>> tol to... what?
>> 2) How can I find out what (4) means? Because when I do the following:
>>
>> As a last resort you can always read the documentation :-)
>
> The 4 is the error number from the LAPACK.potrf! function, indicating that 
> the Cholesky factorization failed on the fourth column
>
> julia> chol(rand(4,4))
>> ERROR: PosDefException(2)
>>  in cholfact! at linalg/factorization.jl:36
>>  in chol at linalg/factorization.jl:44
>>
>>
> Umm - rand(4,4) is not expected to be symmetric. 
>  
>
>> it is (2) - so I'm guessing that the 4 communicates something useful.
>>
>> Cheers,
>> Iain
>>
>>
>>

Reply via email to