i need a code to multiply two polynomials in galois field 2 in c# or c++,
polynomials will be entered by user in integer (decimal values).
polynomials will be entered by user in integer (decimal values).
// xtime method
static uint xtime(uint a)
{
a = a << 1;
uint m = 1;
int d = degree(a); //it determines the degree of polynomial
uint f = (uint)((1 << d) | 3);
m = m << d - 1;
if ((a & m) == m)
return (a ^ f);
else
return a;
}
static uint mult(uint a, uint b)
{
uint val = a;
if (b % 2 == 0)
{
for (uint i = 1; i < b; i *= 2)
{
val = xtime(val);
}
}
else
{
for (uint i = 1; i < b; i *= 2)
{
val = xtime(val) ^ val; ;
}
}
return val;
}
Comment