FiniteField

FiniteField[p,d]

gives a finite field with BERJAYA elements.

FiniteField[p,f]

gives the finite field BERJAYA, where BERJAYA is an irreducible polynomial in BERJAYA.

FiniteField[p,,rep]

uses field element representation rep, either "Polynomial" or "Exponential".

Details

BERJAYA BERJAYA BERJAYA BERJAYA
  • Finite fields are also known as Galois fields.
  • Finite fields are used in algebraic computation, error-correcting codes, cryptography, combinatorics, algebraic geometry, number theory and finite geometry.
  • A field BERJAYA is an algebraic system with all four arithmetic operations +, -, * and ÷. A finite field BERJAYA can have BERJAYA elements BERJAYA for some prime BERJAYA and positive integer BERJAYA.
  • The BERJAYA element BERJAYA is the additive identity where BERJAYA for all BERJAYA and the BERJAYA element BERJAYA gives the multiplicative identity where BERJAYA for all BERJAYA.
  • BERJAYA
  • FiniteFieldElement[,k] or [k] can be used to get the BERJAYA element BERJAYA and is formatted as BERJAYA.BERJAYA
  • FiniteFieldElement objects in the same field are automatically combined by arithmetic operations.
  • Polynomial operations such as PolynomialGCD, Factor, Expand, PolynomialQuotientRemainder and Resultant can be used for polynomials with coefficients from a finite field. Together and Cancel can be used for rational functions with coefficients from a finite field.
  • There are two different representations rep supported for FiniteField: "Polynomial" and "Exponential".
  • The "Polynomial" representation is the analog of a Cartesian representation of complex numbers BERJAYA, easy to add and subtract but slightly harder to multiply and divide.
  • Representation: It uses an irreducible polynomial BERJAYA of degree d to identify the field with the quotient:
  • BERJAYA.
  • Each element BERJAYA is represented as a polynomial BERJAYA. Or you can think of it as a vector BERJAYA in the basis BERJAYA.
  • Enumeration: The elements are enumerated in reverse lexicographic order:
  • BERJAYA,BERJAYA,,BERJAYA,,BERJAYA
  • Operations: Let BERJAYA and BERJAYA; then you have:
  • BERJAYA and BERJAYA
  • and BERJAYA is reduced modulo BERJAYA (PolynomialRemainder) to degree BERJAYA. BERJAYA with BERJAYA. BERJAYA, and the multiplicative inverse BERJAYA is computed using the extended polynomial GCD. Since BERJAYA is irreducible, you have BERJAYA and hence from the extended polynomial GCD, you have BERJAYA for some polynomials BERJAYA and BERJAYA. By reducing modulo BERJAYA, you get BERJAYA and hence you have BERJAYA.
  • The "Exponential" representation is the analog of a polar representation of complex number BERJAYA, easy to multiply and divide but slightly harder to add and subtract.
  • Representation: As in the "Polynomial" representation, it uses an irreducible polynomial BERJAYA of degree d, but in this case BERJAYA also needs to be primitive. Since BERJAYA is primitive, the powers of BERJAYA represent every element in BERJAYA except BERJAYA:
  • BERJAYA
  • This representation is also known as the cyclic group representation, since BERJAYA is a cyclic group under multiplication.
  • Enumeration: The elements are enumerated using the power order:
  • BERJAYA, BERJAYA, BERJAYA, , BERJAYA, , BERJAYA
  • Operations: Let BERJAYA and BERJAYA, then you have:
  • u *v=alpha^(TemplateBox[{{(, {i, +, j}, )}, {(, {q, -, 1}, )}}, Mod]) and BERJAYA
  • with the inversion BERJAYA. For addition and subtraction, there is no simple rule that gives BERJAYA such that BERJAYA, and so that is stored in a lookup table that is linear in the field size BERJAYA. This makes the operation fast at the cost of storing data. It also means that the "Exponential" representation is not suitable for large fields.
  • The practical difference between representations is:
  • "Polynomial" takes no time to create, uses no extra memory, works for large fields but has slightly slower operations.
  • "Exponential" takes some time to create, uses extra memory proportional to the size of the field, works for small fields but has slightly faster operations.
  • Information[FiniteField[], prop] gives the property prop of the finite field. The following properties can be specified:
  • "Characteristic"the characteristic p of the finite field
    "ExtensionDegree"the extension degree d of the finite field over BERJAYA
    "FieldSize"the number of elements q=pd of the field
    "FieldIrreducible"the polynomial function f used to construct the field
    "ElementRepresentation""Polynomial" or "Exponential"

Examples

open allclose all

Basic Examples  (2)

Represent the prime field BERJAYA:

Do arithmetic:

Do polynomial algebra:

Represent a finite field with characteristic BERJAYA and extension degree BERJAYA:

Specify elements of the field using polynomial coefficients or an index:

Do arithmetic:

Do polynomial algebra:

Scope  (10)

Representation and Properties  (3)

Represent a finite field with characteristic BERJAYA and extension degree BERJAYA:

Find the irreducible polynomial used to construct the field:

By default, the polynomial representation of field elements is used:

Find other properties of the field:

Field additive and multiplicative identity elements have indices BERJAYA and BERJAYA:

Construct a finite field using a custom irreducible polynomial:

Verify that the polynomial is irreducible:

Represent the field:

The field irreducible is equal to the specified polynomial modulo the field characteristic:

Construct a finite field that uses exponential representation of elements:

The polynomial used to represent the field is primitive:

Field additive and multiplicative identity elements have indices BERJAYA and BERJAYA:

All nonzero elements of the field are powers of the element with index BERJAYA:

Arithmetic  (3)

Perform arithmetic operations in a finite field:

Rational powers work only with exponent denominators BERJAYA and BERJAYA:

For some field elements, the square root may not exist:

Arithmetic operations treat integers as elements of the field:

Rational numbers need to be valid modulo the field characteristic:

BERJAYA

Use Element to decide which rational numbers can be identified with field elements:

For the purpose of comparison, rational numbers are identified with field elements:

Elements of different finite fields cannot be combined:

BERJAYA

Fields with same characteristic and field irreducible but different element representations are allowed:

Automorphisms and Embeddings  (2)

Compute all conjugates of a finite field element:

The conjugates are roots of the minimal polynomial of a:

The Frobenius automorphism maps BERJAYA to BERJAYA:

Compute an embedding of one finite field in another:

Map finite field elements through the embedding:

Embeddings preserve arithmetic operations:

Polynomials over Finite Fields  (2)

Compute with polynomials over a finite field:

Expand products:

Compute the GCD:

Cancel a fraction:

Compute quotient and remainder:

Factor a polynomial:

Compute a resultant:

Compute with multivariate polynomials:

Factor a polynomial over an extension of a finite field:

The polynomial BERJAYA is irreducible over BERJAYA:

Factor BERJAYA after embedding BERJAYA in a larger field BERJAYA:

Applications  (2)

Implement an error-correcting code. The BERJAYA Hamming code encodes a BERJAYA-bit message in an BERJAYA-bit sequence and is able to correct up to one error:

Let BERJAYA be a finite field with BERJAYA elements using the exponential element representation, let BERJAYA be the irreducible polynomial used to construct BERJAYA, and let BERJAYA be the generator of BERJAYA:

The encoded message is the coefficient list of BERJAYA, where the coefficient list of BERJAYA is the original message:

Let BERJAYA be the polynomial whose coefficient list is the received message:

If the received message contains no errors, then BERJAYA, and hence BERJAYA:

If the received message contains one error in position BERJAYA, then BERJAYA, and hence BERJAYA:

Check and correct the received message:

To decode the message, compute the coefficient list of BERJAYA:

The decoded message is correct when the received message has no errors or one error:

Construct BERJAYA orthogonal Latin squares of order BERJAYA for any prime power BERJAYA. A Latin square of order BERJAYA is a BERJAYA array such that each row and each column contains every element of a set of BERJAYA elements exactly once. A pair of Latin squares is said to be orthogonal if the BERJAYA pairs formed by juxtaposing the two arrays are all distinct:

Verify that all arrays are Latin squares:

Verify that all pairs of arrays are orthogonal:

Properties & Relations  (6)

A finite field with characteristic BERJAYA and extension degree BERJAYA has BERJAYA elements:

Elements of a finite field with characteristic BERJAYA satisfy BERJAYA:

Hence the mapping BERJAYA is a field automorphism, known as FrobeniusAutomorphism:

The field generator BERJAYA is a root of the field irreducible:

Use FrobeniusAutomorphism to find the remaining roots of BERJAYA:

All elements of a finite field with BERJAYA elements are roots of BERJAYA:

In fact, BERJAYA:

Any irreducible polynomial of degree BERJAYA over BERJAYA has BERJAYA roots in a field with BERJAYA elements:

Use IrreduciblePolynomialQ with Modulusp to verify irreducibility over BERJAYA:

Use Factor with Extension to verify that f is a product of linear factors over :

Use FiniteField[p,1] to compute over the prime field BERJAYA:

Compare with a result obtained using Mod:

Polynomial computation over BERJAYA:

Compare with a result obtained using the Modulus option:

Wolfram Research (2023), FiniteField, Wolfram Language function, https://reference.wolfram.com/language/ref/FiniteField.html.

Text

Wolfram Research (2023), FiniteField, Wolfram Language function, https://reference.wolfram.com/language/ref/FiniteField.html.

CMS

Wolfram Language. 2023. "FiniteField." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FiniteField.html.

APA

Wolfram Language. (2023). FiniteField. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FiniteField.html

BibTeX

@misc{reference.wolfram_2023_finitefield, author="Wolfram Research", title="{FiniteField}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/FiniteField.html}", note=[Accessed: 04-October-2023 ]}

BibLaTeX

@online{reference.wolfram_2023_finitefield, organization={Wolfram Research}, title={FiniteField}, year={2023}, url={https://reference.wolfram.com/language/ref/FiniteField.html}, note=[Accessed: 04-October-2023 ]}