<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>On 08/08/2015 21:31, Yaacov Weiss wrote:</p>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px">
<pre>On Sat, Aug 8, 2015 at 8:31 PM, Shachar Shemesh <<a href="mailto:shachar@shemesh.biz">shachar@shemesh.biz</a>> wrote:</pre>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px">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).</blockquote>
<pre>The top results of a search for Finite Field library look promising.<br /><br /></pre>
</blockquote>
<p>Yes, Givaro seems promising.</p>
<p>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.</p>
<p>Many people sent suggestions in private. I'll point out that:</p>
<ul>
<li>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 <strong>per error</strong>. 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.</li>
<li>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.</li>
</ul>
<p>Unrelated to the above, but does anyone have a <strong>good</strong> 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.</p>
<p>Thanks,</p>
<p>Shachar</p>
<div> </div>
</body></html>