gfsub

Subtract polynomials over Galois field

Syntax

`c = gfsub(a,b,p) c = gfsub(a,b,p,len) c = gfsub(a,b,field) `

Description

 Note:   This function performs computations in GF(pm), where p is prime. To work in GF(2m), apply the `-` operator to Galois arrays of equal size. For details, see Example: Addition and Subtraction.

`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(pm), relative to some primitive element of GF(pm). p is a prime number and m is a positive integer. `field` is the matrix listing all elements of GF(pm), 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.

Examples

In the code below, `differ` is the difference of 2 + 3x + x2 and 4 + 2x + 3x2 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 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 ```

See Also

Was this topic helpful?

Get trial now