Subtract polynomials over Galois field
c = gfsub(a,b,p)
c = gfsub(a,b,p,len)
c = gfsub(a,b,field)
Note:
This function performs computations in GF(p^{m}),
where p is prime. To work in GF(2^{m}), apply
the |
c = gfsub(a,b,p)
calculates a
minus b
,
where a
and b
represent polynomials
over GF(p
) and p
is a prime
number. a
, b
, and c
are
row vectors that give the coefficients of the corresponding polynomials
in order of ascending powers. Each coefficient is between 0 and p
-1.
If a
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
of length len
. The output c
is
a truncated or extended representation of the answer. If the row vector
corresponding to the answer has fewer than len
entries
(including zeros), extra zeros are added at the end; if it has more
than len
entries, entries from the end are removed.
c = gfsub(a,b,field)
calculates a
minus b
,
where a
and b
are the exponential
format of two elements of GF(p^{m}), relative
to some primitive element of GF(p^{m}). p
is a prime number and m is a positive integer. field
is
the matrix listing all elements of GF(p^{m}),
arranged relative to the same primitive element. c
is
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 a
and b
are
matrices of the same size, the function treats each element independently.
In the code below, differ
is the difference
of 2 + 3x + x^{2} and 4 + 2x + 3x^{2} over
GF(5), and linpart
is the degree-one part of differ
.
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 A^{2} - A^{4} = A^{7}, where A is a root of the primitive polynomial 2 + 2x + x^{2} 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