np.multiply

np.multiply(x, y)[source]

Multiplies two Galois field arrays element-wise.

References

Examples

Multiplying two Galois field arrays results in field multiplication.

In [1]: GF = galois.GF(31)

In [2]: x = GF.Random(10); x
Out[2]: GF([10, 30, 18, 17, 11, 11,  6, 14, 28, 27], order=31)

In [3]: y = GF.Random(10); y
Out[3]: GF([ 3, 23,  0,  6, 24, 21, 16, 13,  3,  7], order=31)

In [4]: np.multiply(x, y)
Out[4]: GF([30,  8,  0,  9, 16, 14,  3, 27, 22,  3], order=31)

In [5]: x * y
Out[5]: GF([30,  8,  0,  9, 16, 14,  3, 27, 22,  3], order=31)

Multiplying a Galois field array with an integer results in scalar multiplication.

In [6]: GF = galois.GF(31)

In [7]: x = GF.Random(10); x
Out[7]: GF([21, 21,  1,  6,  8, 29, 22, 18, 10,  7], order=31)

In [8]: np.multiply(x, 3)
Out[8]: GF([ 1,  1,  3, 18, 24, 25,  4, 23, 30, 21], order=31)

In [9]: x * 3
Out[9]: GF([ 1,  1,  3, 18, 24, 25,  4, 23, 30, 21], order=31)
In [10]: print(GF.properties)
GF(31):
  characteristic: 31
  degree: 1
  order: 31
  irreducible_poly: Poly(x + 28, GF(31))
  is_primitive_poly: True
  primitive_element: GF(3, order=31)

# Adding `characteristic` copies of any element always results in zero
In [11]: x * GF.characteristic
Out[11]: GF([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], order=31)