Multiply polynomials over Galois field
c = gfconv(a,b)
c = gfconv(a,b,p)
c = gfconv(a,b,field)
This function performs computations in GF(pm),
where p is prime. To work in GF(2m), use
gfconv function multiplies polynomials
over a Galois field. (To multiply elements of a Galois field, use
gfmul instead.) Algebraically, multiplying
polynomials over a Galois field is equivalent to convolving vectors
containing the polynomials' coefficients, where the convolution operation
uses arithmetic over the same Galois field.
c = gfconv(a,b) multiplies
two GF(2) polynomials,
which can be either polynomial strings or
numeric vectors. The polynomial degree of the resulting GF(2) polynomial
the degree of
a plus the degree of
c = gfconv(a,b,p) multiplies
p) polynomials, where
a prime number.
row vectors that give the coefficients of the corresponding polynomials
in order of ascending powers. Each coefficient is between 0 and
c = gfconv(a,b,field) multiplies
two GF(pm) polynomials, where p is a prime
number and m is a positive integer.
c are row vectors that list the exponential
formats of the coefficients of the corresponding polynomials, in order
of ascending powers. The exponential format is relative to some primitive
element of GF(pm).
the matrix listing all elements of GF(pm),
arranged relative to the same primitive element. See Representing Elements of Galois Fields for
an explanation of these formats.
The command below shows that
gfc = gfconv([1 1 0 0 1],[0 1 1],3)
The output is
gfc = 0 1 2 1 0 1 1
The code below illustrates the identity
for the case in which p = 7, r = 5, and s = 3. (The identity holds when p is any prime number, and r and s are positive integers.)
p = 7; r = 5; s = 3; a = gfrepcov([r s]); % x^r + x^s % Compute a^p over GF(p). c = 1; for ii = 1:p c = gfconv(c,a,p); end; % Check whether c = x^(rp) + x^(sp). powers = ; for ii = 1:length(c) if c(ii)~=0 powers = [powers, ii]; end; end; if (powers==[r*p+1 s*p+1] | powers==[s*p+1 r*p+1]) disp('The identity is proved for this case of r, s, and p.') end