[eigen] LU partial pivoting: LUP versus PLU

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


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
pivoting LU.

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...


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/