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