public final class PolynomialMethods extends Object
Modifier and Type | Method and Description |
---|---|
static <Poly extends IPolynomial<Poly>> |
coprimeQ(Iterable<Poly> polynomials)
Returns whether specified polynomials are coprime.
|
static <Poly extends IPolynomial<Poly>> |
coprimeQ(Poly... polynomials)
Returns whether specified polynomials are coprime.
|
static <Poly extends IPolynomial<Poly>> |
divideAndRemainder(Poly a,
Poly b)
Returns quotient and remainder of a and b.
|
static <Poly extends IPolynomial<Poly>> |
divideExact(Poly a,
Poly b)
Returns the quotient of a and b or throws
ArithmeticException if exact division is not possible |
static <Poly extends IPolynomial<Poly>> |
divideOrNull(Poly a,
Poly b)
Returns the quotient of a and b or throws
ArithmeticException if exact division is not possible |
static <Poly extends IPolynomial<Poly>> |
Factor(Poly poly)
Factor polynomial.
|
static <Poly extends IPolynomial<Poly>> |
FactorSquareFree(Poly poly)
Square-free factorization of polynomial.
|
static <Poly extends IPolynomial<Poly>> |
irreducibleQ(Poly poly)
Returns whether specified polynomial is irreducible
|
static <T extends IUnivariatePolynomial<T>> |
PolynomialExtendedGCD(T a,
T b)
Computes
[gcd(a,b), s, t] such that s * a + t * b = gcd(a, b) . |
static <Poly extends IPolynomial<Poly>> |
PolynomialGCD(Iterable<Poly> array)
Compute GCD of collection of polynomials.
|
static <Poly extends IPolynomial<Poly>> |
PolynomialGCD(Poly... array)
Compute GCD of array of polynomials.
|
static <Poly extends IPolynomial<Poly>> |
PolynomialGCD(Poly a,
Poly b)
Compute GCD of two polynomials.
|
static <T extends IPolynomial<T>> |
polyPow(T base,
BigInteger exponent)
Returns
base in a power of non-negative exponent |
static <T extends IPolynomial<T>> |
polyPow(T base,
BigInteger exponent,
boolean copy)
Returns
base in a power of non-negative exponent . |
static <T extends IPolynomial<T>> |
polyPow(T base,
int exponent,
boolean copy,
gnu.trove.map.hash.TIntObjectHashMap<T> cache)
Returns
base in a power of non-negative exponent |
static <T extends IPolynomial<T>> |
polyPow(T base,
long exponent)
Returns
base in a power of non-negative exponent |
static <T extends IPolynomial<T>> |
polyPow(T base,
long exponent,
boolean copy)
Returns
base in a power of non-negative exponent |
static <Poly extends IPolynomial<Poly>> |
remainder(Poly a,
Poly b)
Returns quotient and remainder of a and b.
|
public static <Poly extends IPolynomial<Poly>> PolynomialFactorDecomposition<Poly> Factor(Poly poly)
poly
- the polynomialpublic static <Poly extends IPolynomial<Poly>> PolynomialFactorDecomposition<Poly> FactorSquareFree(Poly poly)
poly
- the polynomialpublic static <Poly extends IPolynomial<Poly>> Poly PolynomialGCD(Poly a, Poly b)
a
- the polynomialb
- the polynomialpublic static <Poly extends IPolynomial<Poly>> Poly PolynomialGCD(Poly... array)
array
- the polynomialspublic static <Poly extends IPolynomial<Poly>> Poly PolynomialGCD(Iterable<Poly> array)
array
- the polynomialspublic static <T extends IUnivariatePolynomial<T>> T[] PolynomialExtendedGCD(T a, T b)
[gcd(a,b), s, t]
such that s * a + t * b = gcd(a, b)
. Half-GCD algorithm is used.a
- the univariate polynomialb
- the univariate polynomial[gcd(a,b), s, t]
such that s * a + t * b = gcd(a, b)
(gcd is monic)UnivariateGCD.PolynomialExtendedGCD(IUnivariatePolynomial, IUnivariatePolynomial)
public static <Poly extends IPolynomial<Poly>> Poly[] divideAndRemainder(Poly a, Poly b)
a
- the dividendb
- the dividerpublic static <Poly extends IPolynomial<Poly>> Poly remainder(Poly a, Poly b)
a
- the dividendb
- the dividerpublic static <Poly extends IPolynomial<Poly>> Poly divideOrNull(Poly a, Poly b)
ArithmeticException
if exact division is not possiblea
- the dividendb
- the dividerArithmeticException
- if exact division is not possiblepublic static <Poly extends IPolynomial<Poly>> Poly divideExact(Poly a, Poly b)
ArithmeticException
if exact division is not possiblea
- the dividendb
- the dividerArithmeticException
- if exact division is not possiblepublic static <Poly extends IPolynomial<Poly>> boolean coprimeQ(Poly... polynomials)
polynomials
- the polynomialspublic static <Poly extends IPolynomial<Poly>> boolean coprimeQ(Iterable<Poly> polynomials)
polynomials
- the polynomialspublic static <Poly extends IPolynomial<Poly>> boolean irreducibleQ(Poly poly)
public static <T extends IPolynomial<T>> T polyPow(T base, BigInteger exponent, boolean copy)
base
in a power of non-negative exponent
.base
- the baseexponent
- the non-negative exponentcopy
- whether to clone base
; if not the data of base
will be lostbase
in a power of e
public static <T extends IPolynomial<T>> T polyPow(T base, long exponent)
base
in a power of non-negative exponent
base
- the baseexponent
- the non-negative exponentbase
in a power of e
public static <T extends IPolynomial<T>> T polyPow(T base, BigInteger exponent)
base
in a power of non-negative exponent
base
- the baseexponent
- the non-negative exponentbase
in a power of e
public static <T extends IPolynomial<T>> T polyPow(T base, long exponent, boolean copy)
base
in a power of non-negative exponent
base
- the baseexponent
- the non-negative exponentcopy
- whether to clone base
; if not the data of base
will be lostbase
in a power of e
public static <T extends IPolynomial<T>> T polyPow(T base, int exponent, boolean copy, gnu.trove.map.hash.TIntObjectHashMap<T> cache)
base
in a power of non-negative exponent
base
- the baseexponent
- the non-negative exponentcopy
- whether to clone base
; if not the data of base
will be lostcache
- cache to store all intermediate powersbase
in a power of e
Copyright © 2018. All rights reserved.