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: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Wed, 28 Jan 2009 17:04:38 +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=KLk5BGk2N2Y1LRIXE0N5gjIMsMrEFPSGMsl5L0dVF+8=; b=Di61ZM4oUcaxAL/S8V+pkjdjimoQbYrHydbhhVsdXrgwEHz3D6ChOhT1EZAo0kTl+Z 5JyTYJwiCzldnu9LibM+Xhwo/yLI4ErNgKKBmlC7HvW3+On+tJXzJZP9eQWgs0vlhQUK fMJPDRiNkctpFk2rxOUmU5ppBfzQkZCcp4UNk=
- 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=wmQGv5bgLZ1zJQpceig7ctSmy2R7uN/H33Tg7M//iksmZ+Rzs9Sr+YbgU3yaeO653l Y0r1ZbGMStupXP7SJO8TxSp3aug96U/vCTxtO4WfbZi/WNj+ghNh94bcf5bhQ/cidmUx p/fKZbUnLFBtjA0nvGPUnVWW539PJMBca15zg=
>>> 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.
Gael.