Matrix inversion tool

Matrix inversion tool

Oleg Goldshmidt pub at goldshmidt.org
Mon Aug 10 09:11:05 IDT 2015


Matan Ziv-Av <matan at svgalib.org> writes:

> Please read what you reply to.

I assure you I read and understood Omer's and your posts. If you go back
to my reply you will surely realize that at no point I contradicted
you. I just pointed out that you didn't need to divide (by det(A)==1),
which would lead to the problem you correctly point out.

> The suggestion was to treat the matrix as a real matrix, so the
> calculations will not be modulo 2.
>
> If you take the, for example, matrix
> [ [  0,  0,  1,  1 ],
>   [  0,  1,  0,  1 ],
>   [  1,  0,  0,  1 ],
>   [  1,  1,  1,  0 ] ]
>
> The inverse, in floating point numbers, will be something like
> [ [ -0.33333333333333331, -0.33333333333333331, 0.66666666666666663,
> 0.33333333333333331 ],
>   [ -0.33333333333333331, 0.66666666666666663, -0.33333333333333331,
> 0.33333333333333331 ],
>   [ 0.66666666666666663, -0.33333333333333331, -0.33333333333333331,
> 0.33333333333333331 ],
>   [ 0.33333333333333331, 0.33333333333333331, 0.33333333333333331,
> -0.33333333333333331 ] ]

To get that result you divided (by the determinant). All I said was you
did not need to. Apply mod 2 to all the (integer[*]) addition results,
and your determinant will be 1 (over Z2) and not 3.

Friends again? ;-)

[*] I strongly suspect you read too much into Omer's use of the word
    "real" (also used in the OP).
    
-- 
Oleg Goldshmidt | pub at goldshmidt.org



More information about the Linux-il mailing list