Package cc.redberry.rings.poly.univar
Class HenselLifting.bQuadraticLift
java.lang.Object
cc.redberry.rings.poly.univar.HenselLifting.bQuadraticLift
- All Implemented Interfaces:
HenselLifting.LiftableQuintet<UnivariatePolynomial<BigInteger>>
- Enclosing class:
- HenselLifting
public static final class HenselLifting.bQuadraticLift extends Object
Quadratic Hensel lift for BigIntegers arithmetics. On each
HenselLifting.LiftableQuintet.lift()
operation modulus is raised as
modulus = modulus * modulus
.-
Field Summary
Fields Modifier and Type Field Description protected UnivariatePolynomial<BigInteger>
aCoFactor
xgcd coefficientsprotected UnivariatePolynomial<BigInteger>
aFactor
Two factors of the initial Z[x] polyUnivariatePolynomial<BigInteger>
base
Initial Z[x] polyprotected UnivariatePolynomial<BigInteger>
bCoFactor
xgcd coefficientsprotected UnivariatePolynomial<BigInteger>
bFactor
Two factors of the initial Z[x] polyIntegersZp
ring
The modulus -
Constructor Summary
Constructors Constructor Description bQuadraticLift(BigInteger modulus, UnivariatePolynomial<BigInteger> base, UnivariatePolynomial<BigInteger> aFactor, UnivariatePolynomial<BigInteger> bFactor, UnivariatePolynomial<BigInteger> aCoFactor, UnivariatePolynomial<BigInteger> bCoFactor)
-
Method Summary
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 liftedvoid
lift()
Performs single lift step.void
liftLast()
Performs single lift step but don't lift co-factors (xgcd coefficients).UnivariatePolynomial<BigInteger>
polyMod()
Returns initial Z[x] polynomial modulo lifted modulusMethods 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 Details
-
ring
The modulus -
base
Initial Z[x] poly -
aFactor
Two factors of the initial Z[x] poly -
bFactor
Two factors of the initial Z[x] poly -
aCoFactor
xgcd coefficients -
bCoFactor
xgcd coefficients
-
-
Constructor Details
-
bQuadraticLift
public bQuadraticLift(BigInteger modulus, UnivariatePolynomial<BigInteger> base, UnivariatePolynomial<BigInteger> aFactor, UnivariatePolynomial<BigInteger> bFactor, UnivariatePolynomial<BigInteger> aCoFactor, UnivariatePolynomial<BigInteger> bCoFactor)
-
-
Method Details
-
polyMod
Description copied from interface:HenselLifting.LiftableQuintet
Returns initial Z[x] polynomial modulo lifted modulus- Returns:
- initial Z[x] polynomial modulo lifted modulus
-
aFactorMod
Description copied from interface:HenselLifting.LiftableQuintet
Returns first factor lifted- Specified by:
aFactorMod
in interfaceHenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>
- Returns:
- first factor lifted
-
bFactorMod
Description copied from interface:HenselLifting.LiftableQuintet
Returns second factor lifted- Specified by:
bFactorMod
in interfaceHenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>
- Returns:
- second factor lifted
-
aCoFactorMod
Description copied from interface:HenselLifting.LiftableQuintet
Returns first co-factor lifted- Specified by:
aCoFactorMod
in interfaceHenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>
- Returns:
- first co-factor lifted
-
bCoFactorMod
Description copied from interface:HenselLifting.LiftableQuintet
Returns second co-factor lifted- Specified by:
bCoFactorMod
in interfaceHenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>
- Returns:
- second co-factor lifted
-
lift
public final void lift()Description copied from interface:HenselLifting.LiftableQuintet
Performs single lift step.- Specified by:
lift
in interfaceHenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>
-
liftLast
public final void liftLast()Description copied from interface:HenselLifting.LiftableQuintet
Performs single lift step but don't lift co-factors (xgcd coefficients).- Specified by:
liftLast
in interfaceHenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>
-