Matrix inversion tool

Matrix inversion tool

Shachar Shemesh shachar at shemesh.biz
Sun Aug 9 08:22:04 IDT 2015


 

On 08/08/2015 21:31, Yaacov Weiss wrote: 

> On Sat, Aug 8, 2015 at 8:31 PM, Shachar Shemesh <shachar at shemesh.biz> wrote:
> 
>> I want the matrix to be over a different field (i.e. - not the real numbers). In my particular case, I want it to be over Z2 (zero and one).
> 
> The top results of a search for Finite Field library look promising.

Yes, Givaro seems promising. 

I did not try this search because most results are for Galois fields
(which, granted, are not that different for the specific case of "2",
but still). I'll have a look into that. I might eventually need to bind
to it from D, which will probably not be fun, but we'll cross that
bridge when its time comes. 

Many people sent suggestions in private. I'll point out that: 

 	* I tried using Boost's matrix code with a type that is a special
class I wrote. Not only did it not work, I couldn't even decipher what
it was that it was missing in order to get it to work. The error
messages were 300 characters long and five to six lines long PER ERROR.
Even when unravelled, they complain that some internal class used by
Boost is not comparable (or something) to some other internal class used
by Boost.
 	* My linear algebra isn't as well remembered as I thought it was. When
I manually inverse a matrix, I use row replacement, addition and
subtraction. I vaguely remember what covariants are, and no recollection
at all of adj. I will definitely look them up before I continue, but
it's somewhat sad when things you once knew you no longer do.

Unrelated to the above, but does anyone have a GOOD source explaining
Galois fields? Everything I found so far left me confused about whether
it is used directly (i.e. - numbers treated as polynoms, divided by a
modulus), or via a generator. Also, I know they are used for Raid-6
calculations, but it seems to me that if I multiply a value by 2, I am
going to get an overflow (unless I'm modulus something which isn't even,
in which case I cannot represent all 2^32 values of an int). If anyone
has any source that clears up that confusion for me, please send me a
link. 

Thanks, 

Shachar 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cs.huji.ac.il/pipermail/linux-il/attachments/20150809/3e0df796/attachment.html>


More information about the Linux-il mailing list