E
- type of polynomials that represent elements of this Galois fieldpublic final class FiniteField<E extends IUnivariatePolynomial<E>> extends SimpleFieldExtension<E>
GF(p, q)
. Galois field is represented as a quotient ring F[x]/<m(x)>
with given
irreducible polynomial m(x)
(minimal polynomial); cardinality of then field is than p^q
where p
is the cardinality of F
and q
is the degree of minimal polynomial. Since Galois field is in fact a
simple field extension it inherits all corresponding methods.AlgebraicNumberField
,
Rings.GF(IUnivariatePolynomial)
,
Rings.GF(long, int)
,
Serialized FormModifier and Type | Field and Description |
---|---|
static FiniteField<UnivariatePolynomialZp64> |
GF17p5
GF(17^5)
|
static FiniteField<UnivariatePolynomialZp64> |
GF27
GF(3^3)
|
Constructor and Description |
---|
FiniteField(E minimalPoly)
Constructs finite field from the specified irreducible polynomial.
|
Modifier and Type | Method and Description |
---|---|
E[] |
divideAndRemainder(E a,
E b)
Returns quotient and remainder of
dividend / divider |
E |
gcd(E a,
E b)
Returns the greatest common divisor of two elements
|
boolean |
isField()
Returns whether this ring is a field
|
boolean |
isUnit(E element)
Tests whether specified element is a ring unit
|
Iterator<E> |
iterator()
Returns iterator over all field elements
|
E |
remainder(E dividend,
E divider)
Returns the remainder of
dividend / divider |
add, addMutable, asMultipleExtension, cardinality, characteristic, compare, conjugatesProduct, copy, createArray, createArray2d, createArray2d, degree, equals, factor, factory, generator, getMinimalPolynomial, getMinimalPolynomialRef, getOne, getZero, hashCode, isEuclideanRing, isInTheBaseField, isOne, isZero, minimalPolynomial, multiply, multiplyMutable, negate, negateMutable, norm, normOfPolynomial, normOfPolynomial, nVariables, parse, randomElement, reciprocal, shouldReduceFast, subtract, subtractMutable, toString, toString, toString, trace, valueOf, valueOf, valueOfBigInteger, variable
isPerfectPower, perfectPowerBase, perfectPowerExponent
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
mkCoder, parse, signum
abs, add, createArray, createArray, createArray, createZeroesArray, createZeroesArray2d, decrement, divideExact, divideExactMutable, divideOrNull, extendedGCD, factorial, factorSquareFree, fillZeros, firstBezoutCoefficient, gcd, gcd, getNegativeOne, increment, isFinite, isFiniteField, isMinusOne, isPerfectPower, isUnitOrZero, lcm, lcm, lcm, max, min, multiply, multiply, multiply, perfectPowerBase, perfectPowerExponent, pow, pow, pow, quotient, randomElement, randomElementTree, randomElementTree, randomNonZeroElement, setToValueOf, valueOf
comparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
forEach, spliterator
public static final FiniteField<UnivariatePolynomialZp64> GF27
public static final FiniteField<UnivariatePolynomialZp64> GF17p5
public FiniteField(E minimalPoly)
NOTE: irreducibility test for the minimal polynomial is not performed here, use IrreduciblePolynomials.irreducibleQ(IUnivariatePolynomial)
to test irreducibility.
minimalPoly
- the minimal polynomialpublic boolean isField()
Ring
public boolean isUnit(E element)
Ring
element
- the ring elementRing.isOne(Object)
public E gcd(E a, E b)
Ring
a
- the first elementb
- the second elementpublic E[] divideAndRemainder(E a, E b)
Ring
dividend / divider
a
- the dividendb
- the divider{quotient, remainder}
public E remainder(E dividend, E divider)
Ring
dividend / divider
dividend
- the dividenddivider
- the dividerdividend / divider
Copyright © 2018. All rights reserved.