## Class Rings

• public final class Rings
extends Object
Common rings.
Since:
1.0
• ### Method Detail

• #### Frac

public static <E> Rationals<E> Frac​(Ring<E> ring)
Ring of rational functions over specified ring
Parameters:
ring - the ring that numerators and denominators belong to
• #### Zp64

public static IntegersZp64 Zp64​(long modulus)
Ring of integers modulo modulus (with modulus < 2^63)
Parameters:
modulus - the modulus
• #### Zp

public static IntegersZp Zp​(long modulus)
Ring of integers modulo modulus (arbitrary large modulus)
Parameters:
modulus - the modulus (arbitrary large)
• #### Zp

public static IntegersZp Zp​(BigInteger modulus)
Ring of integers modulo modulus (arbitrary large modulus)
Parameters:
modulus - the modulus (arbitrary large)
• #### GF

public static FiniteField<UnivariatePolynomialZp64> GF​(long prime,
int exponent)
Galois field with the cardinality prime ^ exponent (with prime < 2^63).
Parameters:
prime - the integer prime modulus
exponent - the exponent (degree of modulo polynomial)
• #### GF

public static FiniteField<UnivariatePolynomial<BigInteger>> GF​(BigInteger prime,
int exponent)
Galois field with the cardinality prime ^ exponent for arbitrary large prime
Parameters:
prime - the integer (arbitrary large) prime modulus
exponent - the exponent (degree of modulo polynomial)
• #### GF

public static <Poly extends IUnivariatePolynomial<Poly>> FiniteField<Poly> GF​(Poly irreducible)
Galois field with the specified minimal polynomial. Note: there is no explicit check that minimal polynomial is irreducible
Parameters:
irreducible - irreducible univariate polynomial
• #### AlgebraicNumberField

public static <Poly extends IUnivariatePolynomial<Poly>> AlgebraicNumberField<Poly> AlgebraicNumberField​(Poly minimalPoly)
Algebraic number field generated by the specified minimal polynomial
• #### SimpleFieldExtension

public static <uPoly extends IUnivariatePolynomial<uPoly>> SimpleFieldExtension<uPoly> SimpleFieldExtension​(uPoly minimalPolynomial)
Returns a simple field extension generated by given minimal polynomial
• #### MultipleFieldExtension

public static <Term extends AMonomial<Term>,​mPoly extends AMultivariatePolynomial<Term,​mPoly>,​sPoly extends IUnivariatePolynomial<sPoly>> MultipleFieldExtension<Term,​mPoly,​sPoly> MultipleFieldExtension​(sPoly... minimalPolynomials)
Multiple field extension generated by given algebraic elements represented by their minimal polynomials (not tested that they are irreducible)
• #### UnivariateRing

public static <E> UnivariateRing<UnivariatePolynomial<E>> UnivariateRing​(Ring<E> coefficientRing)
Ring of univariate polynomials over specified coefficient ring
Parameters:
coefficientRing - the coefficient ring
• #### UnivariateRing

public static <Poly extends IUnivariatePolynomial<Poly>> UnivariateRing<Poly> UnivariateRing​(Poly factory)
Ring of univariate polynomials with specified factory
Parameters:
factory - factory
• #### UnivariateRingZp64

public static UnivariateRing<UnivariatePolynomialZp64> UnivariateRingZp64​(long modulus)
Ring of univariate polynomials over Zp integers (Zp[x])
Parameters:
modulus - the modulus
• #### UnivariateRingZp

public static UnivariateRing<UnivariatePolynomial<BigInteger>> UnivariateRingZp​(BigInteger modulus)
Ring of univariate polynomials over Zp integers (Zp[x]) with arbitrary large modulus
Parameters:
modulus - the modulus (arbitrary large)
• #### MultivariateRing

public static <E> MultivariateRing<MultivariatePolynomial<E>> MultivariateRing​(int nVariables,
Ring<E> coefficientRing,
Comparator<DegreeVector> monomialOrder)
Ring of multivariate polynomials with specified number of variables over specified coefficient ring
Parameters:
nVariables - the number of variables
coefficientRing - the coefficient ring
monomialOrder - the monomial order
• #### MultivariateRing

public static <E> MultivariateRing<MultivariatePolynomial<E>> MultivariateRing​(int nVariables,
Ring<E> coefficientRing)
Ring of multivariate polynomials with specified number of variables over specified coefficient ring
Parameters:
nVariables - the number of variables
coefficientRing - the coefficient ring
• #### MultivariateRing

public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> MultivariateRing<Poly> MultivariateRing​(Poly factory)
Ring of multivariate polynomials with specified factory
Parameters:
factory - factory
• #### MultivariateRingZ

public static MultivariateRing<MultivariatePolynomial<BigInteger>> MultivariateRingZ​(int nVariables)
Ring of multivariate polynomials over integers (Z[x1, x2, ...])
Parameters:
nVariables - the number of variables
• #### MultivariateRingZp64

public static MultivariateRing<MultivariatePolynomialZp64> MultivariateRingZp64​(int nVariables,
long modulus,
Comparator<DegreeVector> monomialOrder)
Ring of multivariate polynomials over Zp integers (Zp[x1, x2, ...])
Parameters:
nVariables - the number of variables
modulus - the modulus
monomialOrder - the monomial order
• #### MultivariateRingZp64

public static MultivariateRing<MultivariatePolynomialZp64> MultivariateRingZp64​(int nVariables,
long modulus)
Ring of multivariate polynomials over Zp machine integers (Zp[x1, x2, ...])
Parameters:
nVariables - the number of variables
modulus - the modulus
• #### MultivariateRingZp64

public static MultivariateRing<MultivariatePolynomialZp64> MultivariateRingZp64​(int nVariables,
IntegersZp64 modulus,
Comparator<DegreeVector> monomialOrder)
Ring of multivariate polynomials over Zp integers (Zp[x1, x2, ...])
Parameters:
nVariables - the number of variables
modulus - the modulus
monomialOrder - monomial order
• #### MultivariateRingZp64

public static MultivariateRing<MultivariatePolynomialZp64> MultivariateRingZp64​(int nVariables,
IntegersZp64 modulus)
Ring of multivariate polynomials over Zp integers (Zp[x1, x2, ...])
Parameters:
nVariables - the number of variables
modulus - the modulus
• #### MultivariateRingZp

public static MultivariateRing<MultivariatePolynomial<BigInteger>> MultivariateRingZp​(int nVariables,
BigInteger modulus)
Ring of multivariate polynomials over Zp integers (Zp[x1, x2, ...]) with arbitrary large modulus
Parameters:
nVariables - the number of variables
modulus - the modulus (arbitrary large)
• #### PolynomialRing

public static <Poly extends IPolynomial<Poly>> IPolynomialRing<Poly> PolynomialRing​(Poly factory)
Generic factory for polynomial ring