Package cc.redberry.rings.poly.univar
Class HenselLifting.bLinearLift
- java.lang.Object
-
- cc.redberry.rings.poly.univar.HenselLifting.bLinearLift
-
- All Implemented Interfaces:
HenselLifting.LiftableQuintet<UnivariatePolynomial<BigInteger>>
- Enclosing class:
- HenselLifting
public static final class HenselLifting.bLinearLift extends Object implements HenselLifting.LiftableQuintet<UnivariatePolynomial<BigInteger>>
Linear Hensel lift for BigIntegers arithmetics. Linear Hensel lift always starts from the machine-sized modulus; on eachlift()operation modulus is raised asmodulus = modulus * initialModulus.
-
-
Field Summary
Fields Modifier and Type Field Description IntegersZpinitialDomainThe initial modulus (less than 64-bit)IntegersZpringThe modulus
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description UnivariatePolynomial<BigInteger>aCoFactorMod()Returns first co-factor liftedUnivariatePolynomial<BigInteger>aFactorMod()Returns first factor liftedUnivariatePolynomial<BigInteger>bCoFactorMod()Returns second co-factor liftedUnivariatePolynomial<BigInteger>bFactorMod()Returns second factor liftedvoidlift()Performs single lift step.voidliftLast()Performs single lift step but don't lift co-factors (xgcd coefficients).UnivariatePolynomial<BigInteger>polyMod()Returns initial Z[x] polynomial modulo lifted modulus-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface cc.redberry.rings.poly.univar.HenselLifting.LiftableQuintet
lift, liftWithCoFactors
-
-
-
-
Field Detail
-
initialDomain
public final IntegersZp initialDomain
The initial modulus (less than 64-bit)
-
ring
public IntegersZp ring
The modulus
-
-
Method Detail
-
polyMod
public UnivariatePolynomial<BigInteger> polyMod()
Description copied from interface:HenselLifting.LiftableQuintetReturns initial Z[x] polynomial modulo lifted modulus- Specified by:
polyModin interfaceHenselLifting.LiftableQuintet<UnivariatePolynomial<BigInteger>>- Returns:
- initial Z[x] polynomial modulo lifted modulus
-
aFactorMod
public UnivariatePolynomial<BigInteger> aFactorMod()
Description copied from interface:HenselLifting.LiftableQuintetReturns first factor lifted- Specified by:
aFactorModin interfaceHenselLifting.LiftableQuintet<UnivariatePolynomial<BigInteger>>- Returns:
- first factor lifted
-
bFactorMod
public UnivariatePolynomial<BigInteger> bFactorMod()
Description copied from interface:HenselLifting.LiftableQuintetReturns second factor lifted- Specified by:
bFactorModin interfaceHenselLifting.LiftableQuintet<UnivariatePolynomial<BigInteger>>- Returns:
- second factor lifted
-
aCoFactorMod
public UnivariatePolynomial<BigInteger> aCoFactorMod()
Description copied from interface:HenselLifting.LiftableQuintetReturns first co-factor lifted- Specified by:
aCoFactorModin interfaceHenselLifting.LiftableQuintet<UnivariatePolynomial<BigInteger>>- Returns:
- first co-factor lifted
-
bCoFactorMod
public UnivariatePolynomial<BigInteger> bCoFactorMod()
Description copied from interface:HenselLifting.LiftableQuintetReturns second co-factor lifted- Specified by:
bCoFactorModin interfaceHenselLifting.LiftableQuintet<UnivariatePolynomial<BigInteger>>- Returns:
- second co-factor lifted
-
lift
public void lift()
Description copied from interface:HenselLifting.LiftableQuintetPerforms single lift step.- Specified by:
liftin interfaceHenselLifting.LiftableQuintet<UnivariatePolynomial<BigInteger>>
-
liftLast
public void liftLast()
Description copied from interface:HenselLifting.LiftableQuintetPerforms single lift step but don't lift co-factors (xgcd coefficients).- Specified by:
liftLastin interfaceHenselLifting.LiftableQuintet<UnivariatePolynomial<BigInteger>>
-
-