Re: [eigen] request for help: 4x4 matrix inverse

```Hm, just one remark:

On Monday 14 April 2008 19:50:47 Konstantinos Margaritis wrote:
> We partition the matrix in 4 2x2 matrices:
>
> M= | P Q |
>
>    | R S |
>
> where P = | a1 a2 |, Q = | a3 a4 |, R = | c1 c2 |, S = | c3 c4 |
>
>           | b1 b2 |      | b3 b4 |      | d1 d2 |      | d3 d4 |
>
> (actually the method is generic for any NxM matrix, but it becomes
> quite more complicated in these cases).
> So, M's determinant is calculated thus:
>
> detM = detP * det(S - R*P1*Q)
>
> ( P1 = P^(-1) )
>
> (so if detP = 0, detM = 0 and M has no inverse, but detP is calculated
> in just one step!)

I don't agree with the last sentence: it is easy to find examples where detP=0
and detM is nonzero. For example,

M=
(1 1 0 0)
(1 1 1 0)
(0 1 1 0)
(0 0 0 1)

this matrix M is invertible, but its topleft 2x2 block is not. I think that
your formula works when P is invertible, but doesn't allow to conclude
anything when P is not.

But that's not a problem for me since what I really need is the 4x4 inversion
and for this I think that your method will work great -- implementing it
right now. For 4x4 determinant, I think that the method I have in
LU/Determinant.h is even faster since it does only 30 muls and zero divs --
and so in particular, zero conditional branching.

Cheers,

Benoit
```

Attachment: signature.asc
Description: This is a digitally signed message part.

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