Subtract polynomials over Galois field
c = gfsub(a,b,p)
c = gfsub(a,b,p,len)
c = gfsub(a,b,field)
This function performs computations in GF(pm),
where p is prime. To work in GF(2m), apply
c = gfsub(a,b,p) calculates
b represent polynomials
p is a prime
row vectors that give the coefficients of the corresponding polynomials
in order of ascending powers. Each coefficient is between 0 and
b are matrices of the
same size, the function treats each row independently.
c = gfsub(a,b,p,len) subtracts
row vectors as in the syntax above, except that it returns a row vector
len. The output
a truncated or extended representation of the answer. If the row vector
corresponding to the answer has fewer than
(including zeros), extra zeros are added at the end; if it has more
len entries, entries from the end are removed.
c = gfsub(a,b,field) calculates
b are the exponential
format of two elements of GF(pm), relative
to some primitive element of GF(pm). p
is a prime number and m is a positive integer.
the matrix listing all elements of GF(pm),
arranged relative to the same primitive element.
the exponential format of the answer, relative to the same primitive
element. See Representing Elements of Galois Fields for an explanation
of these formats. If
matrices of the same size, the function treats each element independently.
In the code below,
differ is the difference
of 2 + 3x + x2 and 4 + 2x + 3x2 over
linpart is the degree-one part of
differ = gfsub([2 3 1],[4 2 3],5) linpart = gfsub([2 3 1],[4 2 3],5,2)
The output is
differ = 3 1 3 linpart = 3 1
The code below shows that A2 - A4 = A7, where A is a root of the primitive polynomial 2 + 2x + x2 for GF(9).
p = 3; m = 2; prim_poly = [2 2 1]; field = gftuple([-1:p^m-2]',prim_poly,p); d = gfsub(2,4,field)
The output is
d = 7