Package cc.redberry.rings.poly.univar
Class HenselLifting.lQuadraticLift
- java.lang.Object
-
- cc.redberry.rings.poly.univar.HenselLifting.lQuadraticLift
-
- All Implemented Interfaces:
HenselLifting.LiftableQuintet<UnivariatePolynomialZp64>
- Enclosing class:
- HenselLifting
public static final class HenselLifting.lQuadraticLift extends Object
Quadratic Hensel lift for machine word arithmetics. On eachHenselLifting.LiftableQuintet.lift()
operation modulus is raised asmodulus = modulus * modulus
.
-
-
Field Summary
Fields Modifier and Type Field Description protected PolyZp
aCoFactor
xgcd coefficientsprotected PolyZp
aFactor
Two factors of the initial Z[x] polyUnivariatePolynomialZ64
base
Initial Z[x] polyprotected PolyZp
bCoFactor
xgcd coefficientsprotected PolyZp
bFactor
Two factors of the initial Z[x] polylong
modulus
The modulus
-
Constructor Summary
Constructors Constructor Description lQuadraticLift(long modulus, UnivariatePolynomialZ64 base, UnivariatePolynomialZp64 aFactor, UnivariatePolynomialZp64 bFactor, UnivariatePolynomialZp64 aCoFactor, UnivariatePolynomialZp64 bCoFactor)
-
Method Summary
Modifier and Type Method Description PolyZp
aCoFactorMod()
Returns first co-factor liftedPolyZp
aFactorMod()
Returns first factor liftedPolyZp
bCoFactorMod()
Returns second co-factor liftedPolyZp
bFactorMod()
Returns second factor liftedvoid
lift()
Performs single lift step.void
liftLast()
Performs single lift step but don't lift co-factors (xgcd coefficients).UnivariatePolynomialZp64
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
-
modulus
public long modulus
The modulus
-
base
public final UnivariatePolynomialZ64 base
Initial Z[x] poly
-
aFactor
protected PolyZp extends IUnivariatePolynomial<PolyZp> aFactor
Two factors of the initial Z[x] poly
-
bFactor
protected PolyZp extends IUnivariatePolynomial<PolyZp> bFactor
Two factors of the initial Z[x] poly
-
aCoFactor
protected PolyZp extends IUnivariatePolynomial<PolyZp> aCoFactor
xgcd coefficients
-
bCoFactor
protected PolyZp extends IUnivariatePolynomial<PolyZp> bCoFactor
xgcd coefficients
-
-
Constructor Detail
-
lQuadraticLift
public lQuadraticLift(long modulus, UnivariatePolynomialZ64 base, UnivariatePolynomialZp64 aFactor, UnivariatePolynomialZp64 bFactor, UnivariatePolynomialZp64 aCoFactor, UnivariatePolynomialZp64 bCoFactor)
-
-
Method Detail
-
polyMod
public UnivariatePolynomialZp64 polyMod()
Description copied from interface:HenselLifting.LiftableQuintet
Returns initial Z[x] polynomial modulo lifted modulus- Returns:
- initial Z[x] polynomial modulo lifted modulus
-
aFactorMod
public PolyZp 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
public PolyZp 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
public PolyZp 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
public PolyZp 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>>
-
-