cc.redberry.rings.poly

## Class AlgebraicNumberField<E extends IUnivariatePolynomial<E>>

• ### Constructor Summary

Constructors
Constructor and Description
`AlgebraicNumberField(E minimalPoly)`
Constructs a simple field extension `F(α)` generated by the algebraic number `α` with the specified minimal polynomial.
• ### Method Summary

All Methods
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 ring elements (for finite rings, otherwise throws exception)
`E` `normalizer(E element)`
Gives an element `C(element)` of this field extension with the property that `element * C(element)` is in the base field.
`E` ```remainder(E dividend, E divider)```
Returns the remainder of `dividend / divider`
• ### Methods inherited from class cc.redberry.rings.poly.SimpleFieldExtension

`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`
• ### Methods inherited from class cc.redberry.rings.ARing

`isPerfectPower, perfectPowerBase, perfectPowerExponent`
• ### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`
• ### Methods inherited from interface cc.redberry.rings.poly.IPolynomialRing

`mkCoder, parse, signum`
• ### Methods inherited from interface cc.redberry.rings.Ring

`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`
• ### Methods inherited from interface java.util.Comparator

`comparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`
• ### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`
• ### Constructor Detail

• #### AlgebraicNumberField

`public AlgebraicNumberField(E minimalPoly)`
Constructs a simple field extension `F(α)` generated by the algebraic number `α` with the specified minimal polynomial.

NOTE: irreducibility test for the minimal polynomial is not performed here, use `IrreduciblePolynomials.irreducibleQ(IUnivariatePolynomial)` to test irreducibility.

Parameters:
`minimalPoly` - the minimal polynomial
• ### Method Detail

• #### isField

`public boolean isField()`
Description copied from interface: `Ring`
Returns whether this ring is a field
Returns:
whether this ring is a field
• #### isUnit

`public boolean isUnit(E element)`
Description copied from interface: `Ring`
Tests whether specified element is a ring unit
Parameters:
`element` - the ring element
Returns:
whether specified element is a ring unit
`Ring.isOne(Object)`
• #### gcd

```public E gcd(E a,
E b)```
Description copied from interface: `Ring`
Returns the greatest common divisor of two elements
Parameters:
`a` - the first element
`b` - the second element
Returns:
gcd
• #### divideAndRemainder

```public E[] divideAndRemainder(E a,
E b)```
Description copied from interface: `Ring`
Returns quotient and remainder of `dividend / divider`
Parameters:
`a` - the dividend
`b` - the divider
Returns:
`{quotient, remainder}`
• #### remainder

```public E remainder(E dividend,
E divider)```
Description copied from interface: `Ring`
Returns the remainder of `dividend / divider`
Parameters:
`dividend` - the dividend
`divider` - the divider
Returns:
the remainder of `dividend / divider`
• #### normalizer

`public E normalizer(E element)`
Gives an element `C(element)` of this field extension with the property that `element * C(element)` is in the base field.
• #### iterator

`public Iterator<E> iterator()`
Description copied from interface: `Ring`
Returns iterator over ring elements (for finite rings, otherwise throws exception)