public class HenselUtil extends java.lang.Object
Constructor and Description |
---|
HenselUtil() |
Modifier and Type | Method and Description |
---|---|
static <MOD extends GcdRingElem<MOD> & Modular> |
isDiophantLift(GenPolynomial<MOD> A,
GenPolynomial<MOD> B,
GenPolynomial<MOD> S1,
GenPolynomial<MOD> S2,
GenPolynomial<MOD> C)
Modular Diophant relation lifting test.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
isDiophantLift(java.util.List<GenPolynomial<MOD>> A,
java.util.List<GenPolynomial<MOD>> S,
GenPolynomial<MOD> C)
Modular Diophant relation lifting test.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
isExtendedEuclideanLift(java.util.List<GenPolynomial<MOD>> A,
java.util.List<GenPolynomial<MOD>> S)
Modular extended Euclidean relation lifting test.
|
static boolean |
isHenselLift(GenPolynomial<BigInteger> C,
BigInteger M,
BigInteger p,
GenPolynomial<BigInteger> A,
GenPolynomial<BigInteger> B)
Modular Hensel lifting test.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
isHenselLift(GenPolynomial<BigInteger> C,
BigInteger M,
BigInteger p,
HenselApprox<MOD> Ha)
Modular Hensel lifting test.
|
static boolean |
isHenselLift(GenPolynomial<BigInteger> C,
BigInteger M,
BigInteger p,
java.util.List<GenPolynomial<BigInteger>> G)
Modular Hensel lifting test.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftDiophant(GenPolynomial<MOD> A,
GenPolynomial<MOD> B,
GenPolynomial<MOD> C,
long k)
Modular diophantine equation solution and lifting algorithm.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftDiophant(GenPolynomial<MOD> A,
GenPolynomial<MOD> B,
long e,
long k)
Modular diophantine equation solution and lifting algorithm.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftDiophant(java.util.List<GenPolynomial<MOD>> A,
GenPolynomial<MOD> C,
long k)
Modular diophantine equation solution and lifting algorithm.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftDiophant(java.util.List<GenPolynomial<MOD>> A,
long e,
long k)
Modular diophantine equation solution and lifting algorithm.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftExtendedEuclidean(GenPolynomial<MOD> A,
GenPolynomial<MOD> B,
long k)
Constructing and lifting algorithm for extended Euclidean relation.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftExtendedEuclidean(java.util.List<GenPolynomial<MOD>> A,
long k)
Constructing and lifting algorithm for extended Euclidean relation.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftHensel(GenPolynomial<BigInteger> C,
BigInteger M,
GenPolynomial<MOD> A,
GenPolynomial<MOD> B)
Modular Hensel lifting algorithm on coefficients.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftHensel(GenPolynomial<BigInteger> C,
BigInteger M,
GenPolynomial<MOD> A,
GenPolynomial<MOD> B,
GenPolynomial<MOD> S,
GenPolynomial<MOD> T)
Modular Hensel lifting algorithm on coefficients.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftHensel(GenPolynomial<BigInteger> C,
java.util.List<GenPolynomial<MOD>> F,
long k,
BigInteger g)
Modular Hensel lifting algorithm on coefficients.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftHenselMonic(GenPolynomial<BigInteger> C,
java.util.List<GenPolynomial<MOD>> F,
long k)
Modular Hensel lifting algorithm on coefficients.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftHenselQuadratic(GenPolynomial<BigInteger> C,
BigInteger M,
GenPolynomial<MOD> A,
GenPolynomial<MOD> B)
Modular quadratic Hensel lifting algorithm on coefficients.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftHenselQuadratic(GenPolynomial<BigInteger> C,
BigInteger M,
GenPolynomial<MOD> A,
GenPolynomial<MOD> B,
GenPolynomial<MOD> S,
GenPolynomial<MOD> T)
Modular quadratic Hensel lifting algorithm on coefficients.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftHenselQuadraticFac(GenPolynomial<BigInteger> C,
BigInteger M,
GenPolynomial<MOD> A,
GenPolynomial<MOD> B)
Modular Hensel lifting algorithm on coefficients.
|
static <MOD extends GcdRingElem<MOD> & Modular> |
liftHenselQuadraticFac(GenPolynomial<BigInteger> C,
BigInteger M,
GenPolynomial<MOD> A,
GenPolynomial<MOD> B,
GenPolynomial<MOD> S,
GenPolynomial<MOD> T)
Modular Hensel lifting algorithm on coefficients.
|
public HenselUtil()
public static <MOD extends GcdRingElem<MOD> & Modular> HenselApprox<MOD> liftHensel(GenPolynomial<BigInteger> C, BigInteger M, GenPolynomial<MOD> A, GenPolynomial<MOD> B, GenPolynomial<MOD> S, GenPolynomial<MOD> T) throws NoLiftingException
C
- GenPolynomialA
- GenPolynomialB
- other GenPolynomialS
- GenPolynomialT
- GenPolynomialM
- bound on the coefficients of A1 and B1 as factors of C.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> HenselApprox<MOD> liftHensel(GenPolynomial<BigInteger> C, BigInteger M, GenPolynomial<MOD> A, GenPolynomial<MOD> B) throws NoLiftingException
C
- GenPolynomialA
- GenPolynomialB
- other GenPolynomialM
- bound on the coefficients of A1 and B1 as factors of C.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> HenselApprox<MOD> liftHenselQuadratic(GenPolynomial<BigInteger> C, BigInteger M, GenPolynomial<MOD> A, GenPolynomial<MOD> B, GenPolynomial<MOD> S, GenPolynomial<MOD> T) throws NoLiftingException
C
- GenPolynomialA
- GenPolynomialB
- other GenPolynomialS
- GenPolynomialT
- GenPolynomialM
- bound on the coefficients of A1 and B1 as factors of C.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> HenselApprox<MOD> liftHenselQuadratic(GenPolynomial<BigInteger> C, BigInteger M, GenPolynomial<MOD> A, GenPolynomial<MOD> B) throws NoLiftingException
C
- GenPolynomialA
- GenPolynomialB
- other GenPolynomialM
- bound on the coefficients of A1 and B1 as factors of C.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> HenselApprox<MOD> liftHenselQuadraticFac(GenPolynomial<BigInteger> C, BigInteger M, GenPolynomial<MOD> A, GenPolynomial<MOD> B) throws NoLiftingException
C
- GenPolynomialA
- GenPolynomialB
- other GenPolynomialM
- bound on the coefficients of A1 and B1 as factors of C.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> HenselApprox<MOD> liftHenselQuadraticFac(GenPolynomial<BigInteger> C, BigInteger M, GenPolynomial<MOD> A, GenPolynomial<MOD> B, GenPolynomial<MOD> S, GenPolynomial<MOD> T) throws NoLiftingException
C
- primitive GenPolynomialA
- GenPolynomialB
- other GenPolynomialS
- GenPolynomialT
- GenPolynomialM
- bound on the coefficients of A1 and B1 as factors of C.NoLiftingException
public static boolean isHenselLift(GenPolynomial<BigInteger> C, BigInteger M, BigInteger p, java.util.List<GenPolynomial<BigInteger>> G)
C
- GenPolynomialG
- = [g_0,...,g_{n-1}] list of GenPolynomialM
- bound on the coefficients of g_i as factors of C.p
- prime number.public static boolean isHenselLift(GenPolynomial<BigInteger> C, BigInteger M, BigInteger p, GenPolynomial<BigInteger> A, GenPolynomial<BigInteger> B)
C
- GenPolynomialA
- GenPolynomialB
- GenPolynomialM
- bound on the coefficients of A and B as factors of C.p
- prime number.public static <MOD extends GcdRingElem<MOD> & Modular> boolean isHenselLift(GenPolynomial<BigInteger> C, BigInteger M, BigInteger p, HenselApprox<MOD> Ha)
C
- GenPolynomialHa
- Hensel approximation.M
- bound on the coefficients of A and B as factors of C.p
- prime number.public static <MOD extends GcdRingElem<MOD> & Modular> GenPolynomial<MOD>[] liftExtendedEuclidean(GenPolynomial<MOD> A, GenPolynomial<MOD> B, long k) throws NoLiftingException
A
- modular GenPolynomialB
- modular GenPolynomialk
- desired approximation exponent p^k.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> java.util.List<GenPolynomial<MOD>> liftExtendedEuclidean(java.util.List<GenPolynomial<MOD>> A, long k) throws NoLiftingException
A
- list of modular GenPolynomialsk
- desired approximation exponent p^k.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> java.util.List<GenPolynomial<MOD>> liftDiophant(GenPolynomial<MOD> A, GenPolynomial<MOD> B, GenPolynomial<MOD> C, long k) throws NoLiftingException
A
- modular GenPolynomial, mod p^kB
- modular GenPolynomial, mod p^kC
- modular GenPolynomial, mod p^kk
- desired approximation exponent p^k.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> java.util.List<GenPolynomial<MOD>> liftDiophant(java.util.List<GenPolynomial<MOD>> A, GenPolynomial<MOD> C, long k) throws NoLiftingException
A
- list of modular GenPolynomials, mod p^kC
- modular GenPolynomial, mod p^kk
- desired approximation exponent p^k.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> java.util.List<GenPolynomial<MOD>> liftDiophant(GenPolynomial<MOD> A, GenPolynomial<MOD> B, long e, long k) throws NoLiftingException
A
- modular GenPolynomialB
- modular GenPolynomiale
- exponent for x^ek
- desired approximation exponent p^k.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> java.util.List<GenPolynomial<MOD>> liftDiophant(java.util.List<GenPolynomial<MOD>> A, long e, long k) throws NoLiftingException
A
- list of modular GenPolynomialse
- exponent for x^ek
- desired approximation exponent p^k.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> boolean isDiophantLift(GenPolynomial<MOD> A, GenPolynomial<MOD> B, GenPolynomial<MOD> S1, GenPolynomial<MOD> S2, GenPolynomial<MOD> C)
A
- modular GenPolynomialB
- modular GenPolynomialC
- modular GenPolynomialS1
- modular GenPolynomialS2
- modular GenPolynomialpublic static <MOD extends GcdRingElem<MOD> & Modular> boolean isExtendedEuclideanLift(java.util.List<GenPolynomial<MOD>> A, java.util.List<GenPolynomial<MOD>> S)
A
- list of GenPolynomialsS
- = [s_0,...,s_{n-1}] list of GenPolynomialpublic static <MOD extends GcdRingElem<MOD> & Modular> boolean isDiophantLift(java.util.List<GenPolynomial<MOD>> A, java.util.List<GenPolynomial<MOD>> S, GenPolynomial<MOD> C)
A
- list of GenPolynomialsS
- = [s_0,...,s_{n-1}] list of GenPolynomialsC
- = GenPolynomialpublic static <MOD extends GcdRingElem<MOD> & Modular> java.util.List<GenPolynomial<MOD>> liftHenselMonic(GenPolynomial<BigInteger> C, java.util.List<GenPolynomial<MOD>> F, long k) throws NoLiftingException
C
- monic integer polynomialF
- = [f_0,...,f_{n-1}] list of monic modular polynomials.k
- approximation exponent.NoLiftingException
public static <MOD extends GcdRingElem<MOD> & Modular> java.util.List<GenPolynomial<MOD>> liftHensel(GenPolynomial<BigInteger> C, java.util.List<GenPolynomial<MOD>> F, long k, BigInteger g) throws NoLiftingException
C
- integer polynomialF
- = [f_0,...,f_{n-1}] list of monic modular polynomials.k
- approximation exponent.g
- leading coefficient.NoLiftingException