|[eigen] LU partial pivoting: LUP versus PLU|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: [eigen] LU partial pivoting: LUP versus PLU
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Wed, 28 Jan 2009 22:21:03 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=By/xVD76JFyKrssUZoF9b9QBm3CBVDZX83Y9LCnIzs0=; b=r5e84vvp9bfSHFzaEUKKixYHEb7OePiEkKAUc3Y8BIw5wAMr4MIxXfBDmtZArp9tns OpfA3gplEl1ilvrA8Z54hs6F56jKMSypBfq5VlJ/6h70APhOSJaXKrBZP4D0mr1vG97B sPB8AeIzqvG+iIQ5y3Txpiz9JHx8/jyVIhCq4=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=EhPCfu3u6SzAoApJdu4P15Nbej7IiUpot5koS39sPVVAoyLsN22GK0aKIIQRkHfVtH UMuJWA4YPYL/OONgeO90yAFrGz6GxExl04pSr9No2Bff5uFjvm1gtwLLklWRYMlBbtI7 6MjfU4GQSLqmNSqOWO3MWcwKh7kCkWS/d1igM=
I'm adding a partial pivoting LU after all, alongside the existing
full pivoting LU.
It seems that it is actually usable for many use cases, although other
use cases (typically for less-than-full-rank matrices) require full
I have a question: should I do LUP or PLU? (here P is the permutation matrix).
In other words should I do permutation of rows or of columns?
Normally it wouldn't matter (one passes from one to the other by transposing).
But as it happens, our triangular solver assumes invertibility. This
means that in order to allow solving,
my U matrix must have all the nonzero diagonal coefficients grouped at
the beginning. The problem with partial
pivoting is that I am only able to do row, respectively column,
operations in order to achieve that.
So, to summarize:
* if I do LUP, I have to require rows<=cols
* if I do PLU, I have to require rows>=cols
So my question really is, for the typical use cases of partial
pivoting LU, what is more acceptable to require: rows>= cols, or rows
<= cols ?
For square matrices, either way works...