Re: [eigen] Instability in LLT and LDLT methods. |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Instability in LLT and LDLT methods.
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Wed, 28 Jan 2009 17:12:39 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=9X+ElEV8t35/FTjXR9cpE9rcgYopAzi0GQfR2U19XWY=; b=CkzsLfKC1N+IpaVsnomq53r9m+Htrq+z8TdKjb02Cwh5OyMjlRLgvpR6fPwLRO6rIU TKP0ef+Dq9yzKYZ6Z25yaVcD8/CiSIq02F0NLbM0aa7zPUJpR7YN+8hUaybkCHc1eZnK 8e0QAEX4mcLBxvdJE9wsLWSwyGkKchtKNqU38=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=hDqqBai98wxM4E2FujK/fHCbL+kkAj21KDe7FDFJyLQXaXqJ9YIBSY0XmwY85Vornh RGR67KePUjVdUR42x8ynNFpYerefz8OVxvh0srOZneZD/QwiELrPovD1AY3dh82bqORC g3xSV6Zb++RKqyc/4kwrYzNSYraxxBupt0f8E=
2009/1/28 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
>>>> I think that LAPACK and GSL do a hybrid of partial and full pivoting
>>>> that I have yet to understand.
>>>
>>> That's not what their documentation says:
>>> http://netlib.org/lapack/lug/node38.html
>>> http://www.gnu.org/software/gsl/manual/html_node/LU-Decomposition.html
>>
>> Ah OK. Here I was just repeating stuff I heared over IRC. So I don't
>> know. Perhaps they still do kind of a hybrid but don't mention it in
>> the docs. If they really do plain partial pivoting, then let's try
>> inverting, say, a 2000x2000 matrix, it will fail. For this reason I
>> doubt that they actually do plain partial pivoting.
>
> yeah, GSL clearly only does partial pivoting. About LAPACK I thought I
> read somewhere that the high level block LU algorithm was based on top
> of the sgetc2 auxiliary routines (un-blocked full pivoting), but
> searching over the net again, I found source code using the dgetf2
> routine (un-blocked partial pivoting)... That would make sense because
> I don't know how hybrid full/partial pivoting could work.
>
>
>>> I think a 50% speedup is a worthwhile target. At least for vector solves,
>>> you can compute the residual and redo the computation with complete pivoting
>>> if necessary.
>
> another argument in favor of having partial pivoting is that would
> allow to implement a blocked version with only ~10 lines of code, and
> for large matrix a blocked LU with partial pivoting is much much
> faster than the current one.
OK so I'll really make this change in LU.
I'm really sorry to have generated a lot of noise about partial
pivoting being unusable for large sizes, that was wrong, partial
pivoting is usable as soon as the matrix is invertible.
I'll also correct my false statements on the forum.
Benoit